【1】Linux云计算入门 —— 4. sudo提权

操作

[root@localhost ~]# useradd lisi				# 创建用户

[root@localhost ~]# passwd lisi					# 设置密码

ssh [email protected]							# 登录用户李四

[root@localhost ~]# userdel -rf lisi			# 删除用户报错 (因李四正在连接)
userdel: user lisi is currently used by process 11688

[root@localhost ~]# kill -9 11688				# kill PID

[root@localhost ~]# userdel -rf lisi			# 再进行删除

报错信息分析

[root@localhost ~]# id zhangsan					# 查看ID
id: zhangsan: no such user

[root@localhost mail]# useradd zhangsan			# 创建用户 发现报错
useradd: warning: the home directory already exists.	# home 下存在 zhangsan
Not copying any file from skel directory into it.
Creating mailbox file: File exists						# /var/spool/mail 下存在 zhangsan

### 尝试 将两个路径的对应文件删除		
[root@localhost ~]# rm -rf /home/zhangsan/
[root@localhost ~]# rm -rf /var/spool/mail/zhangsan

### 如上所示:useradd zhangsan用户 默认生成家目录和/var/spool/mail/zhangsan文件
### 并且也会生成对应参数至 /etc/passwd 及 /etv/shadow

### 再次添加
[root@localhost home]# useradd zhangsan					# 成功

注:userdel命令未加参数只会删除UID 不删除家目录及/var/spool/mail 【建议使用userdel -rf】

用户组

[root@localhost ~]# groupadd it					# 创建组

[root@localhost home]# cat /etc/group			# 查看组信息

[root@localhost ~]# groupdel it					# 删除组
	
[root@localhost ~]# groupadd it					# 创建组

[root@localhost ~]# vim /etc/group				# 组配置文件

[root@localhost ~]# usermod niuniu -G hr 		# 修改成员niuniu 扩展组为 hr
### 修改成员属性 usermod

[root@localhost ~]# usermod niuniu -G hr 
usermod: group 'hr' does not exist				# 无 hr组

[root@localhost ~]# groupadd hr					# 因此添加hr组

[root@localhost ~]# usermod niuniu -G hr 
usermod: user 'niuniu' does not exist			# 无用户niuniu

[root@localhost ~]# useradd niuniu				# 因此添加用户niuniu

[root@localhost ~]# usermod niuniu -G hr 		# 成功

[root@localhost ~]# id niuniu					# 查看niuniu信息
uid=1002(niuniu) gid=1004(niuniu) groups=1004(niuniu),1003(hr)

### 实例
[root@localhost ~]# usermod wangj -G it 			# 修改成员wangj 为it组

[root@localhost ~]# id wangj					
uid=1000(wangj) gid=1000(wangj) groups=1000(wangj),1002(it)

双用户组

[root@localhost ~]# usermod wangj -G hr,it

[root@localhost ~]# id wangj
uid=1000(wangj) gid=1000(wangj) groups=1000(wangj),1002(it),1003(hr)

[root@localhost ~]# cat /etc/group | tail -n 10 | grep wangj	# 查看
wangj:x:1000:
it:x:1002:wangj								
hr:x:1003:niuniu,wangj
### 目前 用户wangj 同时属于 it,hr

[root@localhost ~]# usermod wangj -G cw 			# 再次使用usermod

[root@localhost ~]# id wangj					# 查看之后发现wangj只属于cw了
uid=1000(wangj) gid=1000(wangj) groups=1000(wangj),1005(cw)	

### 因此证明 -G 参数为覆盖式分配组权限

[root@localhost ~]# usermod wangj -aG hr,it 		# 使用 -a 参数进行增添式分配

[root@localhost ~]# id wangj
uid=1000(wangj) gid=1000(wangj) groups=1000(wangj),1002(it),1003(hr),1005(cw)

将成员移除某组别

[root@localhost ~]# id wangj						# 查看wangj所属组
uid=1000(wangj) gid=1000(wangj) groups=1000(wangj),1002(it),1003(hr),1005(cw)

[root@localhost ~]# gpasswd -d wangj cw				# 将 wangj 从 cw组 移除
Removing user wangj from group cw

[root@localhost ~]# id wangj						# 再次查看
uid=1000(wangj) gid=1000(wangj) groups=1000(wangj),1002(it),1003(hr)

chattr命令

用于改变文件的属性

[root@localhost tmp]# man chattr
CHATTR(1)                           General Commands Manual                           CHATTR(1)

NAME
       chattr - change file attributes on a Linux file system	# 更改Linux文件系统上的文件属性
 
属性:
a:让文件或目录仅供附加用途;
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。

参数:
-R:递归处理,将指令目录下的所有文件及子目录一并处理;
-v<版本编号>:设置文件或目录版本;
-V:显示指令执行过程;
+<属性>:开启文件或目录的该项属性;
-<属性>:关闭文件或目录的该项属性;
=<属性>:指定文件或目录的该项属性。

修改文件属性

[root@localhost tmp]# chattr +i 1.txt 				# 给文件1.txt 增加i属性 

[root@localhost tmp]# lsattr 						# 查看文件属性
----i----------- ./1.txt

[root@localhost tmp]# rm -rf 1.txt 
rm: cannot remove ‘1.txt’: Operation not permitted

### 此时这个文件不得任意更动文件或目录

[root@localhost tmp]# chattr -i 1.txt				# 给文件1.txt 减去i属性

[root@localhost tmp]# lsattr 						# 查看
---------------- ./1.txt

[root@localhost tmp]# rm -rf 1.txt					# 删除成功

操作

[root@SVR-IM2 ~]# chattr +a /etc/passwd			# 增加属性
[root@SVR-IM2 ~]# chattr +i /etc/shadow  		# 增加属性

[root@SVR-IM2 ~]# useradd wangjun				# 尝试 增加用户
useradd: cannot open /etc/passwd				# 无法打开 /etc/passwd

[root@SVR-IM2 ~]# lsattr /etc/passwd			# 查看属性
-----a---------- /etc/passwd

[root@SVR-IM2 ~]# chattr -a /etc/passwd			# 减去属性a

[root@SVR-IM2 ~]# useradd wangjun				# 再次尝试
useradd: cannot open /etc/shadow				# 无法打开 /etc/shadow

[root@SVR-IM2 ~]# lsattr /etc/shadow			# 查看属性
----i----------- /etc/shadow

[root@SVR-IM2 ~]# chattr -i /etc/shadow			# 减去属性i

[root@SVR-IM2 ~]# useradd wangjun				# 添加用户成功


### 用该操作使/etc/sudoers无法编辑
[root@SVR-IM2 ~]# chattr +a /etc/sudoers
[root@SVR-IM2 ~]# chattr +i /etc/sudoers

猜你喜欢

转载自blog.csdn.net/weixin_45791800/article/details/121195005