命令之:权限管理

⼀ ⽂件权限管理之基本权限

1.1 权限介绍

权限类型

r --> 可读
w --> 可写
x --> 可执⾏
s --> 临时提权

# 在文件中的形式:
-   rw-         r--         r--          abc.txt
    所属用户权限  所属组权限    其他用户权限
例:
[root@aliyun ~]# ls -l a.txt
-rw-r--r-- 1 root root 1146 Jul 16 18:42 a.txt
# 解说:
⽂件类型:
 -:⽂本⽂档
 d:⽬录
 b:设备block
 c:字符设备
 s:套接字⽂件
 l:软链接
权限
硬链接个数
属主
属组
⽂件所占⽤的空间(以字节为单位)
⽂件(⽬录)最近访问(修改)时间
⽂件名

权限位

# 文件权限不同所对应的字母和数字也不用,数字是八进制
r --> 可读---> 4
w --> 可写---> 2 
x --> 可执⾏ --> 1
s --> 临时提权 --> 4  # 在算权限位时将4放在最前面

权限归属

属主   # u
属组   # g
其他⼈ # o

1.2 设置权限

修改文件权限chmod

格式:
chmod 权限位 文件名称
# chmod 664 文件名称

修改属主、属组 chown

chown 属主.属组 文件名称 # 改属主、属组
chown 属主 文件名称     # 只改属主
chown 属组 文件名称     # 只改属组
chown -R /test        # 递归修改

修改u、g、o对应的权限

# 加减法
chmod u+x,g-w,o+r a.txt
# 赋值
chmod a=rwx a.txt
chmod a=- a.txt
chmod ug=rw,o=r file1
# 数字
chmod 644 file1
chmod -R 777 xxx/
# 注意:把某⼀个⾮属主⽤户添加到⽂件的属组⾥,他就拥有了该组的权限,⽽不再是其他⼈

二:文件管理权限管理之特殊权限

2.1 suid临时提权

#上述的基本权限中我们介绍过,文件权限的种类有r,w,x,s前3个都是用户对文件访问的权限位,即:对文件有可读,可写,可执行这3个权限的前提就是该文件夹(目录)必须有可执行权限;或者访问用户是该文件的属主或属组还有root用户;在linux中还有个suid特殊权限,即: 设置了suid的程序文件,在用户执行该程序时,用户的权限是该程序文件属主的权限。例如程序文件的属主是root,那么执行该程序的用户就将暂时获得root账户的权限。sgid与suid类似,只是执行程序时获得的是文件属组的权限。 
s权限特殊之处:
  1、SUID 权限仅对⼆进制可执⾏⽂件有效
  2、如果执⾏者对于该⼆进制可执⾏⽂件具有 x 的权限,执⾏者将具有该⽂件的所有者的权限
  3、本权限仅在执⾏该⼆进制可执⾏⽂件的过程中有效
命令格式:
chmod 4755 /bin/passwd # 算权限位时将4放在最前面
[root@local-work ~]# ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27856 Apr  1  2020 /bin/passwd
# 可以看到属主的位置有个s权限

三:文件权限位的umask计算概念

# 新建文件夹,目录的默认权限是由umask决定的,文件的默认权限是666,目录权限默认为755

文件权限计算方法是:偶数位直接相减,奇数位相减后加1

文件的起始权限值umask值操作计算收文件的权限
666022(每位如果都是偶数)直接相减即可644
666033 (每位如果有奇数或 偶数)相减(奇数位相减后在其原奇数 位加1)644
666325(每位如果有奇数或偶数)相减(奇数位相减后在其原奇数位加1)442

⽬录权限计算⽅法:直接相减即可

文件的起始权限值umask值操作计算后文件权限
777022相减755
777033相减744
777325相减452
# 总结:umask设置的越⼩,权限越⼤,慎⽤ 
临时设置umask
[root@localhost ~]# umask 000 //设置umask权限
永久设置umask
[root@localhost tmp]# vim /etc/profile # 或者/etc/bashrc内容⼀样
......
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 umask 002 //表示uid⼤于等于199的默认umask值,表示普通⽤户
else
 umask 022 //表示uid⼩于199的默认umask值,表示root
fi

