chmod命令

chmod
命令功能:改变文件或文件夹的权限属性,支持字符标记法和数字标记法来设置权限模式。
命令语法:chmod  【选项】【权限模式】【文件或目录】
选项
-R :大写R,以递归的方式改变制定目录,以及目录下所有子目录和文件的权限。
-c:显示文件权限的变化。
-v:显示命令执行的详细信息。

--reference=<模板文件>:将制定文件更改为模板文件相同的权限。

示例1:数字标记法更改文件权限

说明:数字标记法采用4个八进制的数字进行表示权限标识,如chmod   6777  data.txt ,每一个八进制数都可以转换成3位的二进制数,分别代表不同的含义。
第一个八进制转换成的3位二进制分别为suid权限,sgid权限,sticky粘滞位。
第二个八进制转化成的3位二进制分别为文件所属用户的读权限、写权限、执行权限。
第三个八进制转化成的3位二进制分别为文件所属组的用户的读权限、写权限、执行权限。
第四个八进制转化成的3位二进制分别为其他所有用户的读权限、写权限、执行权限。

dyp930@ubuntu:~/work$ chmod 677 example.txt //677=110111111,对应于rw-rwxrwx权限
dyp930@ubuntu:~/work$ ls -lrt
total 0
-rw-rwxrwx 1 dyp930 dyp930 0 Jun 27 06:07 example.txt
dyp930@ubuntu:~/work$ chmod 7000 example.txt //此处的权限模式是4位,从而设置了相应的suid权限,sgid权限,sticky粘滞位的设置。
dyp930@ubuntu:~/work$ ls -lrt
total 0
---S--S--T 1 dyp930 dyp930 0 Jun 27 06:07 example.txt

示例2:字符标记法更改文件权限
说明:字符标记法的格式为[ugoa][+-=][rwxXstugo],分别为操作的三要素,即对谁做,怎么做,做什么,具体如下:
[ugoa]表示操作哪些用户的权限,u代表文件所属用户的权限,g代表文件所属组用户的权限,o代表其他用户的权限,a代表所有用户的权限。
[+-=]表示对于权限的操作,+代表在原来的权限基础上增加权限,- 代表删除权限,=表示不考虑原有权限,直接赋予新的权限
[rwxXstugo]代表具体的权限内容,rwx为读写执行,X代表,s表示设置suid、sgid,只能与u、g连用,如u+s,g-s等。t代表粘滞位,u表示设置为与文件所属用户一样的权限,同理,g和o分表代表设置为与所属组、其他用户一样的权限。
dyp930@ubuntu:~/work$ chmod 642 example.txt 
dyp930@ubuntu:~/work$ ls -lrt
total 0
-rw-r---w- 1 dyp930 dyp930 0 Jun 27 06:07 example.txt
dyp930@ubuntu:~/work$ chmod g=u example.txt //将组用户对该文件的权限设置和所属用户一样
dyp930@ubuntu:~/work$ ls -lrt
total 0
-rw-rw--w- 1 dyp930 dyp930 0 Jun 27 06:07 example.txt
dyp930@ubuntu:~/work$ chmod o=u example.txt //将其他用户对该文件的权限设置和所属用户一样
dyp930@ubuntu:~/work$ ls -lrt
total 0
-rw-rw-rw- 1 dyp930 dyp930 0 Jun 27 06:07 example.txt
dyp930@ubuntu:~/work$ 
dyp930@ubuntu:~/work$ chmod a+X example.txt //大写X,代表赋予执行权限前,看是否是目录或者可执行文件,否则添加不了执行权限。
dyp930@ubuntu:~/work$ ls -lrt
total 0
-rw-rw-rw- 1 dyp930 dyp930 0 Jun 27 06:07 example.txt
dyp930@ubuntu:~/work$ 
dyp930@ubuntu:~/work$ ls -lrt
total 0
-rwxr-x-w- 1 dyp930 dyp930 0 Jun 27 06:07 example.sh
dyp930@ubuntu:~/work$ chmod u-x,g+w,o=rwx example.sh //文件所属用户减去执行权限,所属组用户增加写权限,其他用户置为读写执行。
dyp930@ubuntu:~/work$ ls -lrt
total 0
-rw-rwxrwx 1 dyp930 dyp930 0 Jun 27 06:07 example.sh
示例3:递归更改目录、子目录及文件的权限。
dyp930@ubuntu:~/work$ ls -lrt
total 4
-rw-rwxrwx 1 dyp930 dyp930    0 Jun 27 06:07 example.sh
dr-xr--r-- 2 dyp930 dyp930 4096 Jun 27 06:52 temp
dyp930@ubuntu:~/work$ cd temp
dyp930@ubuntu:~/work/temp$ ls -lrt
total 0
-rw-rw-r-- 1 dyp930 dyp930 0 Jun 27 06:52 a.ext
dyp930@ubuntu:~/work/temp$ cd ..
dyp930@ubuntu:~/work$ chmod -R 744 temp/   //递归更改目录及子目录、文件的权限。
dyp930@ubuntu:~/work$ ls -lrt
total 4
-rw-rwxrwx 1 dyp930 dyp930    0 Jun 27 06:07 example.sh
drwxr--r-- 2 dyp930 dyp930 4096 Jun 27 06:52 temp
dyp930@ubuntu:~/work$ cd temp
dyp930@ubuntu:~/work/temp$ ls -lrt
total 0
-rwxr--r-- 1 dyp930 dyp930 0 Jun 27 06:52 a.ext
dyp930@ubuntu:~/work/temp$ 

示例4:根据模板文件更改权限。

dyp930@ubuntu:~/work/temp$ ls -lrt
total 0
-rw-rw-r-- 1 dyp930 dyp930 0 Jun 27 06:58 b.txt
-r----x--x 1 dyp930 dyp930 0 Jun 27 07:00 a.txt
dyp930@ubuntu:~/work/temp$ chmod --reference=b.txt a.txt  //将b.txt文件的权限属性作为模板,更改a.txt文件。
dyp930@ubuntu:~/work/temp$ ls -lrt
total 0
-rw-rw-r-- 1 dyp930 dyp930 0 Jun 27 06:58 b.txt
-rw-rw-r-- 1 dyp930 dyp930 0 Jun 27 07:00 a.txt
dyp930@ubuntu:~/work/temp$ 

示例5:-c 和 -v 选项的作用。

dyp930@ubuntu:~/work/temp$ chmod -c u+x b.txt
mode of ‘b.txt’ changed from 0664 (rw-rw-r--) to 0764 (rwxrw-r--)//详细指出了权限的变化。
dyp930@ubuntu:~/work/temp$ ls -lrt
total 0
-rwxrw-r-- 1 dyp930 dyp930 0 Jun 27 06:58 b.txt
-rw-rw-r-- 1 dyp930 dyp930 0 Jun 27 07:00 a.txt
dyp930@ubuntu:~/work/temp$ chmod -v u+x a.txt
mode of ‘a.txt’ changed from 0664 (rw-rw-r--) to 0764 (rwxrw-r--)//貌似没有区别...
dyp930@ubuntu:~/work/temp$ 


注:关于suid、sgid、sticky的解释,后续补充。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值