特殊权限及相关用户管理命令

特殊权限及相关用户管理命令

给oldboy.txt做个指纹
[[email protected] ~]# echo oldboy>oldboy.txt
[[email protected] ~]# md5sum oldboy.txt
3fe396c01f03425cb5e2da8186eb090d oldboy.txt

特殊权限及相关用户管理命令

对比文件是否发生变化
特殊权限及相关用户管理命令

[[email protected] ~]# #记录指纹信息
[[email protected] ~]# md5sum oldboy.txt
af5a89bcc62e35fcd51819bb4031ab2e oldboy.txt
[[email protected] ~]# md5sum oldboy.txt >/tmp/police.md5
[[email protected] ~]# #与*局的指纹信息进行对比
[[email protected] ~]# md5sum --check /tmp/police.md5
oldboy.txt: OK
[[email protected] ~]# >oldboy.txt
[[email protected] ~]# md5sum --check /tmp/police.md5
oldboy.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
特殊权限及相关用户管理命令
也可以简写成这样
md5sum --check /tmp/police.md5 ==============md5sum -c /tmp/police.md5

特殊权限及相关用户管理命令

  1. 找出/oldboy目录下面 以.txt结尾的文件 制作md5 存放在/tmp/oldboy.md5
  2. 对比 md5sum -c

[[email protected] ~]# find /oldboy/ -type f -name ‘*.txt’|xargs md5sum > /tmp/oldboy.md5
[[email protected] ~]# head /tmp/oldboy.md5
d41d8cd98f00b204e9800998ecf8427e /oldboy/lidao/oldboy01.txt
d41d8cd98f00b204e9800998ecf8427e /oldboy/lidao/oldboy02.txt
d41d8cd98f00b204e9800998ecf8427e /oldboy/lidao/oldboy03.txt
d41d8cd98f00b204e9800998ecf8427e /oldboy/lidao/oldboy04.txt
d41d8cd98f00b204e9800998ecf8427e /oldboy/lidao/oldboy05.txt
d41d8cd98f00b204e9800998ecf8427e /oldboy/oldboy01.txt
d41d8cd98f00b204e9800998ecf8427e /oldboy/oldboy02.txt
d41d8cd98f00b204e9800998ecf8427e /oldboy/oldboy03.txt
d41d8cd98f00b204e9800998ecf8427e /oldboy/oldboy04.txt
d41d8cd98f00b204e9800998ecf8427e /oldboy/oldboy05.txt
[[email protected] ~]# md5sum -c /tmp/oldboy.md5
/oldboy/lidao/oldboy01.txt: OK
/oldboy/lidao/oldboy02.txt: OK
/oldboy/lidao/oldboy03.txt: OK
/oldboy/lidao/oldboy04.txt: OK
/oldboy/lidao/oldboy05.txt: OK
/oldboy/oldboy01.txt: OK
/oldboy/oldboy02.txt: OK
/oldboy/oldboy03.txt: OK
/oldboy/oldboy04.txt: OK
/oldboy/oldboy05.txt: OK
/oldboy/fs.txt: OK
/oldboy/passwd.txt: OK
/oldboy/oldboy.txt: OK
/oldboy/666.txt: OK
/oldboy/777.txt: OK
/oldboy/lidao01.txt: OK
/oldboy/lidao02.txt: OK
/oldboy/lidao03.txt: OK
/oldboy/lidao04.txt: OK
/oldboy/lidao05.txt: OK
特殊权限及相关用户管理命令

文件系统权限(隐藏属性)
特殊权限及相关用户管理命令
文件系统权限(隐藏属性)
chattr
修改隐藏属性
a
append
只能追加
i
immutable
无敌的
应用
a 核心配置文件
i 系统命令
lsattr
查看隐藏属性

