查看权限 ls -la
w 表示拥有写的权限
x 表示拥有可执行的权限
- 表示没有该权限
[pso@localhost ~]$ ll -la
总用量 178148
drwx------. 12 pso pso 4096 3月 6 13:44 .
drwxr-xr-x. 5 root root 4096 8月 19 2016 ..
-rw-------. 1 pso pso 132101 3月 6 12:15 .bash_history
-rw-rw-r--. 1 pso pso 1829197 12月 7 18:33 credit_1207.dump
drwxrwxr-x. 2 pso pso 4096 12月 8 10:27 cron
-rw-------. 1 pso pso 573 12月 9 11:38 .mysql_history
drwxrwxr-x. 2 pso pso 4096 11月 14 22:10 .oracle_jre_usage
drwx------. 2 pso pso 4096 1月 4 10:54 .ssh
drwxr-xr-x. 8 pso pso 4096 11月 17 10:15 tomcat7
-rw-rw-r--. 1 pso pso 180375868 1月 4 10:47 tomcat7.tar.gz
修改权限
chmod [-cfvR][--help][--version]modefile...
档案存取权限分为三级 : 档案拥有者、群组、其他
mode 权限设定字串,格式如下 : [ugoa...][[+-=][rwxX]...][,...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是
+ 表示增加权限 - 表示取消权限 = 表示唯一设定权限
r 表示可读取 w 表示可写入 x 表示可执行X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行
-c 若该档案权限确实已经更改,才显示其更改动作
-f 若该档案权限无法被更改也不要显示错误讯息
-v 显示权限变更的详细资料
-R 对目前目录下的所有档案与子目录进行相同的权限变更(即以递回的方式逐个变更)
--help 显示辅助说明
--version 显示版本
将档案 file1.txt 设为所有人皆可读取
chmod ugo+r file1.txt
chmod a+r file1.txt
将档案 file1.txt 与 file2.txt 设为该档案拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入
chmod ug+w,o-wfile1.txtfile2.txt
将 ex1.py 设定为只有该档案拥有者可以执行
chmod u+x ex1.py
将目前目录下的所有档案与子目录皆设为任何人可读取
chmod -R a+r *
此外chmod也可以用数字来表示权限
chmod abc file
a 文件所有者的权限(User)
b 与文件所有者同属一个用户组的其他用户的权限(Group)c 其它用户组的权限(Other)
读 r=4
写 w=2
执行 x=1
可读可执行 rx=5=4+1
可读可写 rw=6=4+2
可读可写可执行 rwx=7=4+2+1
chmod a=rwx file 和chmod 777 file效果相同
chmod ug=rwx,o=x file和chmod 771 file效果相同
若用chmod 4755 filename可使此程式具有root的权限
chmod 755 设置用户的权限为:
1.文件所有者可读可写可执行
2.与文件所有者同属一个用户组的其他用户可读可执行
3.其它用户组可读可执行
chmod 4755与chmod 755 的区别在于开头多了一位,这个4表示其他用户执行文件时,具有与所有者相当的权限
例如:root用户创建了一个上网认证程序netlogin,如果其他用户要上网也要用到这个程序,那就需要root用户运行chmod 755 netlogin命令使其他用户也能运行netlogin
但是netlogin执行时可能需要访问一些只有root用户才有权访问的文件,那么其他用户执行netlogin时可能因为权限不够还是不能上网
这种情况下,就可以用 chmod 4755 netlogin 设置其他用户在执行netlogin也有root用户的权限,从而顺利上网。
777就是rwxrwxrwx,意思是该登录用户(可以用命令id查看)、他所在的组和其他人都有最高权限
为什么是4,2,1分别代表读写执行权限?
计算机最底层编码都是二进制,即0,1。要表示一个文件读写执行权限,底层只需一个字节,即8位即可。
约定从右数起第3位为1,代表拥有读权限;第2位为1,代表拥有写权限;第1位为1,代表拥有可执行权限。为0,则没有相应的权限。
即二进制转换成十进制,0000 0100 = 4, 0000 0010 = 2, 0000 0001 = 1。即4,2,1分别代表相应二进制位为1,也即拥有相应权限