Linux 用户管理增、删、改、查用户相关配置文件详解。
linux的用户管理
linux支持多个用户同时使用同一个用户登陆系统,windows在修改组策略的情况下,也可以多个人使用同一个用户登陆。
远程连接Linux的方式:ssh
远程连接windows的方式:RDP
查看系统中的用户
[root@gong ~]# id # id,查看当前登录的用户信息 -u 查看用户uid -g 查看用户gid -G 查看用户所属组id [root@gong ~]# id -u gong01 [root@gong ~]# id -g gong01 [root@gong ~]# id -G gong01
用户相关的配置文件
用户配置文件-passwd
/etc/passwd
[gong@oldboy ~]$ cat /etc/passwd root:x:0:0:root:/root:/bin/bash root 用户名 x 密码占位符 0 uid 0 gid roor 注释信息 /root 用户家目录 /bin/bash 用户使用的解释器
用户密码配置文件-passwd
/etc/shadow
[root@oldboy ~]# cat /etc/shadow gong:$6$BCVy.L6s$BXID8pfq7FqQITZrhj5W6Fpfl7SERqLzn0OAOGoPULnN/lXarLzC2nvnSkjyUM3TiKfY2mIMByGi4/Mu5/TwT0:18351:0:99999:7::: 第一列 用户名 第二列 !! 没有密码,表示密码 第三列 18351从1970年开始数的第多少天,上一次修改密码的时间从1970到现在有多少天。 第四列 密码最小使用天数 0表示无限制 第五列 密码过期天数,99999天 第六列 密码过期前七天提示 7 第七列 密码过期后n天强制修改密码 第八列 账户失效时间,从1970年开始计算 第九列 保留
用户的分类(约定、规范)
用户UID | 系统含义 |
---|---|
0 | 超级用户,拥有系统的最高权限 |
1-200 | 系统用户,系统分配给系统程序使用,不需要登陆系统 |
201-999 | 系统用户,用来运行服务,不需要登陆系统的 |
1000+ | 普通用户 |
注意: 在CentOS
用户相关的命令
增
useradd adduser useradd [options] [用户名] 默认情况下,创建用户的时候会创建以用户名相同的组,并把用户加入里面 -u 指定uid -g 指定gid,也可以指定属组 -G 指定属组,附加组;如果加入多个附加组则用','分开 -M 不创建家目录 -s 指定登陆的shell -c 注释 -d 指定家目录 -r 创建一个uid范围是201-999的系统用户,不创建家目录。 -p 在创建的时候指定密码
删
userdel Usage: userdel [options] 用户名 默认情况下,在删除用户的时候同时会把同名的用户组也删除,但是如果组内有其它用户,则不会删除组,只删除用户。 -r 删除用户的同时,删除用户的家目录,和用户的其它邮件目录 (删干净)
改
usermod Usage: usermod [options] username -u 修改uid -g 修改gid -G 修改附加组 -a 配合-G,在修改附加组的时候,起到追加效果 -m 修改(迁移)家目录,必须配合-d使用 -d 指定修改后的家目录 -s 修改登陆的shell -c 修改注释 -l 修改登陆的用户名 -L 锁定用户 -U 解锁用户
查
id whoami
用户的扩展知识
[root@gong ~]# grep -vE '^#|^$' /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 # 使用-r 创建用户的最小uid SYS_UID_MIN 201 # 使用-r 创建用户的最小uid SYS_UID_MAX 999 # 创建组的最小uid GID_MIN 1000 # 创建组的最大uid GID_MAX 60000 # 使用-r 创建组的最小uid SYS_GID_MIN 201 # 使用-r 创建组的最小uid SYS_GID_MAX 999 默认是否创建家目录 CREATE_HOME yes # 创建家目录时的默认权限700 UMASK 077 # userdel删除的时候是否删除对应组 USERGROUPS_ENAB yes # 用户密码的加密算法 ENCRYPT_METHOD SHA512
[root@oldboy ~]# ll /etc/default/useradd -rw-r--r--. 1 root root 119 Oct 30 2018 /etc/default/useradd [root@oldboy ~]# cat /etc/default/useradd # 当/etc/login.defs 中的USERGROUPS_ENAB为no的时候在此处控制。 GROUP=100 # 默认的普通用户家目录 HOME=/home # 是否启用账号过期停权 -1 为停用 INACTIVE=-1 # 账号终止日期,未设置 EXPIRE= # 创建用户时候默认的shell SHELL=/bin/bash # 创建时复制里面的内容,用户误删家目录的环境变量时,可以复制里面的内容 SKEL=/etc/skel # 创建用户时是否创建邮件文件 CREATE_MAIL_SPOOL=yes
用户的密码管理
passwd # 创建密码的规范 - 密码的长度最好大于10个字符 - 密码包含大小写字母,及特殊字符 ! @ # - 不规则性 (不要出现自己的名字、公司名称、电话、等简单的密码) [root@oldboy ~]# passwd --help Usage: passwd [OPTION...] <accountName> # 给当前用户更改密码 [root@oldboy ~]# passwd # 给test01更改密码 [root@oldboy ~]# passwd test01 # 使用非交互式更改密码 [root@oldboy ~]# echo 123 |passwd --stdin test01 # md5su加密,并做校验 echo $RANDOM|md5sum # tee 在终端输出并且追加到文件 echo 123|tee a.txt # 密码管理命令 yum -y install expect usage: mkpasswd [args] [user] where arguments are: -l # (length of password, default = 9) -d # (min # of digits, default = 2) -c # (min # of lowercase chars, default = 2) -C # (min # of uppercase chars, default = 2) -s # (min # of special chars, default = 1) mkpasswd -l 密码长度 -d 数字 -c 小写字母 -C 大写字母 -s 特殊字符