Linux系统通过完善的权限管理来限制每一个用户对于系统中文档和目录的访问。在Linux系统中,文件和目录的权限是有些差异的。
一、权限介绍:
如上所示,通过ll命令列出目录下文件的时候同时也会列出文件的权限,从第二位开始,一直到第九位,即rw-r–r–就是文件的权限描述:其中3位为一组:
第一组:rw-:代表文件的属主(user)对文件的权限;
第二组:r–:代表文件的属组(group)对文件的权限:
第三组:r–:代表其他人(other)对文件的权限;
1.1权限分类:
文件的权限又分为三种:
r:读权限
w:写权限
x:执行权限
这三种权限对于文件和目录来说意义也是不一样的:
对文件:
r:可以通过cat等文档查看命令查看该文件;
w:可以编辑该文件的内容;
x:可以执行该文件;
对目录:
r:可以通过ls命令列出目录下的文件;
w:可以在目录下新建、删除、移动文件;
x:可以通过cd命令切换到目录下;
1.2 修改文件属主、属组和权限:
文件属组,属组和权限的更改:
chown 属主:属组 文件名
-R:递归修改文件属主和属组
chgrp 属组 文件名
-R:递归修改文件属组
修改文件的权限通过chmod命令:
其中有两种修改方法:
1、字符修改法:
其中:
u:属主
g:属组
o:其他人
a:所有人
例子:
chmod u+x test:代表给test的属主加上执行权限;
chmod u=rwx test:代表给test的属主所有权限;
chmod a=rwx test:所有人对test文件都有读、写和执行的权限;
2、数字表示法:
通过八进制来表示读、写和执行权限:
r:4
w:2
x:1
例子:
chmod 777 test:代表所有人对test有读写和执行权限;
chmod 644 test:代表属主有读、执行权限,属组有读权限,其他人有读权限;
二、umask介绍:
反掩码umask的介绍
创建一个新文件的时候文件的默认权限就是通过去除umask来生成的:
root用户的反掩码为0022
普通用户的反掩码为0002
其中:
r=4
w=2
x=1
创建一个文件的时候其权限就是rw-rw-rw-去除—-w–w-,所得即为:rw-r–r–
创建一个目录的时候其权限就是rwxrwxrwx去除—-w–w-,所得即为:rwxr-xr-x
通过umask+反掩码即可修改反掩码;
三、文件的特殊权限:
SUID:只作用于文件当用户在执行一个具有SUID权限的文件的时候,该用户会临时取得该文件属主的权限来执行此文件,常用于系统文件;
如passwd属于root用户和root组,但是普通用户也可以使用该文件来修改自己的密码,就是因为passwd具有SUID权限:
-rwsr-xr-x. 1 root root 27832 Jun 10 2014 /bin/passwd;其中属主权限的s位表示passwd具有SUID权限;
SGID:作用于文件和目录,对文件来说,如果其拥有SGID权限,那么其他用户就可以用文件拥有者的身份来执行此文件;对目录来说,主要用于团队协作;
Sticky:只作用于目录,在具有Sticy权限的目录下所有用户都可以创建文件,但是只有文件的属主可以删除自己的文件,其他人没有删除别人文件的权限,比如/tmp目录:
drwxrwxrwt. 20 root root 4096 Apr 1 09:25 /tmp/ ;其中其他人权限的t位表示目录具有Sticky权限;
修改特殊权限:
特殊权限区分如下:
SUID:4
SGID:2
Sticky:1
通过chmod修改特殊权限:
如:chmod u+s test:表示赋予test文件SUID的权限:其权限变为:-rwSr–r–. 1 root root 0 Apr 1 09:28 test
chmod g+s test:表示赋予testSGID权限:-rwSr-Sr–. 1 root root 0 Apr 1 09:28 test
chmod o+t /test:表示赋予test目录Sticky权限:drwxr-xr-t. 2 root root 6 Apr 1 09:29 test
四、文件的隐藏权限:
-rw-r–r–. 1 root root 2949458 Mar 31 17:50 access_log
文件的第11位是隐藏权限位,隐藏权限为分为两种:
i:表示不能删除、改名、更改文件
a:表示只能追加文件内容
它的设置方法为:
Chattr +i|-i test
Chattr +a|-a test
查看方法lsattr test
五、文件访问控制列表ACL
可以通过对文件添加ACL来控制不同用户对文件的访问,是否开启通过SELinux来进行控制;
1、查看ACL:
[root@localhost ~]# getfacl access_log
file: access_log
owner: root
group: root
user::rw-
group::r–
other::r—
2、设置ACL,允许wzh对access_log文件具有rwx权限:
[root@localhost ~]# setfacl -m user:wzh:rwx access_log
[root@localhost ~]# getfacl access_log
file: access_log
owner: root
group: root
user::rw-
user:wzh:rwx
group::r–
mask::rwx
other::r–
原创文章,作者:王子豪,如若转载,请注明出处:http://www.178linux.com/72269
评论列表(1条)
主要总结了linux下的文件及目录权限的管理,内容写的很不错,排版有待加强。