一、创建用户:
①基本语法:
useradd [选项] 用户名
常用选项:
-u 指定uid,唯一标识
-g 指定主组
-G 指定附加组
-d 指定用户的家目录(默认在/home下创建)
注意:指定家目录时,家目录的上级目录必须存在
-s 指定用户默认shell(/bin/sh(软链接) ==> /bin/bash(默认) , /sbin/nologin:不能本地登陆)
②验证
id 用户名:查看用户信息
[root@localhost /]# useradd stu1
[root@localhost /]# id stu1
uid=1001(stu1) gid=1001(stu1) 组=1001(stu1)
[root@localhost /]# tail -3 /etc/passwd
tcpdump:x:72:72::/:/sbin/nologin
tom:x:1000:1000:tom:/home/tom:/bin/bash
stu1:x:1001:1001::/home/stu1:/bin/bash
七列:
用户名:密码占位符:用户id:用户主组id:注释:用户家目录:用户使用的shell编辑器
[root@localhost /]# tail -3 /etc/shadow
tcpdump:!!:18329::::::
tom:$6$YSwlQKVW7cJZccgB$iexoOMRAiNpukg3goSYNoOartc1sYk3A5XTPmmQMGYFIq4G2IUKi7TBe.i1b.gp1AYQNjKYgkA.zYBOkXOxh5/::0:99999:7:::
stu1:!!:18329:0:99999:7:::
第一列,用户名
第二列,加密后的密码
第三列,表示上一次修改密码的时间18329:距离linux元年(1970.1.1)的天数
第四列,表示两次密码修改最小间隔时间(天),0表示可以立可修改密码
第五列,表示密码的最大有效期(单位:天)
第六列,表示提前多少天通知密码失效
第七列,密码宽限期
第八列,密码失效时间
第九列,保留
[root@localhost /]#
③扩展
chage
-d 修改用户最后一次更新密码时间
-m 修改密码的最小存活期(几天后可以修改密码)
-M 修改密码的最大存活期(每隔多少天可以修改密码)
-W 修改密码过期前几天发出警告
-I 修改允许密码过期几天
-E 修改账户过期时间
-l 列出账户的信息
[root@localhost /]# chage -l stu1
最近一次密码修改时间 :3月 08, 2020
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :从不
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
[root@localhost /]# chage -E '2020-03-10' stu1
[root@localhost /]# chage -l stu1
最近一次密码修改时间 :3月 08, 2020
密码过期时间 :从不
密码失效时间 :从不
帐户过期时间 :3月 10, 2020
两次改变密码之间相距的最小天数 :0
两次改变密码之间相距的最大天数 :99999
在密码过期之前警告的天数 :7
二、设置密码
root :a. passwd 用户名
b. echo 密码 | passwd 用户名 --stdin / echo 密码 | passwd --stdin 用户名 (非交互式)
passwd 直接回车表示修改当前用户的密码
三、修改用户信息
①语法:
usermod [选项] 用户名
常用选项:
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的主组
-G 指定用户的附加组
删除附加组:
gpasswd -d 用户名 附加组名
添加多个附加组:
usermod -aG 附加组名 用户名
-d 指定用户的家目录
注意:修改用户家目录时,新的家目录必须全部存在
-s 指定用户默认的shell
-L 锁定用户,锁定后该用户无法登录系统
-U 解除锁定
②案例:
a.修改用户uid
[root@localhost chome]# id user1
uid=1002(user1) gid=1002(user1) 组=1002(user1)
[root@localhost chome]# usermod -u 1111 user1
[root@localhost chome]# id user1
uid=1111(user1) gid=1002(user1) 组=1002(user1)
b.修改用户的家目录
[root@localhost chome]# mkdir -p /chome/redhat/user1
[root@localhost chome]# su - user1
上一次登录:一 3月 9 09:59:07 CST 2020pts/0 上
[user1@localhost ~]$ pwd
/chome/user1
[user1@localhost ~]$ exit
登出
[root@localhost chome]# usermod -d /chome/redhat/user1 user1
[root@localhost chome]# su - user1
上一次登录:一 3月 9 10:46:36 CST 2020pts/0 上
###出现该现象
-bash-4.2$ pwd
/chome/redhat/user1
-bash-4.2$ exit
登出
###解决办法
[root@localhost chome]# cp -a /etc/skel/. /chome/redhat/user1/
[root@localhost chome]# su - user1
上一次登录:一 3月 9 10:47:17 CST 2020pts/0 上
[user1@localhost ~]$ pwd
/chome/redhat/user1
[root@localhost chome]# ls -a /etc/skel/
. .. .bash_logout .bash_profile .bashrc .mozilla
[root@localhost chome]#
-----------
修改用户家目录
usermod -md 新目录 用户名
c.修改用户的附加组
[root@localhost chome]# head -1 /etc/group
root:x:0:
[root@localhost chome]# usermod -G 0 stu1
[root@localhost chome]# head -1 /etc/group
root:x:0:stu1
d.修改用户的shell
[root@localhost /]# useradd -s /sbin/nologin stu2
[root@localhost /]# su - stu2
This account is currently not available.
[root@localhost /]# usermod -s /bin/bash stu2
[root@localhost /]# su -stu2
上一次登录:一 3月 9 11:16:53 CST 2020pts/0 上
[stu2@localhost ~]$ exit
登出
四、删除用户
语法:
userdel [选项] 用户名
常用选项:
-r 删除用户的同时删除用户家目录和邮箱(/var/spool/mail)
-f 强制删除正在登录的用户
五、组
①创建组
groupadd [选项] 组名
常用选项:
-g 指定组id,唯一
[root@localhost /]# groupadd admin
[root@localhost /]# tail -1 /etc/group
admin:x:1002:
admin : x : 1002 :
组名 密码占位符 组id 用户列表
[root@localhost /]# groupadd -g 1234 system
[root@localhost /]# tail -1 /etc/group
system:x:1234:
②删除组
groupdel 组名
注意:该组若是某用户的主组,不能删除。若仅是附加组,可以删除
③组成员管理
gpasswd [选项] 用户名 组名(附加组)
常见选项:
-a 添加用户到组(表示追加)
-d 从组中删除成员
-A 指定管理员
-M 指定组成员(多个成员逗号分开。覆盖操作)
-r 删除密码
gpasswd 组名 ==> 给组设置密码