权限管理命令包括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 可写
x 可执行
2.以绝对方式改变权限(常用)
chmod mode 文件名
mode为二进制方式,可执行为1,不可执行为0
形如:rwxr-wr-- 二进制为111 101 100
注意:我们将test1文件夹下的f1文件的权限设置为777,即可读可写可执行,然后我们删除文件,即rm f1,有什么后果呢?
[bestcoder@localhost test1]$ chmod 777 f1效果:提示无法删除"f1":权限不够
[bestcoder@localhost test1]$ ls -l f1
-rwxrwxrwx. 1 bestcoder bestcoder 0 9月 15 01:44 f1
[bestcoder@localhost test1]$ rm f1
rm: 无法删除"f1": 权限不够
为什么会出现这种效果呢?原因是文件的删除创建与其所在目录的权限w有关,查询目录权限后发现其权限是可读写执行的,那么目录权限和其内容有什么关系呢?
[bestcoder@localhost test1]$ ls -ld ../test1/
dr-xr-xr-x. 4 bestcoder bestcoder 91 9月 15 01:44 ../test1/
文件和目录权限的关系:
通过这个我们发现,要想创建删除文件,其所在目录必须可读的,所以我将目录权限改为777,问题就迎刃而解啦。
umask命令
设置新建文件的默认权限
[bestcoder@localhost test1]$ umask这是什么情况?为什么不是给出的文件权限不是777,755呢?
0002
其实umask给出的是掩码值,用777-002就得出真正权限,默认权限是775。
另外,使用umask -S 可以字符型显示当前掩码。
[bestcoder@localhost test1]$ umask -S
u=rwx,g=rwx,o=rx
然后,我们新建一个文件f1,查看其权限
[bestcoder@localhost test1]$ ls -l f1很奇怪,默认权限是775,但实际权限是664,为什么呢?
-rw-rw-r--. 1 bestcoder bestcoder 0 9月 15 02:15 f1
原来为了系统的安全性考虑,缺省创建的文件不能授予可执行x权限。
更改缺省创建文件的权限为750,方式为:umask 掩码值
[bestcoder@localhost test1]$ umask 027