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