用户管理
一:用户的创建
useradd [参数] 用户名
1.创建一个名为1的用户
[root@localhost ~]# useradd 1
2.参数
-d:指定家目录
创建一个名为1的用户,并指定家目录为/1
[root@localhost ~]# useradd -d /1 1
注意:目录可以不存在但是路径一定要有,如果路径不存在,用户会创建,家目录会创建失败
-u:指定uid(用户的标识) 随着用户的创建自动生成,自己指定uid
创建一个用户为2,并指定uid为1004
[root@localhost ~]# useradd -u 1004 2
注意:要保证uid没有被占用
-g:指定gid(组的标识)
创建一个名为3的用户,并指定gid
[root@localhost ~]# useradd -g 1004 3
注意:指定gid时,要保证gid存在
-c:描述
[root@localhost ~]# useradd -c "this is user is web" 4
-s:指定登录shell (可以登录的shell,不可以登录的shell)
[root@localhost ~]# useradd -s /bin/bash 5
[root@localhost ~]# su - 5
[5@localhost ~]$ exit
logout
[root@localhost ~]# useradd -s /sbin/nologin 6
[root@localhost ~]# su - 6
This account is currently not available.
注意:
su 是用户切换的命令
[root@localhost ~]# su - 7 切换到7的用户
哪些用户可以登录(哪些是可以登录的shell)
[root@localhost ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin 不能登录
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin 不能登录
案例:
[root@localhost ~]# useradd -s /bin/sh 8
[root@localhost ~]# su - 8
-sh-4.2$
[root@localhost ~]# useradd -s /usr/bin/bash 9
[root@localhost ~]# su - 9
[9@localhost ~]$
[root@localhost ~]# useradd -s /usr/sbin/nologin 10
[root@localhost ~]# su - 10
This account is currently not available.
案例:
创建一个不能登录而且uid为1020的账户11
[root@video-cloud ~]# useradd -s /sbin/nologin -u 1020 11
扩展:
useradd去创建一个用户,只是仅仅创建了一个用户吗?
用户家目录
组(默认情况下这个组ID(gid)跟uid值是一致)
邮件文件 /var/spool/mail
二:用户的修改
第一种方式:
usermod [参数] 用户名
-l 修改用户名
修改用户user100的用户名为zhangsan
[root@localhost ~]# usermod -l zhangsan user100
-u 修改uid
修改zhangsan用户的uid为300
[root@localhost ~]# usermod -u 3000 zhangsan
-g 修改gid
修改zhangsan用户的gid
[root@localhost ~]# usermod -g 2100 zhangsan
-c 修改描述
[root@localhost ~]# usermod -c "this is shagua" zhangsan
-s 修改登录shell
[root@localhost ~]# usermod -s /sbin/nologin zhangsan
-d 修改家目录
[root@localhost ~]# usermod -d /opt/zhangsan zhangsan
-G 修改用户的附加组
[root@localhost ~]# usermod -G user96 zhangsan
[root@localhost ~]# id zhangsan
uid=3009(zhangsan) gid=2098(user97) groups=2098(user97),2097(user96)
注意:如果该用户没有附加组,-G是添加的效果,如果该用户有附加组,直接修改
添加附加组
[root@localhost ~]# usermod -aG user98 zhangsan
[root@localhost ~]# id zhangsan
uid=3009(zhangsan) gid=2098(user97) groups=2098(user97),2097(user96),2099(user98)
第二种方式:
修改/etc/passwd的文件,除了密码字段不能修改外其他都能修改
三:用户的删除
userdel -r 用户名
[root@localhost ~]# userdel -r user1
四:用户的查看
/etc/passwd 存放用户信息
root:x:0:0:root:/root:/bin/bash
第一列:root 用户名
第二列:x 密码的占位符
第三列:0 uid 用户的标识
第四列:0 gid 组的标识
第五列:root 描述
第六列:用户的家目录
第七列:登录shell
id +用户 查看用户信息
[root@localhost ~]# id lili
uid=1000(lili) gid=1000(lili) groups=1000(lili) 主组 附加组
id 显示当前登录用户的信息
whoami 获取当前登录用户的用户名 (shell脚本 实用)
[root@localhost ~]# whoami
root
[root@localhost ~]# su - lili
Last login: Fri Nov 19 22:50:36 CST 2021 on pts/0
[lili@localhost ~]$ whoami
liliping
[lili@localhost ~]$ exit
五:扩展
批量创建用户 (脚本的魅力)
批量创建user1-user100 这100个用户
[root@localhost ~]# cat useradd.sh
#!/bin/bash
for i in {1..100}
do
useradd user$i
done
[root@localhost ~]# bash useradd.sh
六:密码
passwd 用户名
[root@localhost ~]# passwd
Changing password for user root.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost ~]# passwd zhangsan
Changing password for user zhangsan.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
存放密码的文件 /etc/shadow
非交互式:
echo "1" |passwd --stdin 用户名
使用非交互式的方式设置root账户的密码为1
[root@localhost ~]# echo "1" |passwd --stdin root
组管理
创建组:
groupadd [参数] 组名
[root@localhost ~]# groupadd hr
-g gid 设置组的gid
[root@localhost ~]# groupadd -g 5000 xz
组查看:
cat /etc/group
xz:x:5000:
第一列:组名
第二列:密码占位符
第三列:gid 组ID
第四列:用户
groups 默认显示当前用户的所属组
[root@localhost ~]# groups user98 查看用户的所属组
修改组:
groupmod [参数] 组名
-n:修改组名
-g:修改gid
修改hr组名cw
[root@localhost ~]# groupmod -n cw hr
修改cw的gid为6000
[root@localhost ~]# groupmod -g 6000 cw
添加zhangsan用户到cw的组(添加)
[root@localhost ~]# gpasswd -a zhangsan cw
添加多个用户到组 (覆盖)
[root@localhost ~]# gpasswd -M user2,user3,user4 cw
usermod -aG 修改用户的附加组
[root@localhost ~]# usermod -aG cw user11
删除组
groupdel 组名
用户的主属组不能删除
[root@localhost ~]# groupdel cw