用户管理和权限管理
一、用户管理
[root@gj ~]# watch -n 1 "tail -n 3 /etc/passwd /etc/group ; ls -l /home" //监控这两个文件的内容和/home目录下的文件和子目录的详细信息
关于用户建立的命令
useradd test //建立用户test
userdel -r test //表示删除用户test
useradd -M -s /sbin/nologin -d /mnt test
-M:表示建立用户时不建立用户家目录
-s:表示用户登录时使用的shell,sbin/nologin
是一个特殊的 shell,使用它作为登录 shell 的用户无法直接登录系统,常被用于创建系统用户或者服务用户,比如用于运行特定服务进程的用户。
-d:指定用户的主目录
二、权限问题
1、T权限
[root@gj ~]# mkdir /dd/pub
[root@gj ~]# chmod 777 /dd/pub
[root@gj ~]# useradd lee
[root@gj ~]# useradd timinglee
[root@gj ~]# su - lee
[lee@gj ~]$ touch /dd/pub/leefile
[root@gj ~]# su - timinglee
[timinglee@gj ~]$ touch /dd/pub/timingleefile
[timinglee@gj ~]$ rm -rf /dd/pub/leefile //这里可以删除不是自己创建的文件,这太不合理了
[root@gj ~]# chmod o+t /dd/pub///
o+t
:o
代表其他用户(others
),即不属于文件所有者和所属组的用户;+t
是给指定对象添加t
权限,也就是粘滞位(sticky bit
)测试
[root@gj ~]# su - lee
[lee@gj ~]$ touch /dd/pub/leefile
[lee@gj ~]$ rm -rf /dd/pub/leefile
[lee@gj ~]$ rm -rf /dd/pub/timingleefile
rm: cannot remove '/dd/pub/timingleefile': Operation not permitted //发现操作被拒绝,我们的目的达到
2、 sgid/suid权限
没有给权限前
[root@gj ~]# ls -l /bin/cat
-rwxr-sr-x. 1 root root 36496 Aug 16 2024 /bin/cat
root@gj ~]# chmod g+s /bin/cat
g
代表所属组(group
),+s
表示添加 Set GID 权限。Set GID 权限有两种不同的表现,对于目录和文件作用不同。当用于文件时,意味着执行这个文件时,进程的有效组 ID 会变成文件所属组的 ID。
[root@gj ~]# chmod u+s /bin/cat
u
代表文件的所有者(user
),+s
表示添加 Set UID 权限。当一个可执行文件被设置了 Set UID 权限后,任何用户在执行该文件时,进程的有效用户 ID 会变成文件所有者的用户 ID,而不是执行该命令的用户的 ID。当任意用户执行
/bin/cat
命令时,该进程的有效用户 ID 会变为/bin/cat
文件所有者的用户 ID。通常/bin/cat
文件的所有者是root
,所以设置该权限后,任何用户执行cat
命令时,进程都会以root
用户的身份运行。你可以使用ls -l /bin/cat
命令查看文件权限的变化,设置 Set UID 权限后,所有者权限的执行位会显示为s
或S