Linux系统中的权限管理
文章目录
一.权限的查看以及读取:
1.权限查看:
命令 | 效果 |
---|---|
ls -l file | 查看文件权限 |
ls -ld dir | 查看目录权限 |
2.权限的读取:
[1]文件的属性被叫作文件的元数据(meta data)
[2]一种元数据用1个byte来记录内容
文件的权限信息:
[3]文件权限信息:
-|rw-r--r--|.| 1 |root |root |0 |Jan 22 16:56 |file
[1] [2] [3][4] [5] [6] [7] [8] [9]
目录权限信息:
d|rwxr-xr-x|.| 2 |root| root| 6 |Jan 22 16:56 |dir
[1] [2] [3][4] [5] [6] [7] [8] [9]
对于权限信息中每一位的解释:
[1] : 文件类型:1)- 普通文件
2)d 目录
3)l 软连接
4)b 快设备
5)c 字符设备
6)s socket套接字
7)p 管道 |
[2]:用户权限,分三位:ugo
如对于用户权限为rw-r–r--,u为rw-,g为r–,o为r–
[3]:系统的selinux开启
[4]:对于文件:文件内容被系统记录的次数(硬链接个数)
对于目录:目录中子目录个数
[5]:文件拥有着
[6]:文件拥有组
[7]:对于文件:文件内容的大小
对于目录:目录中子目录的个数
[8]:文件或目录内容被修改的时间
[9]:文件名称或目录名称
二.普通权限的类型以及作用:
1.用户对文件的身份:
身份 | 信息 |
---|---|
u | user 文件的拥有者,ls -l看到的第五列信息 |
g | group 文件拥有组,ls -l 看到的第六列信息 |
o | other 既不是拥有者也不是拥有组成员的其他用户的通称 |
2.权限位:
对于rw-r–r--将其拆分成三位:
rw-|r--|r--
u g o
3.用户身份匹配:
user > group > other,查看权限时对应用户身份的最高匹配
4.权限类型:
符号 | 功能 |
---|---|
- | 权限未开启 |
r | 可读 对于文件:可以读取文件内容 ;对于目录:可以ls列出目录中的文件 |
w | 可写 对于文件:可以更改文件内容 ;对于目录:可以在目录中新建或者删除文件 |
x | 可执行 对于文件:可以用文件名称调用文件内记录的程序 ;对于目录:可以进入目录中~ |
三.设定普通权限的方法:
用chmod命令可以修改指定文件的权限:
1.复制权限设定:
命令 | 效果 |
---|---|
chmod --reference=dir1 dir2 | 复制dir1目录的权限到dir2上 |
chmod -R --reference=dir1 dir2 | 复制dir1目录的权限到dir2及dir2中的子文件上 -R 代表递归操作 |
实验时使用命令进行监控:
watch -n 1 "ls -ld dir1;echo ========;ls -ld dir2;echo ========;ls -lR dir2"
单一复制目录:
递归复制权限:
2.字符方式设定:
命令 | 效果 |
---|---|
chmod (a;u;g;o) ( +;-;=)(r;w;x) 文件名或目录名 | 用字符方式设定文件或目录权限 |
chmod -R(a;u;g;o) ( +;-;=)(r;w;x) 目录名 | 用字符方式设定目录以及该目录中文件权限 |
实验时依旧使用上一个shell所设置的监控界面,已知出始dir1 dir2及其中的所有的文件权限ugo为r-x:
以下展示几种权限变化:
3.数字方式设定权限:
权限的布尔表示方式:用三位二进制数表示八种不同情况的权限,然后转化为十进制数,并用三位十进制数,表示三个不同身份的权限信息,用数字方式设定对比字符方式设定更具有便捷,准确,不容易出错的特点:
十进制数 | 对应二进制数 | 对应权限 |
---|---|---|
0 | 000 | - - - |
1 | 001 | - - x |
2 | 010 | - w - |
3 | 011 | - w x |
4 | 100 | r - - |
5 | 101 | r - x |
6 | 110 | r w - |
7 | 111 | r w x |
以下展示几种权限变化:
四.系统默认权限设定:
系统本身存在的意义:共享资源
从安全角度讲系统共享的资源越少,开放的权力越小系统安全性越高,既要保证系统安全,又要系统创造价值,于是把应该开放的权力默认开放,把不安全的权力默认保留。所以针对权利的保留,我们针对系统的umask进行修改:
1.umask的临时更改:
命令 | 功能 |
---|---|
umask | 看保留权利 |
umask 全限值 | 临时设定系统预留权力 |
文件默认权限 | =777-umask-111 |
目录默认权限 | =777-umask |
所以对于系统中的安全性来说,umask值越大,安全性就相对越高:
如图所示,设定umask值为055,则相应新建文件的权限应为777-055-111:即对应rw- -w- -w-,相应新建目录的权限应为777-055:即对应rwx -w- -w-
2.umask的永久更改:
命令 | 效果 |
---|---|
vim /etc/bashrc | shell系统配置文件 |
vim /etc/profile | 系统环境配置文件 |
source /etc/bashrc | source作用时使我们更改的内容立即被系统识别 |
source /etc/profile | source作用时使我们更改的内容立即被系统识别 |
[1]执行vim /etc/bashrc时shell系统配置进行设置:
[2]执行vim /etc/profile时对系统环境配置进行设置:
[4]回到shell中执行umask并查看效果:
五.文件用户组管理:
命令 | 效果 |
---|---|
chown username file | 更改文件拥有者 |
chgrp groupname file | 更改文件拥有组 |
chown username:groupname file | 同时更改文件的拥有者和拥有组 |
chown/chgrp -R user/group dir | 更改目录本身及目录中内容的拥有者或者拥有组 |
[1]chown直接更改文件拥有者:
添加-R可以递归地更改权限,即修改目录本身的拥有者以及目录中文件的拥有者:
[2]chgrp直接更改文件拥有组:
添加-R可以递归地更改权限,即修改目录本身的拥有组信息以及目录中文件的拥有组信息:
[3]chown username:groupname同时更改文件的拥有者和拥有组:
六.特殊权限:
1.stickyid 粘制位:
针对目录: 如果一个目录stickyid开启,那么这个目录中的文件只能被文件所有人删除
命令 | 效果 |
---|---|
chmod 1原始权限(数字) dir | 目录中的文件只能被文件所有人删除 |
chmod o+t dir | 目录中的文件只能被文件所有人删除 |
用数字修改:
用o+t修改:
更改之后登录其他用户无法删除该用户所建立的文件
2.sgid 强制位:
针对目录: 目录中新建的文件自动归属到目录的所属组中
命令 | 效果 |
---|---|
chmod 2源文件权限(数字) dir | 目录中新建的文件自动归属到目录的所属组中 |
chmod g+s dir | 目录中新建的文件自动归属到目录的所属组中 |
用数字修改:
用g+s修改:
修改目录后,再次向目录中新建文件,则新建的文件组信息均与目录组信息一致
3.suid 冒险位:
只针对二进制的可执行文件(c程序)
当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关
命令 | 效果 |
---|---|
chmod 4原属性 file | -------- |
chmod u+s file | -------- |
用ps ax -o user,group可以查看当前所有运行程序对应的使用者,使用者组信息,用grep过滤字符cat后结果显示在user对应的是root,实际上是westos在shell中执行的程序,但是显示执行者是root
sudo的实质是改变uid,即特殊权限4中冒险位,其他用户执行时发起为拥有者
七.acl列表:
1.acl列表功能以及标识:
acl列表全称是:Aiccess Control Lists访问权限列表,功能:在列表中可以设定特殊用户对特殊文件有特殊权限
acl列表未开启时的标识:
开启acl列表后在权限位出现了 + :
2.acl列表权限读取:
命令 | 效果 |
---|---|
getfacl westosfile | 显示内容分析 |
file: westosfile | 文件名称 |
owner: root | 文件拥有者 |
group: root | 文件拥有组 |
user::rw- | 文件拥有者权限 |
user:lee:rw- | 特殊指定用户权限 |
group::r– | 文件拥有组权限 |
group:westos:— | 特殊指定的用户组的权限 |
mask::rw- | 能够赋予特殊用户和特殊用户组的最大权限阀值 |
other::r– | 其他人的权限 |
注:当文件权限列表开启,不要用ls -l 的方式来读取文件的权限
3.acl列表的控制:
命令 | 效果 |
---|---|
setfacl -m u:***:rw westosfile | 改变特殊指定用户的权限为rw |
setfacl -m g:***:rw westosfile | 改变特殊指定组的权限为rw |
setfacl -m u::rwx westosfile | 改变文件拥有者的权限为rwx |
setfacl -m g::0 westosfile | 改变文件拥有组的权限0 |
setfacl -x u:zjl westosfile | 删除列表中的zjl |
setfacl -b westosfile | 关闭 |
[1]setfacl -m u::rw westosfile 改变特殊指定用户的权限为rw:
[2]setfacl -m g::rw westosfile改变特殊指定组的权限为rw:
[3]setfacl -m u::rwx westosfile改变文件拥有者的权限为rwx:
[4]setfacl -m g::0 westosfile改变文件拥有组的权限0:
[5]setfacl -x u:zjl westosfile删除列表中的zjl:
[6]setfacl -b westosfile关闭:
4.acl权限优先级:
拥有者 > 特殊指定用户 > 权限多的组 >权限少的组 > 其他
5.acl mask控制:
mask是能够赋予指定用户权限的最大阀值,当设定完毕文件的acl列表之后用chmod缩小了文件拥有组的权力mask会发生变化:
用setfacl -m m:权限 file修改文件的mask:
用chmod修改之后将file的mask缩小:
6.acl列表的默认权限:
命令 | 效果 |
---|---|
setfacl -m u:zjl:rwx /mnt/westosdir | 只对于/mnt/westosdir目录本身生效 |
setfacl -Rm u:zjl:rwx /mnt/westosdir | 对于/mnt/westosdir目录和目录中已经存在的内容生效 |
setfacl -m d:u:lee:rwx /mnt/westosdir/ | 针对与/mnt/westosdir目录中新建文件生效 |
[1]setfacl -m/-Rm u::rwx file仅会对于已存在的文件生效,而新建文件是不会被设定的:
[2]setfacl -m d:u::rwx file会对新建的文件生效:
注:若设定完default之后想将更改取消可以用命令:
setfacl -k d:u:用户 目录
八.attr权限设置:(可以限制所有用户)
命令 | 效果 |
---|---|
chattr 参数 file/dir | 设定attr权限 |
lsattr file | 查看file的attr权限 |
lsattr -d dir | 查看dir的attr权限 |
chattr命令对应的参数以及效果有:
参数 | 效果 |
---|---|
i | 不能作任何的更改 |
a | 能添加不能删除 |
针对attr参数搭配a的进一步探究:
执行echo命令也会被拒绝
同样在vim程序中无法在编辑之后退出保存