linux-用户的增-删-改

1.用户相关命令 增(创建用户)

命令:useradd +用户名

# 创建一个用户会影响到4个文件:

/etc/passwd   (用户信息)

/etc/shadow   (用户密码)

/etc/group      (用户组)

/etc/gshadow (用户组密码)

 

创建用户(不用命令的方式)步骤   (太过繁琐,一般用命令创建,了解即可)   
1.vim /etc/group :先创建组
[root@localhost ~]# vim /etc/group
abc123:x:1010:

2.vim /etc/gshadow :更改组密码一般不设置
[root@localhost ~]# vim /etc/gshadow
abc123:!::

3.vim /etc/passwd :增加新用户
[root@localhost ~]# vim /etc/passwd
abc111:x:1020:1010::/home/abc111:/bin/bash

4.vim /etc/shadow :更改用户密码
[root@localhost ~]# vim /etc/shadow
abc111:$6$tOsCg2DJ$zoX3uE5B0YQN7yu266VsGTO4wbbfW6KMG67x5ESAqMCJayCLVhSnPmJfOfsd9
QTwRD29cGAuxbjLnK3qrfmfg.:19822:0:99999:7:::

5.mkdir /home/abc111 :创建用户的家目录
[root@localhost ~]# mkdir /home/abc111
[root@localhost ~]# cp /etc/skel/.bash* /home/abc111/ :环境变量文件

 

2.用命令创建:增(useradd +选项+用户)

选项                                作用
-u                                    指定uid
-g                                    指定gid(必须指定一个已存在的组)
-c                                    指定用户的备注(注释)
-d                                    指定用户的家目录
-M                                   不创建家目录
-s                                    指定用户登录的shell
-G                                   指定附加组
-r                                     创建一个用户uid在200 - 999之间

 

3.改(修改用户信息)(usermod +选项 +用户)

用户                                 作用
-u                                     修改用户的uid

-g                                     修改用户的gid(必须指定一个已存在的组)

-c                                      修改备注信息

-d                                      修改用户的家目录

-m                                     配合-d选项,修改玩家目录后,迁移家目录

-s                                      修改用户登录的shell

-G                                     修改用户的附加组,会替换原来的附加组

-a                                      配合-G,修改用户的附加组,追加附加组

-L                                      锁定用户

-U                                     解锁用户

-l                                       修改用户名

eg:

## 修改用户的uid
[root@localhost ~]# usermod zls666 -u 1008
[root@localhost ~]# id zls666
uid=1008(zls666) gid=4010(zls666) groups=4010(zls666),0(root),1000(zls)

 

## 修改用户附加组
[root@localhost ~]# id zls666
uid=1008(zls666) gid=1008(tls1111111) groups=1008(tls1111111),0(root),1000(zls)
[root@localhost ~]# usermod zls666 -G wyl,tls
[root@localhost ~]# id zls666
uid=1008(zls666) gid=1008(tls1111111)
groups=1008(tls1111111),1001(wyl),1002(tls)删(删除用户)
 
用户扩展知识
用户创建流程
以下两个文件作为参照物
/etc/login.defs
/etc/defaults/useradd
 
[root@localhost ~]# id zls666
uid=1008(zls666) gid=1008(tls1111111)  groups=1008(tls1111111),1001(wyl),1002(tls)
[root@localhost ~]# usermod zls666 -G root,zls -a
[root@localhost ~]# usermod zls666 -aG root,zls
[root@localhost ~]# id zls666
uid=1008(zls666) gid=1008(tls1111111)
groups=1008(tls1111111),0(root),1000(zls),1001(wyl),1002(tls) (实现了追加)
 
4.删(删除用户)
命令:userdel
# user delete
userdel [选项]... 用户名
 
## 如果直接删除,就类似于在/etc/passwd文件中把该用户的信息删除(家目录和用户所有相关文件都在)
[root@localhost ~]# userdel abd
 
## 递归删除用户及用户所有相关文件
[root@localhost ~]# userdel -r wyl
 
## 因为用户创建时没有创建家目录,所以会有提示,但是用户实际上还是被删除了
[root@localhost ~]# userdel -r zls888
userdel: zls888 home directory (/home/zls888) not found
 
用户的扩展知识
用户创建流程
以下两个文件作为参照物
/etc/login.defs
/etc/defaults/useradd
 
## 创建用户时,useradd命令需要读取的配置文件
[root@localhost ~]# grep -i '^[a-z]' /etc/login.defs [root@localhost ~]# grep -Ev '^$|^#' /etc/login.defs
## 用户存放邮件的目录
MAIL_DIR /var/spool/mail
 
