失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > linux文件系统权限管理(UGO权限 ACL权限 权限掩码)

linux文件系统权限管理(UGO权限 ACL权限 权限掩码)

时间:2021-03-21 06:57:45

相关推荐

linux文件系统权限管理(UGO权限 ACL权限 权限掩码)

(1)权限对象:

1、文件拥有者

文件拥有者我们也成为文件的属主,由于Linux系统是一个多尔恩五用户的系统,因此会有很多人来使用这部主机,为了考虑每个人的隐私,文件所有者这个去权限就尤为重要。

2、群组

群组是权限中最有用的功能之一,群组简单理解就是用户组,类似于我们公司的各个部门之间,或者学校班级的划分,每一个班级就是一个群组,群组内的资源是共享的,群组之间是相互隔离的

3、其他人

对于非文件的所有者,或者文件所属组意外的人,我们称之为其他人。

每个文件都有其所对应的属主,属组,其他人,其权力也是不尽相同的,我们以/usr/bin/passwd为例:|12|[root@chenyi ~]#ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 27856 4月 1 11:57 /usr/bin/passwd

该文件所的属主为root,权限为rws;

属组为root,权限为r-x;

其他人权限为r-x。

rwx:

r、w、x权限说明:

1、对于文件而言

例子:在用户chenyi1用户的/tmp/下创建文件daidai,然后切换用户到chenyi2下的/tmp/目录下查看

如图所示,文件daidai的属主和属组都为chenyi1,用户chenyi2既不是该文件的属主也不是属组成员,所以用户chenyi2对文件daidai只有r-x权限,即读和执行的权限,没有修改权限。

2、对于目录而言

图所示,目录chen的属主和属组都为chenyi1,用户chenyi2既不是该目录的属主也不是属组成员,所以用户chenyi2对目录陈只有r–权限,即用户只有查看该目录下文件列表的权力,但不能在该目录下创建或删除文件,也不能查看该目录下文件的内容。

权限管理命令:

chmod命令

三类用户:

u:属主

g:属组

o:其他

a:所有

赋权表示法:直接操作一类用户的所有权限位rwx

u=

g=

o=

a=

例子:

给文件daidai或目录daidai的属主赋予rwx权限

[chenyi2@chenyi tmp]$ chmod u=rwx daidai

授权表示法:

u+,u-

g+,g-

o+,o-

a+,a-

例子:

[chenyi1@chenyi tmp]$ chmod u+rx,g+rwx,o-r chen

[chenyi1@chenyi tmp]$ ll |grep chen

-rwxrwx—. 1 chenyi1 chenyi1 7 7月 30 12:52 chen

权限数字表示方法:

从属关系管理命令:

-R:递归修改

例子:修改目录呆呆的属主和属组分别为chenyi2,chenyi1,修改后,目录daidai下所有的文件和目录的属主和属组都将发生改变,递归修改。

进程上下文法则:

若进程的属主和文件的属主一致,进程将拥有文件属主的权限,

若进程的属主和文件的属主不一致,判断进程的属主和文件的属组是否一致,一致进程将拥有文件属组的权限。 不一致进程将拥有文件其他人的权限

具体实例:

文件daidai的属主和属组以及对应权限如下图所示:

复制一个终端并切换到任意一个普通用户下,例如切换到用户chenyi1下,启动进程cat,然后返回原终端查看cat进程,此时我们发现cat进程的发起者为用户chenyi1,如下图:

进程的发起者为chenyi1,而文件daidai的属主为chenyi2,所以cat没有属主的权限,此时我们再看属组和发起者是否相同(也可以看进程发起者是否在文件daidai的属组中),进程发起者和文件daidai的属组是一样的均为chenyi1,所以此时cat进程对文件daidai有其属组的权限,若进程发起者和文件的属主不同且不在其属组中,此时cat进程对文件daidai只有其他人权限,在此处对应权限为r–。

基本权限ACL

ACL全称是access Control List(访问控制列表),它是在UGO管理的基础上为文件提供一个额外的、更加灵活的权限管理机制,作为UGO权限管理的补充,本领如下:

1、可以针对用户来设置权限

2、可以针对用户组来设置权限

3、子文件/目录继承父目录的权限

添加权限:

1、给用户

具体实例:在root用户下的/tmp/目录中创建一个文件例如"dai:

然后切换到用户chenyi1下的/tmp/目录中,往文件"dai"中输入内容”ha"发现我们没有权限

然后我们返回到root用户下,赋予用户chenyi1权限让其有权限往文件"dai"中输入内容

然后我们切到用户chenyi1下输入内容就可以了

以上就是给用户组加权的全部过程

2、给用户组

给用户组加权的过程和给用户加权的过程基本是一样的,只需要改个选项:

给用户加权时:

setfacl -m u:chenyi1:rw dai

u后跟用户

而给用户组加权时:

setfacl -m g:chenyi1:rw dai

g后加用户组

其余的步骤是完全一样的

查看ACL权限:

getfacl 文件/目录名

例如查看文件dai的ACL权限

getfacl dai

子文件/目录继承父目录的权限

在root用户下的/tmp/目录下创建目录"pengyuye"

然后赋予ACL权限

在目录pengyuye下创建目录yibao,创建文件abc

查看新创建目录和文件的ACL权限

查看时我们发现新建的文件和目录均有acl权限,但是我们并没有赋予其acl权限,但是我赋予了父目录pengyuye权限,而文件abc和目录yibao是其子文件和子目录所以继承了acl权限,这就是权限的继承。

修改ACL权限:

-m:配置后面的acl参数给文件/目录使用

实例:

1、修改用户chenyi1对文件file的权限为rw-

setfacl -m u:chenyi1:rw-

2、修改用户组chenyi1对文件file的权限为rwx

setfacl -m g:chenyi1:rwx

删除后续的ACL权限:

-x:修改后续的acl权限不可与-m连用

实例:移除用户chenyi1对文件dai的后续ACL权限

移除前

移除:|48|[root@chenyi /tmp]#setfacl -x u:chenyi1 dai

然后查看文件dai的ACL权限如下,用户chenyi1 的ACL权限没有了:

|49|[root@chenyi /tmp]#getfacl dai

file: dai

owner: root

group: root

user::rw-

user:chenyi2:rw-

group::r–

mask::rw-

other::r–

-b:移除所有的ACL参数

setfacl -b dai

ACL权限的备份和恢复:

备份:

例如:将目录daidai及其目录下的子目录子文件ACL备份到文件huge里

递归清除目录daidai的ACL权限:

恢复:

权限的掩码umask

umask命令

umask

umask -S

umask的更改:

默认权限的定义是由权限掩码来决定:

文件:默认权限是:666-umask

例:在/tmp/目录下创建一个文件"a",查看其权限

权限为:rw-r–r--=644=666-umask=666-022=644

目录:默认权限是:777-umask

例:在/tmp/目录下创建一个目录"b",查看其权限

权限为:rwxr-xr-x=755=777-umask=777-022=755

临时修改: umask 044

永久修改,在/etc/profile下定义

if [ $UID -gt 199 ] && [ “/usr/bin/id -gn” = “/usr/bin/id -un” ]; then

umask 002

else

umask 044

fi

/usr/bin/id -gn

/usr/bin/id -un

解释:-eq"=" -gt">" -lt"<" -ne"≠“ -le"<=" -ge">="

若echo $UID大于199,且用户组=用户名,则权限掩码umask为022,否则权限掩码为044

此类设定仅对当前shell有效

如果觉得《linux文件系统权限管理(UGO权限 ACL权限 权限掩码)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。