基本权限ugo
权限对象
属主:u
属组:g
其他人:o
全部:a(u+g+o)
权限类型
读:r=4
写:w=2
执行:x=1
设置权限
1.更改权限
使用符号更改:
chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x) 文件/目录
例1:chmod u=rwx file1.txt(给file1属主读写执行的权利)
例2:chmod g+w file1.txt(给file1属组加个写的权限,注是在原有权限基础上加的)
例3:chmod o-w file1.txt(给file1其他人的写权限删除,注意只是删除了写权限,其他权限不变)
注意:
1.若u之前有rwx权限,若u=r,则wx权限剥夺了,若u= ,则说明u什么权限都没了
2.给用户授予权限时一定不要把用户文件放root中,因为用户无法进入root
chmod加-R参数,是对目录进行授权,目录下的所有文件也都授权了
使用数字更改:
chmod 数字 文件/目录
例:chmod 766 file1.txt(对于file1这个文件,u有rwx权,g和o有rw权)
2.更改属主、属组
设置文件属于谁:
chown 用户名.组名 文件
例1: chown alice.hr file1 //改文件file1的属主为alice、属组为hr
例2:chown alice file2 //只改文件file2的属主为alice
例3:chown .hr file3 //只改文件file3的属组为hr,注意前面加点
设置文件属于哪个组:
chgrp 组名 文件
基本权限acl
ugo与acl区别
ACL文件权限管理: 设置不同用户,不同的基本权限(r、w、x)。对象数量不同。
UGO设置基本权限: 只能一个用户,一个组和其他人
ACL是UGO的补充
语法
命令 设置 用户或组:用户名或组名:权限 文件对象
例:setfacl -m u:alice:rwx file.txt(将file文件的属主改为alice且具有读写执行权限)
命令
setfacl设置:
(1)修改
setfacl -m
例:setfacl -m g:hr:rw file.txt(将file文件的属组改为hr且具有读写权限)
(2)删除
setfacl -x //删除某个组的acl权限
setfacl -b //删除所有acl权限
例1:setfacl -x g:hr /home/test.txt //删除组hr的acl权限
注意:
-x是删除这个组或用户的全部acl权限,若只想删除某个权限,例只想删除r权限则可用setfacl重新设置即可,不用-x删除整个acl权限了
例2:setfacl -b /home/test.txt //删除所有acl权限,是新加的用户和组的权限不删除文件本身的权限
getfacl读取:
getfacl 文件
getfacl与ll的区别就是,getfacl查看的比较全,会显示每个用户、组的权限等,ll查看的会有叠加
3、特殊权限
1、特殊位 suid
#高级权限的类型:suid,(sgid)针对文件/程序时,具备临时提升权限。
#问题1: 下面的操作,为什么会失败!
[root@localhost ~]# ll /root/file1.txt
-rw-r--r-- 1 root root 4 7月 27 14:14 /root/file1.txt
[root@localhost ~]#su - alice
[alice@localhost ~]$ cat /root/file1.txt
cat: /root/file1.txt: 权限不够
#分析:root运行是超管的权限,普通用户运行时是普通用户的权限。
root /usr/bin/cat (root) /root/file1.txt OK
alice /usr/bin/cat (alice) /root/file1.txt
#示例1
#设置suid,使普通用户通过suid临时提权,查看超管root用户的文件
#1.为cat程序添加上suid权限。
[root@qianfeng ~]# ll /usr/bin/cat
#自习观察输出信息1
[root@qianfeng ~]# chmod u+s /usr/bin/cat
[root@qianfeng ~]# ll /usr/bin/cat
#自习观察输出信息2(这两次有什么不同呢?)
#2.使用普通用户运行cat。暂时获得root权限
[alice@qianfeng ~]$ cat /root/file1.txt
#请在试验后,将cat的suid权限除去。
[root@qianfeng ~]# chmod u-s /usr/bin/cat
[root@qianfeng ~]# ll /usr/bin/cat
#自习观察输出信息3(请确认是否删除suid特殊权限)
2、文件属性chattr
用途:常用于锁定某个文件,拒绝修改。
分类:
案例
#1 先创建新文件进行对比。查看默认权限。
[root@qianfeng ~]# touch file100
[root@qianfeng ~]# lsattr file100
-------------- file100
#2 加上不能删除的属性。
[root@qianfeng ~]# chattr +i file100 //不能更改,重命名,删除
#3 查看不同属性
[root@qianfeng ~]# lsattr file100
----i--------e- file100
#4 尝试删除
[root@qianfeng ~]# rm -rf file100
rm: cannot remove `file100': Operation not permitted
#5 将属性还原。
[root@qianfeng ~]# chattr -i file100
注意
设置文件属性(特别权限),针对所有用户,root是否会收到影响呢?
3、进程掩码umask
进程掩码 umask
概述:新建文件、目录的默认权限会受到umask的影响,umask表示要减掉的权限
#示例1: 在shell进程中创建文件,先查看当前用户的umask权限
[root@qianfeng ~]# umask
0022
[root@qianfeng ~]# touch file800
[root@qianfeng ~]# mkdir dir800
[root@qianfeng ~]# ll -d dir800 file800
drwxr-xr-x. 2 root root 4096 3月 11 19:40 dir800
-rw-r--r--. 1 root root 0 3月 11 19:40 file800
#示例2:修改shell umask值(临时)
[root@qianfeng ~]# umask 000
[root@qianfeng ~]# mkdir dir900
[root@qianfeng ~]# touch file900
[root@qianfeng ~]# ll -d dir900 file900
drwxrwxrwx. 2 root root 4096 3月 11 19:44 dir900
-rw-rw-rw-. 1 root root 0 3月 11 19:44 file900