## 用户默认密码最长使用天数
PASS_MAX_DAYS 99999
 
## 用户默认密码最短使用天数
PASS_MIN_DAYS 0
 
## 密码最小长度5位数
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
 
## 组最小ID
GID_MIN                      1000
 
## 组最大ID
GID_MAX                     60000
 
## 系统组最小ID
SYS_GID_MIN              201
 
## 系统组最大ID
SYS_GID_MAX              999
 
## 默认情况下,创建用户会创建该用户的家目
CREATE_HOME yes
## 创建用户家目录时,权限的umask为077,也就是用户家目录的目录权限为700 UMASK ( 默 认 权限 )         
077 创建目录或者文件都是从满权限0777-umask获得权限数值可以用stat查看
 
## 创建用户时,是否创建出用户的同名组 yes:创建  no:不创建
USERGROUPS_ENAB yes
 
## 用户密码的加密算法
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=yes
 
用户的创建流程
/etc/login.defs
/etc/default/useradd
 
useradd zls
1)读取/etc/login.defs和/etc/default/useradd文件的有效配置
[root@localhost ~]# grep -Ev '^#|^$' /etc/login.defs
## 用户邮箱路径
MAIL_DIR /var/spool/mail
## 密码最大使用天数
PASS_MAX_DAYS 99999
## 密码最小使用天数
PASS_MIN_DAYS 0
## 密码最小长度
PASS_MIN_LEN 5
## 密码警告天数
PASS_WARN_AGE 7
## 普通用户的最小UID
UID_MIN 1000
## 普通用户的最大UID
UID_MAX 60000
## 系统用户的最小UID
SYS_UID_MIN 201
## 系统用户的最大UID
SYS_UID_MAX 999
## 普通用户组的最小GID
GID_MIN 1000
## 普通用户组的最大GID
GID_MAX 60000
## 系统用户组的最下GID
SYS_GID_MIN 201
## 系统用户组的最大GID
SYS_GID_MAX 999
## 创建用户时默认是否创建家目录
CREATE_HOME yes
## 决定用户家目录的权限
UMASK 077
## 创建用户时是否同时创建用户的同名组
USERGROUPS_ENAB yes
## 用户密码的加密算法
ENCRYPT_METHOD SHA512
[root@localhost ~]# grep -Ev '^#|^$' /etc/default/useradd
## 如果USERGROUPS_ENAB yes,该行配置不生效
## 如果USERGROUPS_ENAB no,那么改行配置生效,并创建用户时,加入该组GID为100的组
GROUP=100
## 用户家目录默认路径
HOME=/home
## 用户账户是否设置期限 -1 无期限
INACTIVE=-1
## 账号终止设置,不设置
EXPIRE=
## 创建用户时,默认登录shell
SHELL=/bin/bash
## 存放用户环境变量的目录
SKEL=/etc/skel
## 创建用户时是否创建邮箱
CREATE_MAIL_SPOOL=yes
 
2)创建邮箱,并修改权限
touch /var/spool/mail/zls
 
3)查看上一个用户的uid是多少
[root@localhost ~]# user_name=`tail -1 /etc/passwd|cut -d ':' -f 1`
[root@localhost ~]# echo $user_name
zls9090
[root@localhost ~]# id -u $user_name
4019
 
4)zls用户的uid为4020
 
5)创建同名组
[root@localhost ~]# groupadd zls
 
6)CREATE_HOME yes HOME=/home创建用户的家目录
mkdir /home/zls
 
7)修改权限
[root@localhost ~]# chmod 700 /home/zls
[root@localhost ~]# chown -R zls.zls /home/zls
 
8)拷贝用户家目录的环境变量
[root@localhost ~]# cp /etc/skel/.bash* /home/zls
 
9)修改用户相关的4个文件
/etc/group
/etc/gshadow
/etc/passwd
/etc/shadow
 
创建1000用户 一条命令
seq 1000  打印数字序列 (注意使用方法)

[root@localhost ~]#seq 5
1
2
3
4
5

[root@localhost ~]#seq 5 10
5
6
7
8
9
10

创建用户

useradd tyq

echo '123'|passwd --stdin tyq 

seq  1000|awk '{print "useradd tyq"$1";echo '1'|passwd --stdin tyq"$1}'|bash

&&:衔接多个命令,需要判断前面的命令执行成功后,再执行后面的命令
;:衔接多个命令执行,不能做出判断
 
posted @   伞下月亮  阅读(40)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示