Linux系统中的权限管理
1.文件权限
1).文件权限存在的意义
系统中的最底层安全设定方法之一,保证文件可以被可用的用户做相应的操作。
2).文件权限的查看
命令 | 命令功能 |
---|---|
ls -l file | 查看文件属性 |
ls -ld dir | 查看目录属性 |
ll file | 查看文件属性(ll=ls -l) |
ll -d dir | 查看目录属性 |
ls -lR | 递归显示目录下的文件和子目录下的文件 |
3).文件权限的读取
ls -l file所显示的文件属性总共有8列:
1.文件的类型(’-'代表空文件,'d’代表目录,'l’代表软链接,'s’代表套接字,'b’代表block块设备,'c’代表字符设备); 2.文件的权限查看('r’代表可读,'w’代表可写,'x’代表可执行;从前到后每三个字符分别代表u:拥有者,g代表组,o代表其他人) 3.目录/链接个数; 4.uid; 5.gid; 6.文件大小; 7.文件最后一次被修改的时间; 8.文件/目录名
4).改变所有人和所有组-chown/chgrp
指令 | 指令功能 |
---|---|
chown username file/dir | 修改文件的uid |
chgrp groupname file/dir | 修改文件的gid |
chgrp -R 新的组名 目录 | 表示同时修改uid和gid(-R 表示递归建立) |
5).更改文件/目录的权限
1.对权限的理解
r- 读权限
对文件:是否可以查看文件中的内容(cat file);
对目录:是否可以查看目录中有什么子文件或者子目录(ls dir)
w- 写权限
对文件:是否可以改变文件中记录的字符;
对目录:是否可以对目录中子目录或子文件的原数据进行修改
x- 执行权限
对文件:是否可以通过文件名称调用文件内记录的程序;
对目录:是否可以进入目录
2.更改方式
chmod <u|g|o><+|-|=><r|w|x> file/dir 或 chmod 000~777 file/dir
chmod u+x file ##对file文件user添加执行权限
chmod g-r file ##取消file文件group的读权限
chmod ug-r file ##取消file文件user和group的读权限
chmod u-r,g+x file
chmod -r u+x file ##递归操作
chmod o=r-x file
6).umask:系统建立文件时默认保留的权力
临时设定系统预留权限为022 umask 022
永久更改umask
vim /etc/profile ##系统配置文件
vim /etc/bashrc ##shell配置文件
7).特殊权限
1.sticky##粘制位
只针对目录生效,当一个目录上有sticky权限时,在这个目录中的文件只能被其所有者删除
设定方式 | 说明 |
---|---|
chmod o+t dir | 给目录下的文件加上sticky权限 |
chmod 1xxx dir | 给目录下的文件加上sticky权限 |
2.sgid##强制位
对目录:当目录上有sgid权限时任何人在此目录中建立的文件都属于目录的所有组;
对文件:二进制可执行文件,当文件上有sgid时,任何人执行此文件产生的进程都属于文件的组
设定方式 | 说明 |
---|---|
chmod g+s file/dir | 给文件或者目录加上sgid |
chmod 2xxx file/dir | 给文件或者目录加上sgid |
3.suid##冒险位
只针对与2进制可执行文件,当文件上有suid时任何人执行这个文件中记的程序产生的进程都属于文件的所有人
设定方式 | 说明 |
---|---|
chmod u+s file/dir | 给文件或者目录加上suid |
chmod 4xxx file/dir | 给文件或者目录加上suid |
8).acl权限
1.作用:让特定用户对特定文件拥有特定权限
2.acl列表查看
getfacl file ##查看acl开启的文件的权限
3.acl列表的管理
setfacl -m u:username:rwx file ##设定username对file拥有的rwx权限
setfacl -m g:group:rwx file ##设定group组成员对file拥有的rwx权限
setfacl -x u:username file ##从acl列表中删除username
setfacl -b file ##关闭file上的acl列表
4.mask值
在权限列表中mask标示能生效的权力值,当用chmod减小开启acl的文件权限时mask值会发生改变。如果想恢复mask值 setfacl -m m:rwx file
5.acl的默认权限设定
acl默认权限只针对目录设定,acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件或目录是不会继承默认权限。
setfacl -m d:u:用户名:rwx 目录 ##打开
setfacl -k 目录 ##关闭
权限优先级:
userperm > acluser > aclgroup > groupperm > otherperm