linux mask 特殊权限位,Linux——特殊权限

Linux——特殊权限

一、ACL权限

1. ACL权限作用

2. 开启ACL权限

3. ACL基本命令

4. 最大有效权限mask

5. 删除ACL权限

二、sudo授权

1. sudo作用

2. 设定

三、文件特殊权限SetUID、SetGID、Sticky BIT

1. SetUID

2. SetGID

3. Sticky BIT

四、文件系统属性chattr权限

1. 命令格式

2. 赋予属性

2.查看属性lsattr

3. 举例

一、ACL权限

1. ACL权限作用

ACL是用于解决用户对文件身份不足的问题的

ac331e4172b74ef2067426d0c44246a5.png

2. 开启ACL权限

[root@localhost ~]# vi /etc/fstab

1

2 #

3 # /etc/fstab

4 # Created by anaconda on Thu Aug 31 09:47:05 2017

5 #

6 # Accessible filesystems, by reference, are maintained under '/dev/disk'

7 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

8 #

9 UUID=18f41a8a-5b18-4a32-a90a-f7c3036b8dde / xfs def

aults,usrquota 0 0

10 UUID=89a96566-dacf-47c4-b480-cd53fe9c0d9b /boot xfs def

aults 0 0

11 UUID=ffd86ce1-6b5c-4882-b541-0b537d12cf1d /home xfs def

aults,acl 0 0

12 UUID=7c2476cd-7322-4ae3-a497-efedc45efb20 swap swap def

aults 0 0

~

"/etc/fstab" 12L, 608C 已写入

3. ACL基本命令

查询

[root@localhost ~]# getfacl /home

getfacl: Removing leading '/' from absolute path names

# file: home

# owner: root

# group: root

user::rwx

user:user1:rwx

group::r-x

mask::rwx

other::r-x

设定

[root@localhost ~]# setfacl -m u:user1:rwx /home

setfacl [选项] 文件名 设定ACL权限

-m设定ACL权限

-b删除ACL权限

-x:用户 删除单个用户的ACL权限

setfacl -m u:user1:rx /test给tset目录赋予user1读写的ACL权限

setfacl -m u:user1:rx -R /test赋予递归ACL权限,只能赋予目录

-R 递归

setfacl -m d:u:user1:rx -R /testACL默认权限。默认权限只能赋予目录

注意:如果给目录赋予ACL权限,以下两条命令都要输入

setfacl -m u:user1:rx -R /test递归:只对存在的文件生效

setfacl -m d:u:user1:rx -R /test默认:只对以后新建的文件生效

4. 最大有效权限mask

有效权限是:赋予的权限和mask设定的权限相与的结果(逻辑与)

[root@localhost ~]# setfacl -m m:rx /home/

[root@localhost ~]# getfacl /home

getfacl: Removing leading '/' from absolute path names

# file: home

# owner: root

# group: root

user::rwx

user:user1:rwx #effective:r-x

group::r-x

mask::r-x

other::r-x

5. 删除ACL权限

[root@localhost ~]# setfacl -x u:st /home

#删除指定用户和用户组的ACL权限

[root@localhost ~]# setfacl -b /home/

#会删除文件的所有的ACL权限

二、sudo授权

1. sudo作用

给普通用户授予部分管理员权限

/sbin/

/usr/sbin

2. 设定

root登陆:visudo 赋予普通 用户权限命令,命令执行后和vi一样使用

[root@localhost a_dir]# visudo

...

91 root ALL=(ALL) ALL

#用户名被管理主机的地址=(可使用身份)授权命令(绝对路径)

举例:

92 lyz ALL=/usr/sbin/shutdown -r now

...

三、文件特殊权限SetUID、SetGID、Sticky BIT

名称

代表数字

设定命令

作用

SUID

4

chmod 4755 filename

让二进制程序的执行者临时拥有属主的权限

SGID

2

chmod 2755 filename

让二进制程序的执行者临时拥有属主的权限

SBIT

1

chmod 1755 filename

某个目录中的文件只能被其所有者执行删除操作

1. SetUID

SUID只能设定二进制程序:

只有可以执行的二进制程序才能设定SUID权限

命令执行者要对该程序拥有x(权限)

命令在执行程序的时候获取该程序所有者的身份

SUID权限同样只在该程序执行过程中有效

2. SetGID

SGID即可以针对文件生效,也可以针对目录生效,这和SUID明显不同

