用户相关命令与文件权限(普通特殊隐藏ACL)

Posted yc紫日

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用户相关命令与文件权限(普通特殊隐藏ACL)相关的知识,希望对你有一定的参考价值。

1.用户相关命令

useradd - 创建用户,默认创建与用户名同名的用户组

groupadd - 创建用户组

usermod - 修改用户的属性,如UID、所属组、附加组等

passwd - 修改密码相关属性,如修改密码、密码过期时间等

userdel - 删除用户

groupdel - 删除用户组

umask - 查看/设置用户创建文件/目录时默认需要去掉的权限

       文件用rw-rw-rw-去减,目录用rwxrwxrwx去减

chown - 设置文件/目录所属用户/用户组

       -R递归

su - 切换用户身份

       加-与不加-的区别:环境变量是否切换到新用户,加-切换,不加-不切换。

sudo - 以其他用户的身份执行命令

       可以使用visudo编辑sudo服务的配置文件

       只有root用户才可以使用visudo命令

       格式

              谁可以使用    允许使用的主机=(以谁的身份)    可执行命令的列表

              如:root    ALL=(ALL:ALL)    ALL # ALL:ALL表示任何用户:任何组

              yc    ALL=(ALL)    NOPASSWD:    ALL # NOPASSWD:表示不用输入密码

2.文件类型

-  普通文件

d  目录文件

l  连接文件

b  块设备文件

c  字符设备文件

p  管道文件

3.文件普通权限

 

文件所有者

文件所属组

其他用户

字符

rwx

rwx

rwx

r - 4; w - 2; x - 1

4.文件特殊权限

4.1 SUID

对二进制程序设置的特殊权限,可以让二进制程序的执行者在执行该二进制程序时拥有该二进制程序属主的权限。

如/bin/passwd,该程序权限为rwsr-xr-x,在执行该二进制程序会修改用户密码,而用户密码保存在/etc/shadow中,/etc/shadow的权限为000,那么s权限就保证了其他用户执行该二进制程序时,可以暂时使用root身份去修改shadow文件。

chmod u+s /xx/yy/zz

注:原先user的可写位有x则为s,无x则为S

4.2 SGID

两个功能

       1. 对二进制程序设置的特殊权限,可以让二进制程序的执行者在执行该二进制程序时拥有该二进制程序属组的权限。

       如ps,权限为r-xr-sr-x,执行时要访问/dev/kmem(kmem为字符设备文件,用于储存内核程序要访问的数据)

       chmod g+s /xx/yy/zz

       2.针对目录进行设置,可以让在该目录下新建或者新传送过来的文件自动继承该目录的用户组。

       适用于组内目录共享的情况,组内无论谁新建的文件属组均为该组。

       chmod -R g+s /xx/yy/

注:原先group的可写位有x则为s,无x则为S

4.3 SBIT

保护位,对针对目录设置,设置后除非该目录的所有者,否则无权限删除该目录下的文件,即便有w权限

文件能否被A用户删除取决于A用户对文件所在目录是否有w权限,而不是对该文件是否有w权限

适用于组内目录共享的情况,组内的其他人即便有对某人的文件夹查看权限,但不得删除。

chmod -R o+t /xx/yy/

注:原先other的可写位有x则为t,无x则为T

5.文件隐藏权限

5.1 setattr

设置(+)/取消(-)隐藏权限

5.2 lsattr

查看隐藏权限

5.3常见隐藏权限

i - 文件:无法修改;目录:仅能修改目录中的子文件,不能新建/删除子文件

a - 仅允许追加内容,不能修改/删除原内容

S - 文件内容变更后立即同步到硬盘

s - 彻底从硬盘中删除,不可恢复(原硬盘区域用0填充)

d - 使用dump备份时忽略本文件/目录

u - 删除该文件后依然保持其在硬盘中的数据

6.文件访问控制列表ACL

6.1理解

普通权限、特殊权限、隐藏权限均是以user、group、other三组为维度进行访问控制的;

ACL是以用户为维度进行访问控制的,即可以指定任何一个用户对某文件/目录进行访问的权限。(如x文件other权限为r--,现想让other里面的vbird为rwx,other里面的其他人仍然为r--,就要用到ACL)

如果针对某个目录设置了ACL,则目录中的文件会继承ACL;

如果针对某个文件设置了ACL,则文件不再继承其所在目录的ACL;

注:在ls时,权限位的最后若为“.”,表示没有设置ACL;若为“+”表示该文件/目录设置了ACL。

6.2 setfacl

设置文件/目录的ACL

       R - 针对目录设置ACL

       m - 针对文件设置ACL

       b - 删除文件/目录的ACL

例:

       使用ACL限制yc用户组中的所有成员不得在/tmp目录写入内容

       解析:

              不得在目录中写入内容,即不允许在目录下新增/删除文件(对目录去掉w),不允许修改文件(对文件去掉w),故命令如下:

              setfacl -Rm g:yc:r-x /tmp

6.3 getfacl

查看文件/目录的ACL

7.文件相关命令

chmod - 设置文件权限,包括隐藏权限

       可以使用如chmod go+wx x.file的方式

       -R递归

以上是关于用户相关命令与文件权限(普通特殊隐藏ACL)的主要内容,如果未能解决你的问题,请参考以下文章

第5章 用户身份与文件权限

文件访问控制列表

Linux之文件(目录)默认权限特殊权限与隐藏权限

linux特殊权限与acl

Linux ❀ 系统文件权限汇总梳理

Linux ❀ 系统文件权限汇总梳理