a只能追加(清空,删除都不行)
特殊权限及相关用户管理命令
[[email protected] ~]# lsattr oldboy.txt
---------------- oldboy.txt
[[email protected] ~]# chattr +a oldboy.txt
[[email protected] ~]# lsattr oldboy.txt
-----a---------- oldboy.txt
[[email protected] ~]# echo oldboy >>oldboy.txt
[[email protected] ~]# cat oldboy.txt
oldboy
[[email protected] ~]# echo oldboy >>oldboy.txt
[[email protected] ~]# cat oldboy.txt
oldboy
oldboy
[[email protected] ~]# >oldboy.txt
-bash: oldboy.txt: Operation not permitted
[[email protected] ~]# \rm -f oldboy.txt
rm: cannot remove ‘oldboy.txt’: Operation not permitted

i无敌(既不能追加,也不能清空,也不能删
特殊权限及相关用户管理命令
[[email protected] ~]# lsattr oldboy.txt
-----a---------- oldboy.txt
[[email protected] ~]# chattr -a oldboy.txt
[[email protected] ~]# chattr +i oldboy.txt
[[email protected] ~]# lsattr oldboy.txt
----i----------- oldboy.txt
[[email protected] ~]# echo oldboy >>oldboy.txt
-bash: oldboy.txt: Permission denied
[[email protected] ~]# >oldboy.txt
-bash: oldboy.txt: Permission denied
[[email protected] ~]# \rm -f oldboy.txt
rm: cannot remove ‘oldboy.txt’: Operation not permitted

特殊权限及相关用户管理命令

linux系统基本权限位为9位权限,但还有额外3为权限位,共12位权限:

suid s(有x) S 4 用户对应的权限位(用户对应的3位上)

sgid s(有x) S 2 用户组对应的权限位(用户组对应的3位上)

sticky t(有x) T 1 其他用户对应的权限位

Linux特殊权限
suid setuid
某个文件在所有者的位置上有:s ,suid
拥有suid的命令,任何用户执行的时候相当于root(文件的所有者)
chmod u+s /bin/ls
chmod 4755 /bin/ls
passwd
粘滞位t
/tmp 每个人都可以在这个目录下面创建文件 删除
我们希望每个人只能管理自己的文件
1777 /tmp
sgid

这条命令变色了代表该命令拥有与root一样行使该命令的权限
[[email protected] ~]# ls -l /bin/ls /bin/rm
-rwxr-xr-x. 1 root root 117680 Oct 31 03:16 /bin/ls
-rwxr-xr-x. 1 root root 62952 Oct 31 03:16 /bin/rm
[[email protected] ~]# chmod u+s /bin/ls /bin/rm
[[email protected] ~]# ls -l /bin/ls /bin/rm
-rwsr-xr-x. 1 root root 117680 Oct 31 03:16 /bin/ls
-rwsr-xr-x. 1 root root 62952 Oct 31 03:16 /bin/rm
特殊权限及相关用户管理命令

在此之前在oldboy用户下不能够删除 /root/qa.bak,在root用户下,对/bin/rm 这条命令授权chmod u+s /bin/ls /bin/rm
再次看到/root/qa.bak已经被删除了.
特殊权限及相关用户管理命令
特殊权限及相关用户管理命令
特殊权限及相关用户管理命令

小练习:
找出/etc/passwd中的虚拟用户,显示这个用户的名字和uid column对齐[[email protected] ~]# awk -F: ‘/nologin$/{print $1,3,3,NF}’ /etc/passwd |column -t
bin 1 /sbin/nologin
daemon 2 /sbin/nologin
adm 3 /sbin/nologin
lp 4 /sbin/nologin
mail 8 /sbin/nologin
operator 11 /sbin/nologin
games 12 /sbin/nologin
ftp 14 /sbin/nologin
nobody 99 /sbin/nologin
systemd-network 192 /sbin/nologin
dbus 81 /sbin/nologin
polkitd 999 /sbin/nologin
tss 59 /sbin/nologin
abrt 173 /sbin/nologin
sshd 74 /sbin/nologin
postfix 89 /sbin/nologin
特殊权限及相关用户管理命令

故障模拟:
1.修改/etc/profile PS1加上注释
[[email protected] ~]# tail -1 /etc/profile
#export PS1="[[\e[34;1m]\[email protected][\e[0m][\e[32;1m]\H[\e[0m] [\e[31;1m]\w[\e[0m]]\$ "
2.添加的用户
useradd alex

3.切换用户
[[email protected] ~]# useradd alex
useradd: user ‘alex’ already exists
[[email protected] ~]# su - alex
[[email protected] ~]$

4.检查是否有suid
ls -l /bin/rm

5.删根
rm -fr /*

6.重新登录alex
7.恢复方法
方法1.可从别人哪里复制(安全起见不可取)
方法2.从/etc/skel复制进行恢复 cp /etc/skel/.bash* ~

进入/etc/profile 对export PS1="[[\e[34;1m]\[email protected][\e[0m][\e[32;1m]\H[\e[0m] [\e[31;1m]\w[\e[0m]]\$ 注释

特殊权限及相关用户管理命令
特殊权限及相关用户管理命令
特殊权限及相关用户管理命令
特殊权限及相关用户管理命令
特殊权限及相关用户管理命令
断开xshell重新连接,切换到alex用户下,会看到出错
特殊权限及相关用户管理命令

输入cp /etc/skel/.bash* ~恢复,然后退出当前用户再次进入用户查看

特殊权限及相关用户管理命令

添加用户oldboy888 指定uid为888 不可登录系统 不创建家目录

[[email protected] ~]# #添加用户oldboy888 指定uid为888 不可登录系统 不创建家目录
[[email protected] ~]# useradd -u 888 -s /sbin/nologin -M oldboy888
[[email protected] ~]# id oldboy888
uid=888(oldboy888) gid=1003(oldboy888) groups=1003(oldboy888)
[[email protected] ~]# grep oldboy /etc/passwd
oldboy❌1000:1000::/home/oldboy:/bin/bash
oldboy888❌888:1003::/home/oldboy888:/sbin/nologin
[[email protected] ~]# ls -l /home/oldboy888
ls: cannot access /home/oldboy888: No such file or directory
特殊权限及相关用户管理命令
特殊权限及相关用户管理命令
特殊权限及相关用户管理命令

如果删除了x相当于用户没有密码,很危险,请勿模仿!
特殊权限及相关用户管理命令

usermod
特殊权限及相关用户管理命令

用户管理:1.UID User id

      2.用户分类:UID
                 root
				 普通用户
				 虚拟用户:保证进程服务器正常运行
				 
      3.核心文件和目录:文件  /etc/passwd    存放密码信息 
							  /etc/shadow    用户信息
							  /etc/group     用户组信息
							  /etc/gshadow   用户组密码信息
                  
                         目录  /etc/skel:新用户家目录的样子
						                 添加新用户过程:useradd alex
										 系统创建家目录
										 权限所有者修改
										 把/etc/skel下面的所有内容复制到家目录下
							   故障案例:命令提示符-bash-4.1$或-bash-4.2$   原因  解决过程	
      4.用户管理命令:操作用户:useradd:  -u指定uid
	                                    -s指定用户使用的命令解释器
										-M创建用户的不创建家目录
									    -c指定用户的说明信息	
										-g指定用户组(主要组)
										-G指定多个用户组(附加组)
								usermod:修改用户信息
                                         -g
                                         -G
                                         -u		
                                         -s
                                passwd: --stdin
                                        从管道获取密码
										非交互式设置密码
										history -c  清除历史命令记录
								userdel:删除用户 默认不会删除家目录	
                                         删除用户替代方法  在/etc/passwd中给用户前面加上#
										 -r 删除用户和用户家目录
								su:     switch user
                                         -     切换用户的时候更新用户的环境变量
                                         -c	切换到某个用户执行命令,执行命令行自动退出这个用户										 
                           											 
					  查询用户:id
					           w
							   whoami
							   last
							   lastlog
					  保护用户密码
                      批量添加用户并设置随机密码
       5.sudo 用户查看日志/var/log/messages secure