运维开发网

用户身份与文件权限

运维开发网 https://www.qedev.com 2021-04-02 15:55 出处:51CTO 作者:米朵?
5.1 用户身份与能力管理员UID为0:系统的管理员用户。系统用户UID为1~999: Linux系统为了避免因某个服务程序出现漏洞而被***提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。管理员  0  root系统用户 5/6 1-499              7/8 1-999普通用户 5/

5.1 用户身份与能力

管理员UID为0:系统的管理员用户。

系统用户UID为1~999: linux系统为了避免因某个服务程序出现漏洞而被***提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏范围。

普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。

管理员  0  root

系统用户 5/6 1-499

              7/8 1-999

普通用户 5/6 500-65535

              7/8 1000-

1.  useradd命令

表5-1                                       useradd命令中的用户参数以及作用

参数

作用

-d

指定用户的家目录(默认为/home/username)

-e

账户的到期时间,格式为YYYY-MM-DD.

-u

指定该用户的默认UID

-g

指定一个初始的用户基本组(必须已存在)

-G

指定一个或多个扩展用户组

-N

不创建与用户同名的基本用户组

-s

指定该用户的默认Shell解释器

2.  groupadd命令

groupadd命令用于创建用户组,格式为“groupadd [选项] 群组名”。

3.  usermod命令

usermod命令用于修改用户的属性,格式为“usermod [选项] 用户名”。

表5-2                                            usermod命令中的参数及作用

参数

作用

-c

填写用户账户的备注信息

-d -m

参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去

-e

账户的到期时间,格式为YYYY-MM-DD

-g

变更所属用户组

-G

变更扩展用户组

-L

锁定用户禁止其登录系统

-U

解锁用户,允许其登录系统

-s

变更默认终端

-u

修改用户的UID

4.  passwd命令

passwd命令用于修改用户密码、过期时间、认证信息等,格式为“passwd [选项] [用户名]”。

表5-3                                           passwd命令中的参数以及作用

参数

作用

-l

锁定用户,禁止其登录

-u

解除锁定,允许用户登录

--stdin

允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username

-d

使该用户可用空密码登录系统

-e

强制用户在下次登录时修改密码

-S

显示用户的密码是否被锁定,以及密码所采用的加密算法名称

5.  userdel命令

userdel命令用于删除用户,格式为“userdel [选项] 用户名”。

表5-4                                              userdel命令的参数以及作用

参数

作用

-f

强制删除用户

-r

同时删除用户及用户家目录
5.2 文件权限与归属

 -:普通文件。

d:目录文件。

l:链接文件。

b:块设备文件。

c:字符设备文件。

p:管道文件。

文件权限的字符与数字表示

r: read 读

w:write 写

x:execute 执行

5.3 文件的特殊权限

特殊权限是对一般权限功能的补充

1.  SUID 让程序的执行者临时拥有了所有着的权限

查看passwd命令属性时发现所有者的权限由rwx变成了rws,其中x改变成s就意味着该文件被赋予了SUID权限。

-rwsr-xr-x

前三位 

rwx ---- rws

rw- ---- rwS

2.  SGID 目录内新建的文件,继承上级目录所有组的名称

SGID主要实现如下两种功能:

让执行者临时拥有属组的权限(对拥有执行权限的二进制程序进行设置);

在某个目录中创建的文件自动继承该目录的用户组(只可以对目录进行设置)。

-r-xr-sr-x 

中间三位

rwx ---- rws

rw- ---- rwS

3.  SBIT 让目录内的文件只能够被自己删除

当目录被设置SBIT特殊权限位后,文件的其他人权限部分的x执行权限就会被替换成t或者T,原本有x执行权限则会写成t,原本没有x执行权限则会被写成T。

drwxrwxrwt

后三位

rwx ---- rwt

rw- ---- rwT

chmod 

能够用来设置文件或目录的权限,格式为“chmod [参数] 权限 文件或目录名称” 

chmod [-R] 674 文件名

chown

设置文件或目录的所有者和所属组,这里使用的命令为chown,其格式为“chown [参数] 所有者:所属组 文件或目录名称”。

chown 所有者:所有组

特殊权限的数字算法 s是4 S是2 t是1

rws   rwS  r--

先写成一般权限 :rwx   rw-  r--  764  

特殊权限是s4 S2  4+2=6 

最后的数字权限为 6 764

5164 

先写成一般权限 164 --x rw- r--

5 是s和T                  --s rw- r-T

5.4 文件的隐藏属性

linux系统中的文件除了具备一般权限和特殊权限之外,还有一种隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉。

1.  chattr命令   设置文件的隐藏权限,格式为“chattr [参数] 文件”。

表5-6                                  chattr命令中用于隐藏权限的参数及其作用

参数

作用

i

无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件

a

仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)

S

文件内容在变更后立即同步到硬盘(sync)

s

彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)

A

不再修改这个文件或目录的最后访问时间(atime)

b

不再修改文件或目录的存取时间

D

检查压缩文件中的错误

d

使用dump命令备份时忽略本文件/目录

c

默认将文件或目录进行压缩

u

当删除该文件后依然保留其在硬盘中的数据,方便日后恢复

t

让文件系统支持尾部合并(tail-merging)

x

可以直接访问压缩文件中的内容

2.  lsattr命令  用于显示文件的隐藏权限,格式为“lsattr [参数] 文件”

chattr +权限 文件名 追加(设置)

chattr -权限 文件名  移除(取消)

lsattr      文件名(查看)

红帽考题:删除文件名

rm rm-f 无法直接删除

① 查看隐藏权限 lsattr 文件名

② 删除隐藏权限 chattr   -a 文件名

③ 删除文件       rm 文件名

[[email protected]Linuxprobe ~]# lsattr Linuxprobe

-----a---------- Linuxprobe

[[email protected]Linuxprobe ~]# chattr -a Linuxprobe

[[email protected]Linuxprobe ~]# lsattr Linuxprobe

---------------- Linuxprobe

[[email protected]Linuxprobe ~]# rm Linuxprobe

rm: remove regular file ‘Linuxprobe’? y

5.5 文件访问控制列表

1.  setfacl命令

2.  getfacl命令

setfacl -m u:用户名:权限 文件名 进行读写执行权限的控制

setfacl -b 取消某个文件的ACL

getfacl 文件名 显示文件上设置的ACL信息

[[email protected]Linuxprobe ~]# ls -ld /root

dr-xrwx---+ 14 root root 4096 May 4 2017 /root

文件的权限最后一个点(.)变成了加号(+),这就意味着该文件已经设置了ACL了。

5.6 su命令与sudo服务

su 切换用户

su - 用户名称 

su命令与用户名之间有一个减号(-),这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。强烈建议在切换用户身份时添加这个减号(-)。

sudo命令用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务,格式为“sudo [参数] 命令名称”

visudo命令来配置用户权限。

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

如果需要让某个用户只能使用root管理员的身份执行指定的命令,切记一定要给出该命令的绝对路径,否则系统会识别不出来。我们可以先使用whereis命令找出命令所对应的保存路径,然后把配置文件第99行的用户权限参数修改成对应的路径即可:

每次执行sudo命令都要输入一次密码其实也挺麻烦的,这时可以添加NOPASSWD参数,使得用户执行sudo命令时不再需要密码验证

用户身份与文件权限

用户身份与文件权限

扫码领视频副本.gif

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号