【Linux】文件权限
Linux的每一个文件都跟多种类型相关联。在这些权限中,我们通常需要和三类权限打交道(用户、用户组以及其他实体)。
1.文件权限查看ls –l
Linux:/qinys # ls -l
total 60
-rwxr--r-- 1 root root 30 Jan 15 01:46 A.txt
-rw-r--r-- 1 root root 30 Jan 15 01:46 B.txt
-rw-r--r-- 1 root root 8 Jan 15 01:48 C.txt
-rw-r--r-- 1 root root 11 Jan 15 01:33 D.txt
drwxr-xr-x 2 root root 4096 Jan 15 04:33 a.sh
drwxr-xr-x 2 root root 4096 Jan 15 02:24 data
…
第一行:total 60 :告诉我们该目录所占用的空间;
第一列:第一个字母明确指出对象类型
"-" :普通文件
"d" :目录
"c" :字符设备
"b" :块设备
"l" :符号链接
"s" :套接字
"p" :管道
第二列:表示硬链接的数目
2.用户、用户组、其他用户权限
除去第一个字母,剩下的部分可以分为三段,每段3个字符;其中:
- 第一段对应用户权限
- 第二段对应用户组权限
- 第三段对应其他用户权限
例如:-rw-r--r-- 1 root root 30 Jan 15 01:46 B.txt
-代表该文件问普通文件,rw-代表用户权限为可读写,r--代表用户组权限为可读,r--代表其他用户权限为可读
3.设置文件权限
3.1 一般授权
3.1.1 chmod命令的一般格式为:
chmod [who] operator [permission] filename
说明:
who的含义
u :指定用户权限
g :指定用户组权限
o :指定其他实体权限
a :表示所有(用户、用户组、其他实体用户)
operator的含义
+ 增加权限
- 删除权限
= 设定权限
permission的含义
r 读权限
w 写权限
x 执行权限
s 文件属主和组set-ID
t 粘性位*
l 给文件加锁,使其他用户无法访问
3.1.2 chmod命令举例
假如现在文件per.sh权限为rwx rwx rwx
Linux:/qinys # ls -lrt per.sh
-rwxrwxrwx 1 root root 0 Jan 17 15:05 per.sh
①收回所有用户组的执行权限
Linux:/qinys # chmod a-x per.sh
Linux:/qinys # ls -lrt per.sh
-rw-rw-rw- 1 root root 0 Jan 17 15:05 per.sh
②收回同用户组好其他用户组的写权限
Linux:/qinys # chmod go-w per.sh
Linux:/qinys # ls -lrt per.sh
-rw-r--r-- 1 root root 0 Jan 17 15:05 per.sh
③赋予同组用户写权限
Linux:/qinys # chmod g+w per.sh
Linux:/qinys # ls -lrt per.sh
-rw-rw-r-- 1 root root 0 Jan 17 15:05 per.sh
④赋予文件属主可执行权限
Linux:/qinys # chmod u+x per.sh
Linux:/qinys # ls -lrt per.sh
-rwxrw-r-- 1 root root 0 Jan 17 15:05 per.sh
⑤赋予同组用户和其他用户可执行权限
Linux:/qinys # chmod go+x per.sh
Linux:/qinys # ls -lrt per.sh
-rwxrwxr-x 1 root root 0 Jan 17 15:05 per.sh
3.1 八进制授权
也可以使用八进制来设置权限,权限由3位八进制数来表示,每一位按照顺序分别对应用户、用户组、其他用户
读、写和执行都有与之对应的八进制数
- r--=4
- -w-=2
- --x=1
我们可以对权限进行组合,例如:可读可写权限
rw-=4+2
777表示的是:用户、用户组、其他用户都具有可读、可写、可执行权限
示例:chmod 777 filename #授予用户、用户组、其他用户都具有可读、可写、可执行权限
特殊:chmod 7 filename #将其他用户权限授予可读、可写、可执行,用户与用户组的权限则全部收回
可以使用-R选项连同子目录下的文件一起设置权限,但是需要谨慎,只有在需要改变目录树下全部文件权限时候才可以使用。
4.更改文件的所有权
使用chown命令进行修改
4.1 查看当前文件所属
Linux:/qinys/oliver # ls -l
total 4
---x--x--x 1 root root 0 Jan 15 04:34 a.sh
当前文件所属为root 组为:root
4.2 修改所属,再次查看
Linux:/qinys/oliver # chown qinys:root a.sh
Linux:/qinys/oliver # ls -l
total 4
-------rwx 1 qinys root 0 Jan 15 04:34 a.sh
从上述结果我们可以看到,文件所属已经发生改变
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!