1、权限查看
yifeng:bin yifeng$ ls -l startup.sh
-rwxrwxrwx@ 1 yifeng staff 1904 9 27 18:32 startup.sh
上面打印的文件信息中每一部分所代表的含义,分别对应如下解释:
文件类型和访问权限 文件数量 所属用户 所在群组 文件大小 修改日期(月 日 时 分) 文件名称
第一部分详细说明一下,就以 “drwxr-xr-x” 为例:第一个符号代表文件类型, “-” 符号表示该文件是非目录类型,“d” 符号表示目录类型;( 末尾的 @ 符号表示文件拓展属性,属于文件系统的一个功能。)
后面九个字母分为三组,从前到后每组分别对应所属用户(user)、所属用户所在组(group)和其他用户(other)对该文件的访问权限;
每组中的三个字符 “rwx” 分别表示对应用户对该文件拥有的可读/可写/可执行权限,没有相应权限则使用 “-” 符号替代。
2、修改访问权限
1>>符号法
chmod 用户+操作+权限 文件
chmod {u|g|o|a}{+|-|=}{r|w|x} filename
用户部分:
u 表示文件拥有者(user),
g 表示拥有者所在群组(group),
o 表示其他用户(other),
a 表示全部用户(all,包含前面三种用户范围);
操作部分:
“+” 符号表示增加权限,
“-” 符号表示取消权限,
“=” 符号表示赋值权限;
权限部分:
“r” 符号表示可读(read),
“w” 表示可写(write),
“x” 表示可执行权限(execute);
文件部分:
如不指定文件名,表示操作对象为当前目录下的所有文件。
还以前面 startup.sh 文件为例,将拥有者所在群组和其他用户改为可读可写权限、取消可执行权限的使用方式为:
yifeng:bin yifeng$ chmod go-x startup.sh
#查看,可以看到权限已修改
yifeng:bin yifeng$ ls -l startup.sh
-rwxrw-rw-@ 1 yifeng staff 1904 9 27 18:32 startup.sh
如果是复杂一点操作的话,可以同时使用多种操作符添加和取消权限,并且可以使用 “,” 符号同时对不同用户范围修改权限,比如:
chmod g+x,o+x-w startup.sh
2>>八进制数字法
chmod abc file
a,b,c各为一个八进制数字,分别表示User、Group、及Other的权限:
4 (100) 表示可读。
2 (010) 表示可写。
1 (001) 表示可执行。
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。
数字和权限类型的对应关系如下图:
1 表示可执行,2 表示可写,4 表示可读。每种类型数字相加所得到的值表示交叉部分的公共类型。
这样的话,使用三个数字便可以分别代表三种不同用户类型的权限修改结果,例
chmod 777 startup.sh #修改所有用户的访问权限均为可读可写可执行
chmod 741 filename #让本人可读写执行、同组用户可读、其他用户可执行文件filename。
chmod -R 755 /home/oracle #递归更改目录权限,本人可读写执行、同组用户可读可执行、其他用户可读可执行
三个数字从前到后分别表示 u、g、o 三种用户类型的访问权限,使用时按需修改。
补充一点,有时候需要递归修改目录文件及其子目录中的文件类型,可以使用 -R
选项。
3、常用权限数字
444 r--r--r--
600 rw-------
644 rw-r--r--
666 rw-rw-rw-
700 rwx------
744 rwxr--r--
755 rwxr-xr-x
777 rwxrwxrwx
具体的权限是由数字来表示的,读取的权限等于4,用r表示;写入的权限等于2,用w表示;执行的权限等于1,用x表示;
通过4、2、1的组合,得到以下几种权限:0(没有权限);4(读取权限);5(4+1 | 读取+执行);6(4+2 | 读取+写入);7(4+2+1 | 读取+写入+执行)
以755为例:
1-3位7等于4+2+1,rwx,所有者具有读取、写入、执行权限;
4-6位5等于4+1+0,r-x,同组用户具有读取、执行权限但没有写入权限;
7-9位5,同上,也是r-x,其他用户具有读取、执行权限但没有写入权限。