1) 针对文件

只有可执行的二进制程序才能设置SGID权限

命令执行者要对该程序拥有x(执行)权限

命令在执行程序的时候,组身份升级为该程序文件的属组

SGID权限同样只在该程序执行过程中有效

2)针对目录

普通用户必须对此目录拥有r和x权限,才能进入此目录

普通用户在此目录的有效组会变成此目录的属组

命令执行程序的时候,组身份升级为该程序文件的属组

若普通用户对此目录拥有w权限时,新建的文件的默认属组是这个目录的属组

3. Sticky BIT

Sticky BIT粘着位,也简称为SBIT。SBIT目前仅针对目录有效,它的作用如下 :

粘着位目前只对目录有效

普通用户对该目录拥有w和x权限,即普通用户可以在此目录拥有写入权限

如果没有粘着位,因为普通用户拥有w权限,所以可以删除此目录下所有文件,包括其他用户建立的文件,一但赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有w权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。

四、文件系统属性chattr权限

1. 命令格式

[root@localhost ~]# chattr [+-=][选项] 文件或目录

#选项:

+:增加权限

-:删除权限

=:等于某权限

i:文件:不允许进行删除、改名,也不能添加和修改数据

目录:只能修改目录下文件的数据,不允许建立和删除文件

a:文件:只能在文件中增加数据,不能删除也不能修改数据

目录:只允许在目录中建立和修改文件,不允许删除

2. 赋予属性

[root@localhost test]# chattr +i test1

[root@localhost test]# chattr +a test2

2.查看属性lsattr

[root@localhost test]# lsattr -a

---------------- ./.

---------------- ./..

----i----------- ./test1

-----a---------- ./test2

---------------- ./a

---------------- ./b

3. 举例

i属性

文件赋予i属性:啥都不能做

[root@localhost test]# ls

a a_dir i i_dir

[root@localhost test]# chattr +i i

[root@localhost test]# lsattr -a i

----i----------- i

[root@localhost test]# rm -rf i

rm: 无法删除"i": 不允许的操作

[root@localhost test]# mv i f

mv: 无法将"i" 移动至"f": 不允许的操作

[root@localhost test]# echo 123 >> i

-bash: i: 权限不够

[root@localhost test]#

目录赋予i属性:只能修改该目录下文件的数据

[root@localhost test]# ls

a a_dir i i_dir

[root@localhost test]# chattr +i i_dir/

[root@localhost test]# lsattr -a i_dir/

----i----------- i_dir/.

---------------- i_dir/..

---------------- i_dir/123

[root@localhost test]# cd i_dir/

[root@localhost i_dir]# touch bcd

touch: 无法创建"bcd": 权限不够

[root@localhost i_dir]# ls

123

[root@localhost i_dir]# rm -rf 123

rm: 无法删除"123": 权限不够

[root@localhost i_dir]# echo 11111 >> 123

[root@localhost i_dir]# cat 123

abc

11111

a属性

文件赋予a属性:只能追加数据

[root@localhost test]# ls

a a_dir i i_dir

[root@localhost test]# chattr +a a

[root@localhost test]# lsattr -a a

-----a---------- a

[root@localhost test]# rm -rf a

rm: 无法删除"a": 不允许的操作

[root@localhost test]# mv a abc

mv: 无法将"a" 移动至"abc": 不允许的操作

[root@localhost test]# echo 123 >> a

[root@localhost test]# cat a

123

目录赋予a属性:可新建文件和修改文件数据

[root@localhost test]# ls

a a_dir i i_dir

[root@localhost test]# chattr +a a_dir/

[root@localhost test]# lsattr -a a_dir/

-----a---------- a_dir/.

---------------- a_dir/..

---------------- a_dir/abc

[root@localhost test]# rm -rf a_dir/

rm: 无法删除"a_dir/abc": 不允许的操作

[root@localhost test]# cd a_dir/

[root@localhost a_dir]# ls

abc

[root@localhost a_dir]# rm -rf abc

rm: 无法删除"abc": 不允许的操作

[root@localhost a_dir]# touch bcd

[root@localhost a_dir]# rm -rf bcd

rm: 无法删除"bcd": 不允许的操作

[root@localhost a_dir]# mv abc abc2

mv: 无法将"abc" 移动至"abc2": 不允许的操作

[root@localhost a_dir]# echo 222 >> abc

[root@localhost a_dir]# cat abc

1111

222

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值