Linux战地日记——权限管理命令

时间:2022-06-13 04:59:45

权限管理命令包括chmod、chown、chgrp;其全称分别为:

chmod  :  change the permissions mode of a file 改变文件或目录的权限

chown  :  change file ownership 改变文件或目录的所有者

chgrp   :   change file group ownership 改变文件或目录的所属组  

chmod 改变文件或目录权限

改变方式分为两种:符号模式改变权限,绝对方式改变权限。

1.符号模式改变权限,一般格式:

chmod  key  文件名

key包括三个部分:

[who]  [操作符号]  [mode]

[who]包括:

u 用户(user) 文件或目录的所有者

g 同组用户(group)用户   与文件主有相同组ID的所有用户。

o 其他(others)用户

a 所有(all)用户。

[操作符号]可以是:

+  添加某个权限

-  取消某个权限

= 赋予权限并取消其余所有权限

[mode]

r 可读

w 可写

可执行

2.以绝对方式改变权限(常用)

chmod  mode  文件名

mode为二进制方式,可执行为1,不可执行为0

形如:rwxr-wr--  二进制为111 101 100

注意:我们将test1文件夹下的f1文件的权限设置为777,即可读可写可执行,然后我们删除文件,即rm f1,有什么后果呢?

[bestcoder@localhost test1]$ chmod 777 f1
[bestcoder@localhost test1]$ ls -l f1
-rwxrwxrwx. 1 bestcoder bestcoder 0 9月 15 01:44 f1
[bestcoder@localhost test1]$ rm f1
rm: 无法删除"f1": 权限不够
效果:提示无法删除"f1":权限不够

为什么会出现这种效果呢?原因是文件的删除创建与其所在目录的权限w有关,查询目录权限后发现其权限是可读写执行的,那么目录权限和其内容有什么关系呢?

[bestcoder@localhost test1]$ ls -ld ../test1/
dr-xr-xr-x. 4 bestcoder bestcoder 91 9月 15 01:44 ../test1/

文件和目录权限的关系:

Linux战地日记——权限管理命令

通过这个我们发现,要想创建删除文件,其所在目录必须可读的,所以我将目录权限改为777,问题就迎刃而解啦。


umask命令

设置新建文件的默认权限

[bestcoder@localhost test1]$ umask
0002
这是什么情况?为什么不是给出的文件权限不是777,755呢?

其实umask给出的是掩码值,用777-002就得出真正权限,默认权限是775。

另外,使用umask -S 可以字符型显示当前掩码。

[bestcoder@localhost test1]$ umask -S
u=rwx,g=rwx,o=rx

然后,我们新建一个文件f1,查看其权限

[bestcoder@localhost test1]$ ls -l f1
-rw-rw-r--. 1 bestcoder bestcoder 0 9月 15 02:15 f1
很奇怪,默认权限是775,但实际权限是664,为什么呢?

原来为了系统的安全性考虑,缺省创建的文件不能授予可执行x权限。


更改缺省创建文件的权限为750,方式为:umask  掩码值 

[bestcoder@localhost test1]$ umask 027