用户管理


增 -- useradd adduser

选项 作用
-u 指定uid
-g 指定gid
-c 指定用户的注释,备注
-d 指定用户家目录
-M 不创建用户家目录
-s 指定用户登录的shell ----bash
-G 指定附加组
-r 创建一个用户uid在200 - 999之间
## 创建一个用户会影响到4个文件
/etc/passwd     -----用户配置目录
/etc/shadow     -----用户密码存放与配置
/etc/grou[      -----用户组配置
/etc/gshadow    -----用户组密码设置  (一般不用)

## 创建用户  -----    直接useradd 命令创建用户
[root@moban ~]# useradd newroot
[root@moban ~]# id newroot
uid=1005(newroot) gid=1006(newroot) groups=1006(newroot)


## 手动创建方法  
1.
[root@moban ~]# vim /etc/group
newroot001:x:1007:     -----------------  在底添加一个新的用户组名 和gid号
2.
[root@moban ~]# vim /etc/gshadow
newroot001:!::         -----------------  在底部添加刚刚用户组的密码
3.
[root@moban ~]# vim /etc/passwd
newroot001:x:1007:1007::/home/newroot001:/bin/bash   ----  添加用户名uid gid 家 shell
4.
[root@moban ~]# vim /etc/shadow
newroot001:!!:19823:0:99999:7:::   -------------  设置用户密码!! 是无密码
5.
[root@moban ~]# mkdir /home/newroot001/ -p    --------  创建 其家
[root@moban ~]# cp /etc/skel/.bash*  /home/newroot001/   	------- 拷贝bash到其家目录下

## 指定用户uid     -u
[root@moban ~]# useradd a001 -u 611
[root@moban ~]# id a001
uid=611(a001) gid=1008(a001) groups=1008(a001)


## 指定用户gid     -g    ----- 必须是存在的组
[root@moban ~]# useradd a002 -g 1008       ------   -g a001(作用一样)
[root@moban ~]# id a002
uid=1008(a002) gid=1008(a001) groups=1008(a001)

## 指定用户备注
[root@moban ~]# useradd a003  -c '逃离上海'
a003:x:1009:1009:逃离上海:/home/a003:/bin/bash

## 指定用户家目录
[root@moban ~]# adduser a004 -d /opt/a004
[root@moban ~]# ll /opt/a004 -d
drwx------. 2 a004 a004 62 Apr 10 15:10 /opt/a004

## 不创建家目录
[root@moban ~]# userdel a005 -M
[root@moban ~]# ll /home/a005
ls: cannot access /home/a005: No such file or directory

## 指定用户的shell
[root@moban ~]# useradd a006 -M -s /sbin/nologin 

## 指定用户附加组
[root@moban ~]# useradd a007 -G 0,a006
[root@moban ~]# id a007
uid=1013(a007) gid=1013(a007) groups=1013(a007),0(root),1024(a006)


改(修改用户信息)

选项 作用
-u 修改uid
-g 修改gid
-c 修改备注
-d 修改用户家目录 (修改passwd)
-m 配合-d,修改完后进行移动家目录
-s 修改用户shell
-G 修改用户的附加组,会替换原来组
-a 修改附加组 配合-G使用,追加不修改
-L 锁定用户(封号)
-U 解锁用户(解封)
-l 修改用户名
## user modify
usermod 

## 修改用户名
[root@moban ~]# usermod a001 -u 425
[root@moban ~]# id a001
uid=425(a001) gid=1008(a001) groups=1008(a001)

## 修改gid  修改的组必须存在   进行替换主组
[root@moban ~]# usermod a001 -u 611 -g 0  
[root@moban ~]# id a001
uid=611(a001) gid=0(root) groups=0(root)

## 修改备注
[root@moban ~]# usermod a001 -c '年方二八'
a001:x:611:0:年方二八:/home/a001:/bin/bash

## 修改家目录(passwd) 配和移动
[root@moban ~]# usermod a001 -m -d /root

## 修改用户登录的shell(bash)
[root@moban ~]# usermod a001 -s /sbin/nologin 

## 修改用户附加组 
1-----追加
[root@moban ~]# usermod a001 -aG a003,a005,a006
[root@moban ~]# id a001
uid=611(a001) gid=0(root) groups=0(root),1009(a003),1011(a005),1012(a006)
2-----替换  --------除了主组都替换
[root@moban ~]# id a001
uid=611(a001) gid=0(root) groups=0(root),1013(a007)

删(删除用户)

选项 作用
-r 彻底删除其残留
# user delete
userdel [选项]... 用户名
## 直接删除用户,类似于在/etc/passwd文件中把该用户行信息删除(家目录还在和所有用户相关文件都在)
[root@moban ~]# userdel -r a004
[root@moban ~]# ll /home/a004
ls: cannot access /home/a004: No such file or directory

拓展知识

## 创建用户的系统配置文件
/etc/login.defs
/etc/defaults/useradd


login.defs
[root@moban ~]# egrep -i '^[a-z]' /etc/login.defs 
# 用户mail存放位置
MAIL_DIR	/var/spool/mail
# 密码最长使用时间天数
PASS_MAX_DAYS	99999
# 密码最短使用时间天数
PASS_MIN_DAYS	0
# 密码最小长度
PASS_MIN_LEN	5
# 密码快过期,7天内提醒
PASS_WARN_AGE	7
# 最小uid
UID_MIN                  1000
# 最大uid
UID_MAX                 60000
# 最小系统用户 uid
SYS_UID_MIN               201
# 最大系统用户 uid
SYS_UID_MAX               999
# 同上
GID_MIN                  1000
GID_MAX                 60000
SYS_GID_MIN               201
SYS_GID_MAX               999
# 是否创建家目录
CREATE_HOME	yes
# 家目录的默认权限
UMASK           077
# 创建用户时候是否创建同名组
USERGROUPS_ENAB yes
# 密码通过SHA512 加密
ENCRYPT_METHOD SHA512

## 创建用户时,useradd命令需要读取的配置文件
[root@localhost ~]# cat /etc/default/useradd
## 如果/etc/login.defs 中的USERGROUPS_ENAB是yes,那就不读取改行配置
## 如果/etc/login.defs 中的USERGROUPS_ENAB是no,那就走该行配置,把创建的用户加入gid为100
的组
GROUP=100
## 创建用户时,默认用户家目录放在/home下
HOME=/home
## 用户账户有没有期限 -1表示不启用
INACTIVE=-1
## 账号终止日期,不设置表示不启用
EXPIRE=
## 用户登录时的shell
SHELL=/bin/bash
## 用户家目录下的环境变量文件存放原始目录
SKEL=/etc/skel
## 创建用户是否同时创建邮箱
CREATE_MAIL_SPOOL=y

了解命令

## 查看用户信息
[root@localhost ~]# finger zls
Login: zls Name:
Directory: /home/zls Shell: /bin/bash
Last login Wed Apr 10 18:06 (CST) on pts/3 from 10.0.0.1
No mail.
No Plan.
Login: zls676767 Name: zls 123 aaa bbb aaaa
Directory: /home/zls676767 Shell: /bin/bash
Never logged in.
No mail.
No Plan.
## 修改用户的信息(finger能查看到的信息)
[root@localhost ~]# chfn zls
Changing finger information for zls.
Name []: zls11111111
Office []: oldboy
Office Phone []: 123
Home Phone []: 312
## 修改用户登录的shell
[root@localhost ~]# chsh zls
Changing shell for zls.
New shell [/sbin/nologin]: /bin/bash
Shell changed.
[root@localhost ~]# w
19:57:11 up 3:37, 2 users, load average: 0.06, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 17:01 2:55m 0.01s 0.01s -bash
root pts/0 10.0.0.1 18:43 7.00s 0.34s 0.01s w