权限查看与读取
- 权限查看
ls -l file #查看文件权限
ls -ld dir #查看目录权限
文件的属性被叫做文件的元数据(meta data)
一种元数据用1个byte来记录内容"
- 文件权限信息
补
普通权限的类型及作用
补
设定普通权限的方法
chmod 设定文件权限
- 复制权限
chmod --reference=/tmp /mnt/dir #复制/tmp目录的权限到/mnt/dir
chmod -R --reference=/tmp /mnt/dir #复制/tmp目录的权限到/mnt/dir及目录中的子文件
- 字符方式设定权限
chmod <a|u|g|o><+|-|=> file
示例:
chmod u-rw /mnt/dir #目录的拥有者不能对该目录进行读写操作
chmod a+x /mnt/file #所有人可以调用该文件中的程序
chmod u-rw,g+x,o+wx /mnt/file
#文件的拥有者不能对该文件进行读写操作,组拥有者可以执行该文件,其他人可以写执行该文件
- 数字方式设定权限
权限波尔值表示方式
三位二进制可以表示的最范围是8进制数
8位二进制 | 权限 | 十进制 |
---|---|---|
111 | rwx | 7 |
110 | rw- | 6 |
101 | r-x | 5 |
100 | r– | 4 |
011 | -wx | 3 |
010 | -w- | 2 |
001 | –x | 1 |
000 | — | 0 |
chmod 770 /mnt/dir
#目录的拥有者和组拥有者可对该目录进行读写执行操作,其他人不能对它读写执行
系统默认权限设定
系统本身存在的意义是为了共享资源
安全角度:系统共享的资源越少,开放的权限越小,系统安全性越高
既要保证系统的安全,又要系统创造价值,可以将应该开放的权限默认开放
不安全的权限默认保留
- 保留权限umask
umask越大,系统安全性越高
文件默认权限 = 777 - umask-111
目录默认权限 = 777 - umask
umask
umask 077 #临时设定系统预留权限
- 永久更改默认权限
step1 :编辑shell系统配置文件
step2 :编辑系统环境配置文件
step3 :source “刷新”,使更改的内容立即被系统识别
source /etc/bashrc
source /etc/profile
文件用户和用户组的管理
chown username file #更改文件拥有者
chgrp groupname file #更改文件拥有组
chown username:groupname file #同时更改文件的拥有者和拥有组
chown -R username dir #更改目录本身和目录中内容的拥有者
chgrp -R groupname dir #更改目录本身和目录中内容的拥有组
特殊权限
- stickyid 粘贴位
针对目录而言,如果一个目录的stickyid开启,那么这个目录中的文件,只能被文件所有人删除
chmod 1原始权限 dir #开启pub目录的t权限
chmod o+t dir #不属于自己的文件不能删除
(不开启stickyid时,我创建的文件可以被其他用户删除)
westos在/pub下创建新的文件test
登录另一个用户yao,创建自己的文件yaotest
自己的文件可以任意删除
当前处于用户yao,yao可以任意地删除westos的文件test
(开启stickyid后,我创建的文件只能被我删除,其余人无法删除)
开启stickyid
这时,westos创建的文件,用户yao无法删除
- sgid 强制位
针对目录而言,目录中新建的文件自动归属到目录的所属组中
只针对二进制的可执行文件(C程序)
当运行二进制可执行文件时,都是用文件拥有组身份运行,和执行用户无关
chmod 2原文件权限 dir
chmod g+s dir
未开启强制位时,哪个组创建的文件,文件就属于那个组
开启强制位后,创建的文件的拥有组就是它所在目录的用户组
- suid 冒险位
只针对二进制的可执行文件(c程序)
当运行二进制可执行文件时,都是用文件拥有者身份运行,和执行用户无关
chmod 4原文件权限 file
chmod u+s file
acl权限列表
Aiccess Control Lists
访问控制列表:在列表中设定特殊用户对特殊文件有特殊权限
- acl 列表开启标识
- acl 列表权限读取
acl内容 | 注释 |
---|---|
file: file | 文件名称 |
owner:root | 文件拥有者 |
group:root | 文件拥有组 |
user::rw- | 文件拥有者权限 |
user:yao:rw- | 特殊指定用户权限 |
group::r– | 文件拥有组权限 |
group::yao:— | 特殊指定用户组权限 |
maks::rw- | 能够赋予特殊用户和特殊用户组的最大权限阈值 |
other::r– | 其他人的权限 |
- acl 列表的控制
setfacl -m u:yao:rw file1 #设定
setfacl -m g:yao:rw file1
setfacl -m u::rwx file1
setfacl -m g::0 file1
setfacl -x u:yao file1 #删除列表中的特殊用户
setfacl -b westosfile #关闭acl列表功能
- acl 权限优先级
拥有者 > 特殊指定用户 > 权限多的组 > 权限少的组 > 其他
- acl mask 控制
mask是能够赋予指定用户权限的最大阈值
- acl 列表的默认权限
setfacl -m u:yao:rwx /mnt/dir #只对于/mnt/dir目录本身生效
setfacl -Rm u:yao:rwx /mnt/dir #对于/mnt/dir目录和目录中已经存在的内容生效
attr权限
attr 权限限制所有用户
i 不能做任何的更改
a 能添加不能删除
lsattr dir #查看attr权限
chattr +i|+a|-i|-a dir|file #设定attr权限