Chinaunix首页 | 论坛 | 博客
  • 博客访问: 293270
  • 博文数量: 69
  • 博客积分: 2946
  • 博客等级: 少校
  • 技术积分: 800
  • 用 户 组: 普通用户
  • 注册时间: 2010-04-09 04:15
文章分类

全部博文(69)

文章存档

2013年(6)

2012年(16)

2011年(18)

2010年(29)

分类: LINUX

2011-10-02 16:46:50

这篇博客主要来记录linux文件的一些基本知识,在GNU/linux里,文件管理是非常重要的,我个人认为原因主要体现在两个方面。首先,linux从UNIX系统继承下来的一切设备皆文件的理念,对硬件设备的管理也体现在对文件的管理上;其次是linux是一个多用户多任务的操作系统,从安全的角度,对不同用户文件权限的管理显的尤为重要。下面我们来看一下linux系统有关文件的一些基本知识:
linux文件访问类别主要有3个类别,owner、group、other,权限分别为read、write、excute;与windows不同之处 在于,windows下可执行文件以.bat或者.exe后缀名;
linux下可执行文件以其是否拥有可执行权限来判定,当然普通文件即使有可执行权限也是不能执行的,这主要是因为其内容不可执行。

  1. [huang@myhost/etc]$ cd /dev/
  2. [huang@myhost/dev]$ ls -l
  3. total 0
  4. crw-rw---- 1 root video 10, 175 Oct 2 22:33 agpgart
  5. drwxr-xr-x 2 root root 80 Oct 2 22:33 bsg
  6. lrwxrwxrwx 1 root root 11 Oct 2 22:33 core -> /proc/kcore
  7. ## 部分内容省略 ##
  1. [huang@myhost/~]$ ls -l
  2. drwxrwxrwx 23 root root 4096 Jun 29 00:28 openssl-0.9.8r
  3. -rw-r--r-- 1 huang huang 26347 Sep 18 20:12 Unsaved Document 1
  4. drwxr-xr-x 4 huang huang 4096 Sep 22 03:20 work
  5. ## 部分内容省略 ##
其中
  1. -rw-r--r--       文件类型及文件权限
  2. 1               链接数
  3. huang           文件拥有者
  4. huang           文件所属组
  5. 26347           文件大小
  6. Sep 18 20:12     文件最后一次修改时间
  7. Unsaved Document 1            文件名 , 如果文件名前有.,表示这个文件为隐藏文件
我们再来看看“ -rw-r--r--  ”这行。这一行总共有10个字符宽度,第一个字符为" - "表示改文件为普通文件。在这个位置还可以出现其他几个字符分别为:d , c , l , b , 他们分别代表着这个文件为目录( d )、字符设备文件,例如键盘、鼠标( c )、链接文件( l )、和块设备文件( b ).
接下来9个字符的宽度分别代表文件拥有的权限,[r] 代表可读( read ) , [w] 代表可写( write ) , [x] 代表可执行( excute ). 用数字表示分别为 [r] = 4 , [w] = 2 , [x] = 1 .
再来看这个文件拥有者为huang, huang对其有读、写权限,所属huang用户组的用户对该文件有读的权限,其他用户对这个文件也只有读权限。

下面来看看文件管理的3个常用命令:chown , chmod , chgrp .
  1. chown -- 改变文件所属用户
  2. [-R] 递归的改变文件夹内文件
  3. [-f] 忽略错误信息
  1. [huang@myhost/~]$ touch ./test                       ## 新建测试文件
  2. [huang@myhost/~]$ ls -al ./test
  3. -rw-r--r-- 1 huang huang 0 Oct 2 23:36 ./test
  1. [huang@myhost/~]$ sudo cp ./test /home/whu/         ## 拷贝文件后,文件的用户及用户组都发生变化
  2. [whu@myhost ~]$ ls -al
  3. -rw-r--r-- 1 root root 0 Oct 2 23:36 test
  1. [whu@myhost ~]$ sudo chown huang ./test             ## 修改文件用户组
  2. [whu@myhost ~]$ ls -l ./test
  3. -rw-r--r-- 1 huang root 0 Oct 2 23:36 ./test
  1. [whu@myhost ~]$ sudo chown whu:whu ./test           ## 修改用户及用户组
  2. [whu@myhost ~]$ ls -l ./test
  3. -rw-r--r-- 1 whu whu 0 Oct 2 23:36 ./test

  1. chmod -- 改变文件的权限属性
  2. 常用的修改方法有两种,一种是用英文字符来设置改变权限( w , r , x ) ; 另外一种是用数字来直接设置([r] = 4 , [w] = 2 , [x] = 1 );
  3. chmod    -[参数]    [文件]
  4. [-f]    忽略错误
  5. [-R]   递归改变文件目录下的所有文件
这个例子用字符来改变/home/huang/test文件的属性:
  1. [huang@myhost/~]$ ls -l ./test
  2. -rw-r--r-- 1 huang huang 0 Oct 2 23:36 ./test
  3. [huang@myhost/~]$ chmod u=rwx,g=rw,o=r ./test
  4. [huang@myhost/~]$ ls -l ./test
  5. -rwxrw-r-- 1 huang huang 0 Oct 2 23:36 ./test
如果我们要对u,g,o三者赋予相同的权限,可以用‘ a ’来表示:
  1. [huang@myhost/~]$ chmod a=rwx ./test
  2. [huang@myhost/~]$ ls -l ./test
  3. -rwxrwxrwx 1 huang huang 0 Oct 2 23:36 ./test
当然也可以用‘ + ' , ' - ' 来分别表示增加和减少某些权限,例如:
  1. [huang@myhost/~]$ chmod o-xw ./test                 ## other减少 wx 权限
  2. [huang@myhost/~]$ ls -l ./test
  3. -rwxrwxr-- 1 huang huang 0 Oct 2 23:36 ./test
下面来简单介绍一下用数字来表示,我们用数字来改变文件的属性:
  1. [huang@myhost/~]$ chmod 733 ./test
  2. [huang@myhost/~]$ ls -l ./test
  3. -rwx-wx-wx 1 huang huang 0 Oct 2 23:36 ./test        ##文件属性为733

  1. chgrp    --     更改文件所属用户组
  2. chgrp   -[参数]    [文件]
  3. [-f]   忽略错误信息
  4. [-R]   递归改变目录下文件
  5. [-H]   如果参数是某个目录的符号链接,转化改连接
看看下面一个简单例子,把test所属用户组修改成root组:
  1. [huang@myhost/~]$ ls -l ./test
  2. -rwx-wx-wx 1 huang huang 0 Oct 2 23:36 ./test
  3. [huang@myhost/~]$ sudo chgrp root ./test
  4. [huang@myhost/~]$ ls -l ./test
  5. -rwx-wx-wx 1 huang root 0 Oct 2 23:36 ./test
总结一下吧,这篇博文主要是对文件管理的一点总结而已,内容很简单也很基础,不需要太多赘述。
















































































阅读(1441) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~