Linux文件属性
当用ls -l命令查看当前目录下的文件时,共显示9列内容。
drwxr-xr-x. 6 1001 1001 4096 11月 11 08:36 auto
-rw-r--r--. 1 1001 1001 278202 10月 17 21:16 CHANGES
-rw-r--r--. 1 1001 1001 423948 10月 17 21:16 CHANGES.ru
drwxr-xr-x. 2 1001 1001 168 11月 11 08:36 conf
-rwxr-xr-x. 1 1001 1001 2481 10月 17 21:16 configure
drwxr-xr-x. 4 1001 1001 72 11月 11 08:36 contrib
drwxr-xr-x. 2 1001 1001 40 11月 11 08:36 html
-rw-r--r--. 1 1001 1001 1397 10月 17 21:16 LICENSE
drwxr-xr-x. 2 1001 1001 21 11月 11 08:36 man
-rw-r--r--. 1 1001 1001 49 10月 17 21:16 README
drwxr-xr-x. 9 1001 1001 91 11月 11 08:36 src
- 第1列:包含该文件的类型、所有者、所属组、以及其他用户对该文件的权限。第1列共11位。
- 第1位:用来描述该文件的类型。
- d表示该文件是目录
- -表示该文件为普通文件
- l表示该文件为链接文件(link file)
- b表示该文件为块设备,比如/dev/sda就是这样的文件,磁盘分区文件就是这种类型
- c表示该文件为串行端口设备文件(又称字符设备文件),比如键盘、鼠标、打印机、tty终端等都是这样的文件
- s表示该文件为套接字文件(socket),用于进程之间的通信
- 文件类型后面9位,每3个为一组,均为rwx这3个参数的组合。r代表可读,w代表可写,x代表可执行。前3位为所有者(user)的权限,中间3位为所属组(group)的权限,最后3位为其他非本群组用户(others)的权限。
- 最后1位是个点“.”,在CentOS 5 版本后,ls添加了SELinux或者acl的属性。如果文件或者目录使用了SELinux context的属性,这里会是一个点“.”;如果设置了acl的属性,这里会是一个加号“+”。关于SELinux和acl了解即可。
- 第2列:表示该文件占用的节点(inode),如果是目录,那这个数值与该目录下子目录数量有关。
- 第3列:表示该文件的所有者
- 第4列:表示该文件的所属者
- 第5列:表示该文件的大小
- 第6列、第7列和第8列:表示该文件最后一次被修改的时间(time),依次为月份、日期以及时间。
- 第9列:表示文件名。
更改文件的权限
命令chgrp
chgrp(change group的缩写)命令可以更改文件的所属组,其格式为:
chgrp [组名] [文件名]
chgrp testgroup test1
chgrp命令还可以更改目录的所属组
chgrp testgroup dir2
这样,chgrp命令只更改了目录本身,而目录下的文件并没有更改。如果想要级联更改子目录以及子文件,加-R选项可以实现。
chgrp -R testgroup dir2
这个命令不常用,因为还有一个命令可以替代它,那就是chown
命令chown
chown(change own的简写)命令可以更改文件的所有者,其格式为
chown [-R] 账户名 文件名
chown [-R] 账户名:组名 文件名
这里的-R选项只适用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件也全部更改。
chown -R user1:testgroup dir3
这样就把dir3目录以及该目录下的文件都修改成所有者user1,所属组为testgroup。
命令chmod
为里方便更改文件的权限,Linux使用数字代替rwx,具体规则为:r等于4,w等于2,x等于1,-等于0。例如,rwxrwx---
用数字表示就是770,其具体算法为:rwx=4+2+1=7,rwx=4+2+1=7,—=0+0+0=7。
命令chmod(change mode的简写)用于改变用户对文件/目录的读写执行权限,其格式为
chmod [-R] xyz 文件名(这里的xyz表示数字)
-R还是表示级联更改。
在Linux系统中,一个目录的默认权限为755,而一个文件的默认权限为644.
chmod 750 dir3
chmod 700 dir3/test3
chmod -R 700 dir3
chmod还支持使用rwx的方式来设置权限。我们可以使用u、g和o来分别表示user、group和others的属性,用a代表all。
chmod u=rwx,og=rx dir3/test3
还可以针对u、g、o和a,增加或减少它们的某个权限(读,写或执行)
chmod u-x dir3/test3
chmod a-x dir3/test3
chmod u+x dir3/test3