Linux用户权限
每个Linux文件具有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。
利用ls -l命令可以看到某个文件或目录的权限,它以显示数据的第一个字段为
准。第一个字段由10个字符组成,如下:
-rwxr-xr-x
第一位表示文件类型,-表示文件,d表示目录
2-4位表示文件所有者的权限,u权限
5-7位表示文件所有者所属组成员的权限,g权限
8-10位表示所有者所属组之外的用户的权限,o权限
2-10位的权限总和有时称为a权限
chmod
该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。chmod 是用来改变文件或目录权限的命令,但只有文件的属主和超级权限用户root才有这种权限。
我们前面已经说了,文件或目录的权限位总共有9个位置 ,文件属主、文件所归属的组占用三位和其它用户各占用三个位置。看个例子:
-rwxr-xr-x 1 root root 0 04-23 20:11
linuxsir007.txt
说明:
1. chmod 的八进制语法的数字说明;
r 4 w 2 x 1 - 0
属主的权限用数字表达:属主的那三个权限位的数字加起来的总和。比如上面的例子中属主的权限是rwx ,也就是4+2+1 ,应该是7;
属组的权限用数字表达:属组的那个权限位数字的相加的总和。比如上面的例子中的r-x ,也就是4+0+1 ,应该是5;
其它用户的权限数字表达:其它用户权限位的数字相加的总和。比如上面例子中是 r-x ,也就是4+0+1 ,应该是5;
例如:改变一个文件的权限
但是对于一个文件夹
1.如果想改变文件夹本身的权限而不改变其子文件的权限,不加任何参数
查看文件夹以及文件夹下全部子文件
2. 改变自身和子文件夹权限
3.不改变自身权限,只改变子文件夹权限
[root@localhost ~]# chmod -R 644
bin/.[a-z]*
上面的例子chmod 会匹配所有以.a到.z 开头的文件。
2 通过 chmod 助记语法来改变文件或目录的权限
chmod 的助记语法相对简单,对文件或目录权限的改变时,是通过比较直观的字符的形式来完成;在助记语法中,相关字母的定义;
用户或用户组定义:
u 代表属主
g 代表属组
o 代表其它用户
a 代表属主、属组和其它用户,也就是上面三个用户(或组)的所有;
权限定义字母: r 代表读权限; w 代表写权限; x 代表执行权限;
权限增减字符;
- 代表减去相关权限; + 代表增加相关权限;
[root@localhost ~]# chmod ugo-x linuxsir007.txt
注:把属主、用户组及其它用户的执行权限都减掉
[root@localhost ~]# chmod u+x linuxsir007.txt 注:为文件的属主增加执行权限
[root@localhost ~]# chmod u-x,go+rw linuxsir007.txt 注:减去文件属主对文件的执行权,增加属组和其它用户对文件的可读可写权
用助记语法比较灵活,组合起来比较方便;比如;
u=r+x 为文件属主添加读写权限;
ug=rwx,o=r 为属主和属组添加读、写、执行权限,为其它用户设置读权限。
a+x 为文件的属主、属组和其它用户添加执行权限;
g=u 让文件的属组和属主和权限相同;
对于目录权限的设置,要用到-R参数;
和八进制方法一样,如果我们为一个目录及其下的子目录和文件具有相同的属性,就可以用-R参数;
[root@localhost ~]# chmod -R a+rwx
testdir/