控制单/多用户权限
创始人
2024-09-25 15:48:44
0

多用户权限控制

        Unix/类Unix是一个多用户的操作系统,拥有众多的发行版系统。单一用户可以使用chmod命令修改可读可写可执行权限。多用户使用chmod就显得力不从心了。多用户操作权限则使用ACL规则(Access Control List),即访问控制列表,ACL规则允许管理员为每个文件或目录指定多个用户或组的权限,更精细的控制文件和目录的访问方式。

chmod用法

chmod命令用于修改文件或目录的权限(rwx),常用于控制单用户对文件的访问权限。其基本用法有两种:数字模式和符号模式

数字模式(Numeric Mode)

使用数字模式可以直接为文件或目录设置权限。权限数字由三个八进制数字组成,每个数字代表一组权限:

第一个数字:所有者(owner)

第二个数字:用户组(group)

第三个数字:其他用户(other)

每组权限的值可以是以下组合之一:

4(读取权限,read)

2(写入权限,write)

1(执行权限,execute)

示例:     

1、chmod 755 file.txt:给所有者赋予读、写、执行权限(4+2+1),给用户组和其他用户赋予读、执行权限(4+0+1);

2、chmod 741 file.txt:给所有者赋予读、写、执行权限(4+2+1),给用户组赋予读权限(4+0+0),给其他用户赋予执行权限(0+0+1)。

符号模式(Symbolic Mode)

符号模式可以在当前权限基础上增加或减少权限,而不是直接设置所有权限,它由以下部分组成:

u:所有者(User)

g:用户组(Group)

o:其他用户(Others)

a:所有用户(all,等同于ugo组合)

每个部分后面可以跟一个操作符和权限符号:

+:增加权限

-:减少权限

=:设置权限为指定的值

权限符号可以是:

r:读权限(Read)

w:写权限(Write)

x:执行权限(Execute)

示例:

1、chmod u+x file.txt:给所有者增加执行权限

2、chmod go-rw file.txt:去掉用户组和其他用户的读写权限

3、chmod a=r file.txt:设置所有用户的权限为只读。

其他选项

-R:递归的应用权限修改,包括目录中的所有文件和子目录

--help:显示chmod命令的帮助信息

--version:显示chmod命令的版本信息

ALC规则用法

        在Unix和类Unix系统中,ACL通常与标准的文件权限(rwx)结合使用,提供更灵活的权限管理。它允许特定用户或组具有特定的权限,例如读、写、执行等,而不受文件所有者或所属组用户的限制。

要查看或修改文件或目录的ACL,通常使用getfacl和setfacl命令。这两个命令使管理员能够查看当前ACL设置并对其进行修改,从而根据特定需求设置更复杂的访问控制策略。

getfacl用法

getfacl命令用来查看是否设置了ACL规则,以及设置的ACL信息。getfacl命令通常情况下需要管理员权限(root)或者文件及目录的所有者权限

getfacl [选项] 文件或目录

选项:

        -R:递归的获取指定目录及其子目录下的所有文件和目录的ACL信息

        -c:在标准输出中显示命令执行的详细信息,包括获取ACL信息的过程

        -p:输出权限信息显示绝对路径名

实例

getfacl -Rpc ./code/

使用getfacl命令递归的显示当前code目录的ACL信息,这里显示ACL信息没有被设置。

 getfacl -R ./code/

使用getfacl 命令递归显示code目录的acl信息,出现绝对路径和所有者、用户组信息

 setfacl用法

setfacl用于设置文件或目录ACL(Access Control List,访问控制列表)的命令,在Unix和类Unix系统中使用,它允许管理员为特定文件或目录设置复杂和精细化的访问控制规则,包括指定不同用户或组的具体权限。

setfacl [选项] ACL规则 文件或目录

选项:

-m:添加或修改指定的ACL规则

-x:移除指定的ACL规则

-b:移除所有的ACL规则

-R:递归的应用ACL规则到指定目录及其子目录下所有文件和目录

ACL规则:指定要设置的ACL规则,通常包括用户或组及其相应的权限设置。

实例

setfacl -Rm u:sunwukong:rwx ./code/

使用useradd命令创建三个用户孙悟空、太上老君、哪吒,使用setfacl命令递归的将code目录及其子目录的所有文件赋予rwx权限给到用户孙悟空,并使用getfacl查看到孙悟空已经有了code目录的rwx权限。

 

 setfacl -Rm u:taishanglaojun:rwx ./code/

 setfacl -Rm u:nezha:rwx ./code/

 

setfacl -Rb ./code/

使用setfacl命令递归的清除code目录及其子目录的所有文件的ACL规则,通过getfacl命令查看ACL规则全部清空

 

小结

