操作
[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