六、linux权限管理
6.1 linux基本权限
权限的作用
权限管理命令
6.1.1 linux权限的作用
与windows系统不同,linux为每个文件都添加了许多属性,最大的作用就是维护数据安全
6.1.2linux权限命令
- linux文件属主与属组
对每一个文件来说都有9个权限位左三位对应的是own属主的权限,紧接着左四到六位对应的是group属组的权限,右三位代表着other其他的权限还有最左边的字符位代表的是文件类型
其中:
- r代表可以对这个文件进行查看或者对列表进行列出命令的权限,用数字代表权限的话,r为4
- w代表可以对这个文件进行编辑或者对列表里的文件进行添加或单春命令的权限,w为2
- x代表可以将这个文件运行为进程或者可以切换到此目录下,并且可以使用列表命令查看文件的详细信息
- 用数字代表权限,r为4,w为2,r为1,最大为7
在linux系统中,用户时按组进行分类的,每个组内的用户都拥有这个组的权限,一个用户可以属于一个或多个组,例如在图中,nebula是一个普通用户,他既不是file文件的属主也不是file文件的的属组,但是他却能修改file文件。是因为nebula用户在E组中
在linux中更改文件的所属用户和权限使用以下命令
chown:修改所属用户与组
chmod:修改用户权限
- 更改文件属性
chgrp:更改文件属组
使用格式: chgrp [-R] 属组名 文件名
参数:-R 递归修改文件属组
chown: 更改文件属主,也可以更改文件属组
使用格式:chown [-R] 属主 文件名
chown [-R] 属主:属组 文件名
chmod:更改文件9位权限
通过chmod我们可以更改owner、group、others他们的权限
- 可以通过字符方式修改 u+、u-、g+、g-、o+、o-、a+、a-、=
- 数值方式修改
6.2 linux特殊权限
6.2.1 linux SUID(SETUID) 文件特殊权限
s权限的作用是当赋予文件s权限后,用户执行该文件时会以文件所有者的权限去执行此文件,所以s命令只能用于可执行文件
使用格式 chmod u+s file (只在对二进制可执行程序时生效)
6.2.2 linux SGID (SETGID)文件特殊权限
与SUID权限类似,SGID 会在用户执行文件时赋予文件所属组的权限,特别的是 SGID 可以对目录生效,在用于目录时,当用户在目录下创建文件后,文件的所属组将不再是用户的所属组而是目录的所属组
使用格式 chmod g+s file
在执行SUID和SGID时会实现用户身份的转换,这种转换只发生在执行的过程中,当命令执行完毕后,身份转换也随之消失
6.2.3 linux SBIT 文件特殊权限
SBIT 的作用是防删除,SBIT 权限仅对目录生效,当用户为目录设定上SBIT权限则只有用户自己和root 才有权利修改或者删除在该目录下创建的文件
使用格式 chmod o+t dir
6.2.4 linux ACL 访问控制权限
我们使用getfacl查看ACL权限信息,使用格式为 getfacl file
使用setfacl为用户或群组设定指定文件的访问权限,使用格式为 setfacl [-参数]file
- -m 设定ACL权限
setfacl -m u:user:rw file 表示用户user对file有rw权限
setfacl -m g:group:rw file1 表示组group对file有rw权限
- -x 删除指定用户或群组的ACL权限
setfacl -x u:user /file 表示取消用户user对file的ACL权限
- -b 删除所有的ACL权限
setfacl -b /file 表示删除有关file的所有ACL权限
- 设定默认ACL权限
setfacl -m d:u:user:rw dir 只对目录生效,表示user用户在dir目录中新建立的文件拥有rw默认权限
- 递归设定ACL权限
setfacl -m u:user:rw -R /dir 指user对/dir里的所有文件和目录都有rw权限
- 删除默认ACL权限
setfacl -k 、dir
6.2.5 linux umask
linux系统存在默认初始权限
我们可以使用umask 查看默认权限的值
文件和目录的真正初始权限=文件或目录的最大默认权限-umask权限
在linux里文件和目录的最大默认权限是不一样的
- 对于文件来说最大默认权限是666,既rw-rw-rw-。
- 对于目录来说最大默认权限是777,既rwxrwxrwx。
我们可以通过umask来临时修改默认权限 ,并查看新建的文件所拥有的权限
此时新建的文件file4的权限为644
当系统关机再次重新启动时,赋予的umask码值就会失效,如果想要让修改永久保存需要修改、etc/profile文件
6.2.5 linux chattr 命令
可以通过chattr命令为文件或目录设定一些隐藏属性
使用格式为 chattr [+-=][属性选项] 文件名或目录名
选项:
- i 对文件设置的作用为不允许对文件进行删除、改名、添加和修改,对目录设置的作用为不能在目录下新建或删除文件
- a 对文件设置的作用为只能在文件中增加数据,但是不能删除和修改,对目录设置的作用为只允许在目录中添加和修改文件,但是不能删除
- u 作用为在删除文件或目录时,删除的内容会被保存,以便于后期恢复
- s 与u相反,删除文件或目录时,会彻底删除,不可恢复
6.2.5 linux lsattr 命令
使用chattr后可以使用lsattr查看隐藏的属性,使用格式为 lsattr [-选项] 文件或目录
选项:
- -a 显示所有文件和目录
- -d 只显示出目录本身的隐藏属性,不显示目录里面文件或目录的隐藏属性
- -R 显示目录及目录里面文件和目录的隐藏属性