用户管理命令
用户和组的主要配置文件
- /etc/passwd
- /etc/group
- /etc/shadow
- /etc/gshadow
chfn : 用来修改账号的描述信息
格式 chfn [options] username
- -f<真实姓名>或–full-name<真实姓名>:设置真实姓名;
- -h<家中电话>或–home-phone<家中电话>:设置家中的电话号码;
- -o<办公地址>或–office<办公地址>:设置办公室的地址;
- -p<办公电话>或–office-phone<办公电话>:设置办公室的电话号码;
- -u或–help:在线帮助; -v或-version:显示版本信息。
finger :用于查找并显示用户详细描述信息
格式 finger [options] usernam
- -l:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,还有计划文件和方案文件内容;
- -m:排除查找用户的真实姓名;
- -s:列出该用户的帐号名称,真实姓名,登入终端机,闲置时间,登入时间以及地址和电话;
- -p:列出该用户的帐号名称,真实姓名,用户专属目录,登入所用的Shell,登入时间,转信地址,电子邮件状态,但不显示该用户的计划文件和方案文件内容。
- 系统默认是没有安装的需要手动安装
id :查看用户的UID,GID ,组ID
- 直接查询输入id会查询的是当前用户信息
- id username 查询的是username的用户
chsh 更改用户登录shell
- chsh -s /bin/csh username
- 更改完信息要重新登录才能生效
/etc/shadow 用户口令密码文件
- 文件格式 用户名:加密后的密码:最近一次修改密码的时间:密码最短有效期:密码最长
- 更改密码加密密钥 authconfig –passalgo=sha256 –update
- 命令产生随机口令 openssl rand -base64 30
chage 修改用户密码时间有效期
- 用法:chage username 交互式更改
- -l 显示密码策略
- -E 密码过期时间 2016-10-10
设置口令的方法
- echo 密码 | passwd –stdin username 这种方法可以看到设置的密码不用输入两次
- passwd usernam 这种也可以
如何让用户登录后改密码只要把最后一次改密码时间为0就是登录后改密码
- 修改etc/shadow 文件把最后一次改密码日期为0
- passwd -e username
- chage -d日期 usernam
如何添加附属组和更改主组和给组加密码
- groups usname 查看用户组
- getent group username 查看指定用户组文件信息
- 如何添加附属组命令 usermod -aG 组名 用户名
- newgrp 切换主组 newgrp 组名
- gpasswd 组名 给组加密码
- gpasswd -A 用户名 组 把这个用户当成这个组的管理员
- gpasswd -a username group 把用户添加组
- gpasswd -d username group 删除组
- usermod -G group username 也可以添加组 -a 是追加组,如果不加-a 默认会覆盖当前附属组
- groupmems -a username -g group 也可添加组
- groupmems -d username -g group 删除组
- groupmens -l -g group 查看组列表成员
如何用命令操作组和用户的配置文件
vipw、vigr
- vipw 是修改/etc/passwd 配置文件的在保存时会检查格式和语法
- vipw -s 是修改shadow 文件
- vigr 是修改/etc/group 配置文件的保存时也会检查语法和格式
- vigr -s 是修改gshadow 文件
pwck、grpck 用于检查passwd、group 这两个文件是否有语法格式等错误
创建用户名
useradd [选项] 用户名
- -u :指定u ID
- -g :指定主组
- -m :指定家目录
- -M :指定不建立家目录
- -G :指定附加组多个附加组可以用,号分隔
- -N :不创建主组(默认会自动加入user组)
- -r :创建系统用户
- -d :指定家目录
- -c :用户描述信息
- -s :指定用户登录shell
创建用户的默认配置文件
[root@centos7 ~]# cat /etc/default/useradd
useradd defaults file
GROUP=100 # 如果用-N不建立主组会默认加入这里
HOME=/home # 默认创建家目录的路径
INACTIVE=-1 # 默认密码过期宽限天数 -1这是没有
EXPIRE= # 账号有效期 空是99999
SHELL=/bin/bash # 默认创建用户的shell
SKEL=/etc/skel #用户家目录里的默认文件模板
CREATE_MAIL_SPOOL=yes # 用户邮件文件
也可以用useradd -D 查看和修改
#### 组和用户的相关文件 1. /etc/default/useradd 创建用户默认配置文档 2. /etc/skel/* 用户家目录的模板文件 3. /etc/login.defs 文件定义了与/etc/password和/etc/shadow配套的用户限制设定。 #### 如何批量创建用户 - 首先创建一个文本文档,里面要和/etc/passwd 里面的格式一样
xiaofeng:x:1203:1204::/home/xiaofeng:/bin/nologin
xiaowang:x:1204:1005::/home/xiaowang:/bin/bash
1234:x:1234:985::/app/123:/bin/bash
sarah:x:1239:1240::/home/sarah:/bin/nologin
[root@centos6 ~]# newusers pass.txt
- 我们用getent passwd 查看一下 是否创建成功
xiaofeng:x:1203:1204::/home/xiaofeng:/bin/nologin
xiaowang:x:1204:1005::/home/xiaowang:/bin/bash
1234:x:1234:985::/app/123:/bin/bash
sarah:x:1239:1240::/home/sarah:/bin/nologin
[root@centos6 ~]#
- 已经创建成功了,但是我们还需要为这些用户创建密码一个一个创建很麻烦SO我们也有批量创建密码的命令
- 用chpasswd 命令可以批量创建用户密码,和之前一样也是创建一个文本文档格式是这样
xiaofeng:123456
xiaowang:123456
1234:123456
sarah:123456
[root@centos6 ~]# cat 123.txt |chpasswd
用户修改属性
usermod 修改用户属性
- 格式用法 usermod [option] login
- -u :指定新的UID
- -g :指定新的主组(这个组必须要提前存在)
- -G :指定附加组默认是覆盖当前附加组,需要加-a 追加
- -s :指定shell
- -c :更改用户描述信息
- -d :指定用户新的家目录
- -l :更改用户的名字
- -L :锁定用户
- -U :解锁用户
- -e :yyyy-mm-dd 指明用户账号过期日期
- -f :设定非活动期限
如何删除用户 useradd
- useradd 用户 这样不删除用户家目录
- -r 是删除用户家目录(要谨慎)
passwd 修改指定用户的密码,仅root用户使用
- passwd 修改自己的密码
- -l 锁定指定用户
- -u 解锁指定用户
- -e 强制用户下次登录时必须更改密码
- -n 指定密码最短使用期限
- -x 最大使用期限
- -w 提前多少天开始警告
- -i 非活动期限
- –stdin :从标准输入接受用户密码
- echo ‘password’ | passwd –stdin username
组管理
创建组 groupadd [option]… group_name
组修改属性 groupmod [option]…group
组密码 gpasswd [option] group
- a 将user 添加至指定组中
- d 从指定组中移除用户
- A 设置组管理员用户
更改和查看组成员groupmems [option] [组]
- -a 指定用户加入组
- -d 从组删除用户
- -p 从组清除所有组成员
- -l 列出组成员列表
- -g 更改为指定组(只有root能使用)
删除组 groupdel