四:文件权限管理之高级管理

4.1 acl 特殊权限使用

# 为了解决某种特殊情况环境下,用户的权限需求。
# ⽂件⼀旦设置了acl权限后,查看信息会出现⼀个加号,以后包括UGO在内的权限都可以⽤setfacl来设置
修改属主的权限
 setfacl -m u::权限 a.txt
 
 修改属组的权限
 setfacl -m g::权限 a.txt
 
 修改其他⼈的权限
 setfacl -m o::权限 a.txt
 
 修改具体某⼀个⽤户的权限
 setfacl -m u:⽤户名:权限 a.txt
 
 修改具体某⼀个组的权限
 setfacl -m g:组名:权限 a.txt # 组必须存在
 
 # 也可以给⽬录设置,都⼀样

查看与删除

# 查看
getfacl /opt/a.txt
# 删除
setfacl -x g:group1 /opt/a.txt # 删除组hr的权限
setfacl -b /opt/a.txt #删除所有acl权限

清空acl权限

# setfacl -b 文件名   

4.2 acl 权限归属

  • u : 指定用户
  • g : 指定组
  • o : 修改其他用户权限
  • m : 指定mask权限

注:默认情况下,ACL权限跟普通权限保持一致。

4.3 acl 的流程

创建文件

chmod o+x /root
chmod o+x /root/xiaochen
cd xiaochen

[root@localhost xiaochen]# touch abc.txt
[root@localhost xiaochen]# chmod 000 abc.txt 
[root@localhost xiaochen]# ll
total 0
---------- 1 root root 0 Mar 16 11:39 abc.txt

编写文件

[root@localhost xiaochen]# echo 111 > abc.txt 
[root@localhost xiaochen]# cat abc.txt 
111

设置ACL权限

[root@localhost xiaochen]# useradd xiaozhang
[root@localhost xiaochen]# setfacl -m u:xiaozhang:r abc.txt 
[root@localhost xiaochen]# getfacl abc.txt 
# file: abc.txt
# owner: root
# group: root
user::---
user:xiaozhang:r--
group::---
mask::r--
other::---

# 注:
setfacl -m u:用户名称:权限(rwx) 文件名称

查看文件

[root@localhost ~]# su - xiaozhang
[xiaozhang@localhost ~]$ cat /root/xiaochen/abc.txt
111

五:ACL继承

默认情况下,ACL是不会继承上层目录的权限的。只有目录设置可继承子集文件才可以继承ACL权限。

[root@localhost linux12]# setfacl -m d:u:xiaochen:w ../linux12
[root@localhost linux12]# touch bcd.txt
[root@localhost linux12]# ls -l
total 0
-rw-r--r--  1 root root 0 Mar 16 15:40 abc.txt
-rw-rw-r--+ 1 root root 0 Mar 16 15:43 bcd.txt
[root@localhost linux12]# getfacl bcd.txt 
# file: bcd.txt
# owner: root
# group: root
user::rw-
user:xiaochen:-w-
group::r-x			#effective:r--
mask::rw-
other::r--

六:SUDO 提权

用于普通用提升权限的。

  • 相关的文件:/etc/sudoers

  • 检查/etc/sudoers是否修改正确:visudo -c

  • sudoers文件格式

    tom       ALL=           (ALL)          ALL
    用户名称   所有机器可登陆    所有IP或主机名   所有的指令
    
  • 指令编写格式

    # 必须写全路径:which查看命令全路径
    
    ## 只支持vim命令提权
    xianchen ALL=(ALL)  /usr/bin/vim
    
    ## 支持所有的命令提权
    tom ALL=(ALL)  ALL
    
    ## 不支持某个命令提权
    tom ALL=(ALL) ALL, !/usr/bin/vim
    
    ## 不支持某个命令的部分功能
    xiaochen ALL=(ALL)   ALL, !/usr/bin/vim /root/123.txt
    

七:su切换用户

  • su - xxx 和 su xxx之间区别

    1、su - xxx :相当于切换一个窗口,su xxx 仅仅切换了用户
    
    2、su - xxx : 切换用户执行的系统文件要多于 su xxx
    
    3、su - xxx 是登录
       su  xxx  切换用户
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值