用户的权限
基本权限UGO
权限对象
权限对象:
属主: u
属组: g
其他人: o
所有人:a(u+g+o)
权限类型:
读:r=4
写:w=2
执行: x=1
设置权限
更改权限
使用符号
语法:使用符号:u用户 g组 o其他 r读 w写 x执行
语法: chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x) 文件/目录
使用数字
4读 2写 1执行
[root@localhost ~]# chmod 644 file1
[root@localhost ~]# ll file1
-rw-r--r-- 1 alice it 17 10-25 16:45 file1c
更改属主、属组
chown命令
chown: 设置一个文件属于谁,属主
语法: chown 用户名.组名 文件
[root@localhost ~]# chown alice.hr file1 //改属主、属组
[root@localhost ~]# chown alice file1 //只改属主
[root@localhost ~]# chown .hr file1 //只改属组
chgrp命令
chgrp: 设置一个文件属于哪个组,属组
语法: chgrp 组名 文件 -R是递归的意思
[root@localhost ~]# chgrp it file1 //改文件属组
[root@localhost ~]# chgrp -R it dir1 //改文件属组
案例:
针对hr部门的访问目录设置权限,要求如下:
- root用户和hr组的员工可以读、写、执行
- 其他用户没有任何权限
操作思路:
1创建组
2创建用户
3修改属主和属组
4设置权限
[root@localhost ~]# groupadd hr
[root@localhost ~]# useradd hr01 -G hr
[root@localhost ~]# useradd hr02 -G hr
[root@localhost ~]# mkdir /home/hr
[root@localhost ~]# chgrp hr /home/hr
[root@localhost ~]# chmod 770 /home/hr
[root@localhost ~]# ll -d /home/hr/
drwxrwx---. 2 root hr 4096 2月 28 14:26 /home/hr/
基本权限 ACL
ACL文件权限管理: 设置不同用户,不同的基本权限(r、w、x)。对象数量不同。
UGO设置基本权限: 只能一个用户,一个组和其他人
语法
setfacl -m u:alice:rw /home/test.txt
命令 设置 用户或组:用户名:权限 文件对象
用法
设置
准备文件
[root@lll ~]# touch /home/test.txt
[root@lll ~]# ll /home/test.txt
-rw-r--r-- 1 root root 0 10-26 13:59 /home/test.txt
设置ACL
查看文件有哪些ACL权限。
[root@lll ~]# getfacl /home/test.txt
设置用户alice,jack权限
前提:创建alice 和jack用户。过程略
[root@lll ~]# setfacl -m u:alice:rw /home/test.txt
[root@lll ~]# setfacl -m u:jack:- /home/test.txt
请思考命令中的o是什么作用
[root@lll ~]# setfacl -m o::rw /home/test.txt
查看/删除:
如何删除一条acl,如何删除所有acl呢?
[root@lll ~]# getfacl /home/test.txt
[root@lll ~]# setfacl -m g:hr:r /home/test.txt
[root@lll ~]# setfacl -x g:hr /home/test.txt //删除组hr的acl权限
[root@lll ~]# setfacl -b /home/test.txt //删除所有acl权限
特殊位 suid
示例1
设置suid,使普通用户通过suid临时提权,查看超管root用户的文件
1.为cat程序添加上suid权限。
[root@lll ~]# ll /usr/bin/cat
自习观察输出信息1
[root@lll ~]# chmod u+s /usr/bin/cat
[root@lll ~]# ll /usr/bin/cat
自习观察输出信息2(这两次有什么不同呢?)
2.使用普通用户运行cat。暂时获得root权限
[alice@lll ~]$ cat /root/file1.txt
请在试验后,将cat的suid权限除去。
[root@lll ~]# chmod u-s /usr/bin/cat
[root@lll ~]# ll /usr/bin/cat
自习观察输出信息3(请确认是否删除suid特殊权限)
文件属性chattr
chattr +i
[root@lll ~]# chattr +i file100 //不能更改,重命名,删除
chattr-i 去除属性
进程掩码 umask
示例
修改shell umask值(临时)
[root@lll ~]# umask 000
[root@lll ~]# mkdir dir900
[root@lll ~]# touch file900
[root@lll ~]# ll -d dir900 file900
drwxrwxrwx. 2 root root 4096 2月 28 14:22 dir900
-rw-rw-rw-. 1 root root 0 2月 28 14:22 file900