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

ACL权限

查看分区ACL权限是否开启

# 查询指定分区详细文件系统信息

dump2fs -h /dev/sda5

选项:

-h 仅显示超级块中信息,而不显示磁盘快组的详细信息

结果中的Default mount options中有acl表示开启了ACL

注意dumpe2fs只能查看ext的文件系统

临时开启分区ACL权限

mount -o remount,acl /dev/sda5

永久开启分区ACL权限

# 修改配置文件

vi /etc/fstab

在文件中的defaults后面加入",acl"如下(一般默认开启,无需添加):

UUID=11471313-e029-4391-b991-1df1d461cc81 / xfs defaultsm,acl 0 0

# 重新挂在文件系统或重启系统,使修改生效

mount -o remount /

查看ACL权限

# 查看ACL权限

getfacl 文件名

设定ACL权限

# 设定ACL权限

setfacl 选项 文件名

选项:

-m 设定ACL权限

-x 删除指定的ACL权限

-b 删除所有的ACL权限

-d 设置默认ACL权限

-k 删除默认ACL权限

-R 递归设定ACL权限

递归权限

setfacl -m u:用户名:权限 -R 目录(赋予文件会报错)

递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限。

递归权限只能赋予目录,不能赋予文件

容易带来权限溢出,比如对目录赋予权限rx,文件则会拥有执行权限,所以慎用

默认ACL权限

setfacl -m d:u:用户名:权限 目录文件(赋予文件不会报错,但是没意义)

默认ACL权限的作用是如果给父目录设定了默认的ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限。

设定权限

# 给用户赋予权限

setfacl -m u:用户名:权限 目录文件

例如:setfacl -m u:zdy:rw /zdy

# 给组赋予权限

setfacl -m g:组名:权限 目录文件

删除权限

# 删除指定用户的ACL权限

setfacl -x u:用户名 目录文件

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

setfacl -x g:组名 目录文件

# 删除所有ACL权限

setfacl -b 文件名

最大有效权限mask

mask是用来指定最大有效权限的。如果给用户赋予了ACL权限,和mask的权限“相与”才能得到真正的用户权限。

# 设定mask权限为rx,使用m:权限 格式

setfacl -m m:rx 文件名

sudo权限

root把本来只能超级用户执行的命令赋予普通用户执行

sudo的操作对象是系统命令

sudo使用

visudo # 实际修改的是 /etc/sudoers文件

在文件中添加行

root ALL=(ALL) ALL

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

例如:zdy ALL=(ALL) /sbin/shutdown -r now # 只赋予现在重启的权限

# 切换成某个用户

su - 用户名

# 查看可用的sudo命令

sudo -l

# 普通用户执行sudo 赋予的命令(最好写绝对路径,centos6之后可以不写)

sudo /sbin/shutdown -r now

查看命令位置whereis vi

# 给用户添加新建用户与修改密码的权限,但是不能修改root本身的密码

zdy ALL=/usr/sbin/useradd

zdy ALL=/usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd "",!/usr/bin/passwd root

# 不要赋予下面的权利,这样的话用户得到的是root下的vi

zdy ALL=/bin/vi

文件特殊权限

尽量少修改!

SetUID

SetUID针对文件的作用

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

命令执行者对该程序拥有执行权限

命令执行者在执行该程序时获得改程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)

SetUID权限只在该程序执行过程中有效,也就是说身份改变只能在程序执行过程中有效。

设定SetUID

# 设定SetUID的方法

chmod 4755 文件名 #4代表SUID

chmod u+s 文件名

# 取消

chmod 0755 文件名

chmod u-s 文件名

危险的SetUID

关键目录应严格控制写权限。比如"/","/usr"等

用户的密码设置要严格遵守密码三原则(复杂性,易记忆性,时效性)

对系统中默认应该具有SetUID权限的文件作一列表,定时检查有没有这之外的文件被设置了SetUID权限

定期检查是否有新的程序获得了SUID或者SGID,脚本以及使用方法查看http://www.imooc.com/video/9664

SetGID

SetGID针对文件的作用

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

命令执行者对该程序拥有执行权限

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

SetGID权限只在该程序执行过程中有效,也就是说组身份改变只能在程序执行过程中有效。

SetGID针对目录的作用

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

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

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

设定SetGID

# 设定SetUID的方法

chmod 2755 文件名 #2代表SGID

chmod g+s 文件名

# 取消

chmod 0755 文件名

chmod g-s 文件名

Sticky BIT

SBIT粘着位作用

粘着位只对目录有效

普通用户对该目录拥有wx权限,即普通用户可以对此目录拥有写入权限

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

设定粘着位

# 设置粘着位

chmod 1777 目录名

chmod o+t 目录名

# 取消粘着位

chmod 0777 目录名

chmod o-t 目录名

不可改变位权限chattr权限

chattr

chattr [+-=] [选项] 文件或目录名

+增加权限 -删除权限 =等于某权限

选项:

i(insert):如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;

如果对目录设置i属性,那么只能修改目录下文件的数据,但不允许建立和删除文件。

a(append):如果对文件设置a属性,那么只能在文件中增加数据,但是不能删除也不能修改数据;(禁用vi,但是可以用 echo 内容>>文件名)

如果对目录设置a属性,那么只允许在目录中建立和修改文件,但是不允许删除。

lsattr查看文件系统属性

lsattr 选项 文件名

选项:

-a 显示所有文件和目录

-d 如目标是目录,仅列出目录本身的属性,而不是子文件的

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值