1. chmod命令介绍:


chmod [who] [+ | - | =] [mode] 文件名 


  命令中各选项的含义为: 


  操作对象who可是下述字母中的任一个或者它们的组合: 


  u 表示“用户(user)”,即文件或目录的所有者。 


  g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。 


  o 表示“其他(others)用户”。 


  a 表示“所有(all)用户”。它是系统默认值。 


  操作符号可以是: 


  + 添加某个权限。 


  - 取消某个权限。 


  = 赋予给定权限并取消其他所有权限(如果有的话)。 


  设置mode所表示的权限可用下述字母的任意组合: 


  r 可读。 


  w 可写。 


  x 可执行。 


  X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。 


  s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。 


  t 保存程序的文本到交换设备上。 


  u 与文件属主拥有一样的权限。 


  g 与和文件属主同组的用户拥有一样的权限。 


  o 与其他用户拥有一样的权限。



2.查看文件权限,使用命令“ll”可以查看文件或者文件的权限:


-rwxrwxrwx. 1 root root 0 6月   8 09:37 mosquitto


其中“-rw-r--r--”表示权限,第一个字符,表示文件类型:文件还是目录;如果是“-”则表示是文件,如果是“d”则表示是目录(directory)。


后面9个字符每3个字符一组(“rwx”、“rwx”、“rwx”),其中:r是读权限、w是写权限、x是可执行权限、-没有对应字符的权限,这三组中:


(1)左边一组,表示所属用户本身具有的权限,对应chmod命令中who为u的值;


(2)中间一组,表示所属用户的用户组其他成员的权限,对应chmod命令中who为g的值;


(3)右边一组,表示其他用户的权限,对应chmod命令中who为o的值。



Linux里面对这些字符设置对应的数值,r是4,w是2,x是1,-是0。上面示例中,最左边一组的“rwx”则是7(=4+2+1),


因此,这里mosquitto的权限是777,即最左边属于root用户组的root用户的权限为7,具备读、写、可执行权限。



常用的操作:


chmod 777 文件名


表是分别给这三组用户了读、写、可执行权限;



3.操作示例:


使用ll命令查看当前文件的权限:


[root@localhost jason]# ll


总用量 0


-rwxrwxrwx. 1 root root 0 6月   8 09:37 mosquitto



如何将其权限转换为:-rw-r--r--


(1)去掉所有用户的可执行权限x,命令如下:


[root@localhost jason]# chmod a-x mosquitto 


[root@localhost jason]# ll


总用量 0


-rw-rw-rw-. 1 root root 0 6月   8 09:37 mosquitto


(2)去掉同组的其成员的写权限w,对应中间那个w:


[root@localhost jason]# chmod g-w mosquitto 


[root@localhost jason]# ll


总用量 0


-rw-r--rw-. 1 root root 0 6月   8 09:37 mosquitto


(3)去掉其他成员的写权限,对应右边那组的w:


[root@localhost jason]# ll


总用量 0


-rw-r--r--. 1 root root 0 6月   8 09:37 mosquitto