setfacl命令并不是对所有用户有效,有一个特殊的超级用户root,setfacl命令对其是完全无效的(设置了也是白设,可以绕过)。另外使用setfacl命令可以帮助我们理解Unix和类Unix的多用户权限操作原理,了解命令使用方法可以帮助我们进一步的使用自动化的方式批量的来完成大型且复杂的权限操作,比如将setfacl、getfacl命令写入脚本中批量设置多用户权限等。

小细节: 通过ll或ls命令可以查看目录或文件是否设置了ACL规则,比如ll ./code/ 如果设置了ACL规则,在ugo权限的后面多了+(第一列的末位),表示额外的使用了ACL规则。(绿色的文件名后加*,表示该文件可执行)

注意:ACL规则不能代替文件或目录的基本权限,它只是一种对文件或目录基本权限的扩展,可以理解为壳,即基本权限外加了一层保护壳。

相关内容

热门资讯

安卓系统为什么不封闭,揭秘安卓... 你有没有想过,为什么安卓系统那么开放,却不像苹果iOS那样封闭呢?这背后可是有着不少有趣的故事和原因...
安卓系统更新包多大,解析不同版... 你有没有发现,每次安卓系统更新,手机里都会多出那么几个G的文件?这可真是让人好奇,安卓系统更新包究竟...
安卓手机安装双系统吗,安卓手机... 你有没有想过,你的安卓手机是不是也能像电脑一样,装上两个系统,一个用来工作,一个用来娱乐?没错,这就...
oppo会升级安卓系统,畅享最... 你知道吗?最近有个大消息在手机圈里炸开了锅,那就是OPPO要升级安卓系统啦!这可不是什么小打小闹的更...
安卓系统上安装windows,... 你有没有想过,在安卓手机上安装Windows系统?听起来是不是有点不可思议?但你知道吗,这竟然是可能...
安卓系统怎么进运行框,安卓系统... 你有没有想过,你的安卓手机里有一个超级实用的功能,那就是运行框!它就像是一个小助手,帮你快速找到正在...
安卓系统电视无图像设置,安卓电... 你家的安卓系统电视突然没图像了?别急,让我来给你支个招,让你轻松解决这个问题!一、检查电源和连接线首...
安卓机建议升级系统吗,提升性能 你有没有发现,你的安卓手机最近有点儿慢吞吞的?是不是在犹豫要不要升级系统呢?别急,让我来给你好好分析...
升级不了安卓系统升级,探寻升级... 你有没有遇到过这种情况?手机里的安卓系统突然告诉你,它需要升级,但你左等右等,就是升不上去。这可真是...
备用安卓系统手机推荐,盘点热门... 你有没有想过,如果你的手机突然罢工了,你会怎么办?别担心,今天我就要给你安利几款备用安卓系统手机,让...
旧安卓系统ipad无法更新系统... 你有没有遇到过这种情况?你的旧安卓系统iPad突然告诉你,它无法更新系统了!是不是瞬间感觉心里有点小...
运行安卓6系统命令大全,全面掌... 你有没有想过,你的安卓手机里隐藏着无数强大的功能,只等着你去发现和探索呢?今天,就让我带你走进安卓6...
安卓系统简笔画教程下载,轻松绘... 你有没有想过,用简单的线条就能把复杂的安卓系统画出来?没错,就是那种一看就懂,一画就上手的感觉!今天...
华为如何鸿蒙转安卓系统,轻松实... 你知道吗?最近华为的大动作可是让整个科技圈都沸腾了!他们竟然把鸿蒙系统转到了安卓系统上,这可真是让人...
安卓10系统的问题,安卓10系... 你有没有发现,自从你的手机升级到安卓10系统后,好像有点不对劲呢?别急,让我来给你细细道来,看看安卓...
安卓系统苹果搞笑视频,苹果搞笑... 你知道吗?在互联网的世界里,搞笑视频可是个永恒的热门话题。尤其是那些结合了安卓系统和苹果手机的搞笑片...
卡片机改造安卓系统,探索改造之... 你有没有想过,那些曾经陪伴我们记录美好时光的卡片机,现在竟然也能焕发第二春呢?没错,就是那些小巧便携...
装安卓系统倒车出不来,智能科技... 你有没有遇到过这样的事情:手机装了个安卓系统,结果倒车的时候出不来啦?这可不是闹着玩的,简直让人抓狂...
定制安卓系统哪家好点儿,哪家服... 你有没有想过,手机系统就像是个人的衣服,每个人都需要找到最适合自己的那一款?今天,咱们就来聊聊定制安...
台电用回安卓系统吗,开启智能新... 最近有个话题在科技圈里炒得挺热的,那就是台电是不是要用回安卓系统了?你有没有想过,这个小小的决定背后...