-
为什么需要权限管理
计算机资源有限,我们需要合理的分配计算机资源。
Linux是一个多用户系统,对于每一个用户来说,个人隐私的保护是十分重要的。由于Linux的一切皆文件的基本思想,对于权限的管理更多的则体现在管理文件权限上。为了方便的指派权限,在Linux中定义了文件属主,文件属组,其他人这三类人的权限。
对于计算机来说,这三类都是一个标识符。 -
文件的权限
通过 ls 命令我们可以看到文件的具体权限信息。
drwxrwxr-x 2 wa wa 2020 Sep 27 15:29 .
drwxrwxr-x 5 wa wa 2020 Sep 227 16:38 …
-rw-rw-r-- 1 wa wa 0 Jun 5 02:29 file
将文件的具体权限可以分成八个内容来看
d | rwxrwxr-x| 2 | wa | wa| 2020| Sep2715:29 | file
[1] [2] [3] [4] [5] [6] [7] [8]
[1]文件的类型
- ##空文本
d ##目录
l ##软连接
s ##socket套接字
b ##block块设备
c ##字符设备
[2]文件权限信息
rwx |rwx |r-x
文件权限信息一共有9位,每3位一组,分别表示属主,属组,其他人的权限信息
权限:r w x
对于文件:
r:可读,可以使用cat等命令查看文件内容
w:可写,可以进行编辑修改,或删除操作
x:可执行,可以在命令提示符下当做命令提交给内核运行
对于目录:
r:可以对此目录执行ls命令,列出内部所有文件
w:可以在此目录下创建文件
x:可以使用cd命令切换进此目录,也可以使用ls -l命令查看内部文件的详细信息
对于目录来说,一般会有执行权限,而对于文件来说,一般默认没有执行权限。
[3]
对文件:文件硬链接个数
对目录:目录中子目录的个数(不是文件)
[4]
文件所属人
[5]
文件所属组
[6]
对文件:文件的大小
对目录:目录中子文件元数据的大小
[7]
文件内容被修改时间
[8]
文件名称
修改文件的所有人和所有组
chown username file|dir 修改用户
chown user.group file|dir 修改组
chown -R user.group dir
chgrp group file|dir
charg -R group dir
示例:
修改文件的权限的方式
chmod <u|g|o><+|-|=><r|w|x> file|dir
有一种比较方便的修改方法,直接加二进制数字。
|r |w |x
4 2 1
chomd 542 file ##意思就是 u(r-x) g(r--) o(-x-)
- umask 系统建立时默认保留的权力
当你创建一个新的文件或目录时,该文件或目录有默认权限。umask的分数指的是该默认值需要减掉的权限,在默认权限的属性上,目录与文件是不一样的,文件最大的权限是666,目录最大权限是777。
-
临时修改:umask值
umask 077 ##临时设定系统预留权限为077
-
永久修改:umask值
vim /etc/profile ##永久修改每个用户创建文件的umask值(系统配置文件)
vim /etc/bashrc ##永久修改bash里创建文件的umask值(shell配置文件)
source /etc/profile ##让更改立即生效
source /etc/bashrc
注意:想要永久性的修改umask值,一定要重新读取俩个配置文件后,才能生效。
- 特殊权限
- sticky粘制位
作用:
只针对目录生效,当一个目录上有sticky权限时,所有用户在该目录下均可创建文件,但只有文件所有人删除该目录下的文件。
设定方式:
chmod o+t dir
chmod 1xxx dir(1777)
- sgid 强制位
作用:
对文件:只针对二进制可执行文件,当文件上有sgid时,任何人执行此文件产生的进程都属于文件的组
对目录:当目录上有sgid时,任何人在此目录中建立的文件都属于目录的所有组
设定方式:
chmod g+s file|dir
chmod 2xxx file|dir
- suid 冒险位
作用:
只针对二进制可执行的文件,当文件上有suid时任何人执行这个文件中的程序产生的进程都属于文件的所有人。
设定方式:
chmod u+s file
chmod 4xxx file
- 文件访问控制列表 ACL
- 作用:
让特定的用户对特定的文件拥有特定的权限 - acl列表查看
-rw-rwxr–+ 1 root root 0 Oct 1 11:11 file - acl开启
getfacl file ##查看acl开启的文件的权限
file:file ##文件名称
owner: root ##文件所有者
group:root ##文件所有组
user ::rw- ##文件所有人的权限
user:tom:rwx ##指定用户的权限
group::r-- ##文件所有组的权限
mask::rwx ##能赋予用户的最大权力阈值
other::r-- ##其他人的权限
-
acl列表的管理
setfacl -m u:username:rwx file ##设定username对file拥有rwx权限
setfavl -m g:group:rwx file ##设定的group组成员对file拥有的rwx权限 -
mask值
在权限列表中mask表示能生效的权力值,当用chmod减小开启acl的文件时,mask值会发生变化
chmod g-w westos ##看到减掉的mask值
恢复mask值:
setfacl -m m:rwx westos (westos是组)
-
acl默认权限只针对目录设定
setfacl -m d:u:student:rwx/mnt/westos
注意:
acl权限只针对设定完成之后新建立的文件或目录生效,而已经存在的文件是不会继承默认权限的