Linux是多用户的操作系统,多个用户可以同时登陆进行操作。不同用户有不同的权限。root用户拥有最大的权限,其他用户的权限则有相应的限制。 Linux系统上还有用户组的概念,一个组可以包含多个用户,一个用户也可以同时加入多个组。组内用户除了自身的权限外,还拥有用户组成员的共同权限。通常每建立一个新的用户,也同时建立一个与用户同名的组,新用户包含在这个组内。
Linux文件系统中的每个文件都有权属标志,系统根据这些标志来控制用户对这个文件的访问。 首先,每个文件都记录了它所属的用户和所属的组;其次,每个文件都有三组权限权限标志,分别针对所属用户、所属组和其他用户,每组权限标志又包括读、写、执行三种权限。如果用户对一个文件有读权限,那么他就可以查看这个文件的内容;如果有写权限,就可以修改文件的内容;如果有执行权限,就可以把这个文件作为可执行程序来运行。对于一个目录来说,同样有这三种权限。如果用户对一个目录有读权限,那么他就可以查看目录的内容,也就是目录内包含的文件列表;如果有写权限,就可以修改目录的内容,即创建或删除文件;如果有执行权限,就可以使用此目录作为路径操作目录下的文件,否则不允许操作,并且不能将此目录作为当前目录。
文件的权属标志可以用ls -l来查看
chmod命令
chmod命令用来更改文件或目录的访问权限。
该命令有两种使用方式:字母设定方式和数字设定方式
1.字母设定方式的一般格式为: chmod [who] [操作符] [mode] 文件名 选项who表示设置对象,可以为下面几个字母的组合,如表1所示。可选的操作符如表2所示。 选项mode表示访问权限,可以为几个字母的组合,如表3所示。
表1:设置对象
字符 |
说明 |
u |
表示文件或目录的属主 |
g |
表示文件或目录的属组用户,即与属主拥有相同GID的用户 |
o |
表示其他用户 |
a |
表示所有用户,这是系统的默认值 |
表2:操作符
操作符 |
说明 |
+ |
增加某项权限 |
- |
取消某项权限 |
= |
设置指定权限,并取消其他所有权限 |
表3访问权限
字符 |
说明 |
r |
可读 |
w |
可写 |
x |
可执行 |
X |
只有目标文件对用户是可执行的,或目标文件为目录时才追加x属性 |
s |
在文件执行时将进程的属主或组ID设为文件的属主 |
u |
与文件属主拥有同样的权限 |
g |
与文件属组用户拥有同样的权限 |
o |
与其他用户拥有同样的权限 |
2.数字设定方式的一般格式为: chmod [mode] 文件名 数字属性的格式为3个从0到7的八进制数,其顺序是(u)(g)(o),具体含义如表所示。
常用数字
数字 |
含义 |
0 |
表示没有权限 |
1 |
表示可执行权限 |
2 |
表示可写权限 |
4 |
表示可读权限 |
读r | 写w | 执行x | 对应数字 |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 2 |
0 | 1 | 1 | 3 |
1 | 0 | 0 | 4 |
1 | 0 | 1 | 5 |
1 | 1 | 0 | 6 |
1 | 1 | 1 | 7 |
例:chmod 012 test.c
test.c文件用户具有的权限为0, 000,即不可读,不可写,不可执行
test.c文件用户组具有的权限为1, 001,即不可读,不可写,可执行
test.c文件其他用户具有的权限为2, 010,即不可读,可写,不可执行