chmod命令

查看权限 ls -la

第一个字符代表文件类型(d代表目录,-代表非目录)
接下来每三个字符为一组权限,分为三组,依次代表所有者权限,同组用户权限,其它用户权限
每组权限的三个字符依次代表是否可读,是否可写,是否可执行

r 表示拥有读的权限
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,也即拥有相应权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值