Linux 文件权限

一、查看文件权限:

查看命令:ll 或 ls -l(两个是相同的,若没有ll命令就用ls -l,可在环境变量中配置)

二、权限详解

1)Linux中,每个文件拥有三种权限详情见下面:

注:目录必须拥有x权限,否则无法查看

权限 对文件的影响 对目录的影响
r(read:读权限,数字4表示) 可读取文件内容 可列出目录内容
w(write:写权限,数字2表示) 可修改文件内容 可在目录中创建删除内容
x(excute:执行权限,数字1表示) 可作为命令执行 可访问目录内容
2)Linux权限基于UGO模型进行控制:
  • U代表User,G代表Group,O代表Other
  • 每一个文件的权限基于UGO进行设置
  • 权限三个一组(rwx),对应UGO分别设置
  • 每一个文件拥有一个所属用户和所属组,对应UGO,不属于该文件所属用户或所属组使用O权限

命令ls –l可以查看当前目录下文件的详细信息:
drwxr-xr-x 3 root root 4096 Jan 19 23:23 test


UGO.png

三、权限修改

1、修改文件所属主、组

1)命令chown用以改变文件的所属用户:
-R参数递归的修改目录下的所有文件所属用户

[root@VM_38_201_centos ~]# ll
drwxr-xr-x 2 root root 4096 Jan 20 18:25 test
[root@VM_38_201_centos ~]# chown tang test -R
[root@VM_38_201_centos ~]# ll
drwxr-xr-x 2 tang root 4096 Jan 20 18:25 test

2)命令chgrp用以改变文件的所属组

[root@VM_38_201_centos ~]# chgrp tang test -R
[root@VM_38_201_centos ~]# ll
drwxr-xr-x 2 tang tang 4096 Jan 20 18:25 test
-R参数递归的修改目录下的所有文件的所属组

3)同时更改拥有者和组:chown -R root:root test

[root@VM_38_201_centos ~]# ll
dr-xrwx-wx 2 tang tang 4096 Jan 20 18:25 test
[root@VM_38_201_centos ~]# chown -R root:root test
[root@VM_38_201_centos ~]# ll
dr-xrwx-wx 2 root root 4096 Jan 20 18:25 test
2、修改权限:

1)命令chmod用以修改文件的权限
chmod 模式 文件
2)模式为如下格式:
①名称方式修改

u、g、o分别代表用户、组和其他
a可以代指ugo
+、-、=代表加入、删除和等于对应权限

②数字方式修改权限

-r= 4  (2^2)
-w= 2  (2^1)
-x= 1  (2^0)
使用数字表示权限时,每组权限分别对应数字之和:
rw    = 4+2    =6
rwx   = 4+2+1  =7
r-x   = 4+1    =5

3)模式示例(数字模式都是基于文件原有权限算出的):
①给g添加写的权限:chmod g+w test 或 chmod 775 test

[root@VM_38_201_centos ~]# ll
drwxr-xr-x 2 tang tang 4096 Jan 20 18:25 test
[root@VM_38_201_centos ~]# chmod g+w test 或 chmod 775 test
[root@VM_38_201_centos ~]# ll
drwxrwxr-x 2 tang tang 4096 Jan 20 18:25 test

②给o去掉执行的权限:chmod o-x test 或 chmod 774 test

[root@VM_38_201_centos ~]# ll
drwxrwxr-x 2 tang tang 4096 Jan 20 18:25 test
[root@VM_38_201_centos ~]# chmod o-x test 或 chmod 774 test
[root@VM_38_201_centos ~]# ll
drwxrwxr-- 2 tang tang 4096 Jan 20 18:25 test

③给o添加写和执行的权限:chmod o=rwx test 或 chmod 777 test

[root@VM_38_201_centos ~]# ll
drwxrwxr-- 2 tang tang 4096 Jan 20 18:25 test
[root@VM_38_201_centos ~]# chmod o=rwx test 或 chmod 777 test
[root@VM_38_201_centos ~]# ll
drwxrwxrwx 2 tang tang 4096 Jan 20 18:25 test

④给所有用户添加写的权限:chmod a+w test 或 chmod 573 test

[root@VM_38_201_centos ~]# ll
dr--r-x--x 2 tang tang 4096 Jan 20 18:25 test
[root@VM_38_201_centos ~]# chmod a+w test 或 chmod 573 test
[root@VM_38_201_centos ~]# ll
drw-rwx-wx 2 tang tang 4096 Jan 20 18:25 test

四、特殊权限(目前仅作了解)

权限 对文件的影响 对目录的影响
suid 以文件的所属用户身份执行,而非执行文件的用户。
sgid 以文件所属组身份去执行 在该目录中创建任意新文件的所属组与该目录的所属组相同。
sticky 对目录拥有写入权限的用户仅可以删除其拥有的文件无法删除其他用户所拥有的文件。
1、设置特殊权限
1)设置 suid:

让普通用户可以以root用户的角色运行只有root帐号才能运行的程序或命令
(任何用户都可以拥有我的权限)

chmod u+s test  #增加权限
chmod u-s test  #去掉权限
2)设置 sgidu:(任何用户都可以拥有我的权限)
chmod g+s test  #增加权限
chmod g-s test  #去掉权限
3)设置 sticky:

对目录拥有写入权限的用户仅可以删除其拥有的文件无法删除其他用户所拥有的文件。(仅对目录有作用,对文件无影响)

chmod o+t test  #增加权限
chmod o-t test  #去掉权限
2、与设置普通权限一样,特殊权限也可以使用数宇方式表示:
SUID = 4 
SGID = 2
Sticky = 1
所以,我们可以通过以下命令设置: chmod 4755 test.net

五、隐藏权限(目前仅作了解)

i:可以让文件不能被删除、重命名;不能写入、添加数据;不能创建硬链接;注意只有root用户有权设置此权限
a:让这个文件只能增加数据,不能删除、修改数据;注意只有root用户有权设置此权限

chattr +i test.txt  #赋予文件权限
chattr -i test.txt  #去掉文件权限
lsattr test.txt     #查看文件是否具有权限

你可能感兴趣的:(Linux 文件权限)