1.useradd:添加用户
useradd命令可用来建立用户帐号。帐号建好之后,再用passwd设定帐号的密码.而可用userdel删除帐号。使用useradd指令所建立的帐号,实际上是保存在/etc/passwd文本文件中。
常用参数:
-c, --comment COMMENT ,新账户的备注字段,会保存在passwd的备注栏中
-d, --home-dir HOME_DIR,指定新账户的主目录,是用户登录时的启动目录
-D, --defaults,显示或更改默认的 useradd 配置
-e, --expiredate EXPIRE_DATE,新账户的有效时长
-f, --inactive INACTIVE,缓冲天数,
指定在密码过期后多少天即关闭该帐号
-g, --gid GROUP,新账户主组的名称或 ID
-G, --groups GROUPS,新账户的附加组列表
-h, --help,显示此帮助信息并推出
-K, --key KEY=VALUE,不使用 /etc/login.defs 中的默认值
-l, --no-log-init,不要将此用户添加到最近登录和登录失败数据库
-m, --create-home,创建用户的主目录,会创建在/home下
-M, --no-create-home,不创建用户的主目录
-N, --no-user-group,不创建同名的组
-o, --non-unique,允许使用重复的 UID 创建用户
-p, --password PASSWORD,加密后的新账户密码
-r, --system,创建一个系统账户
-s, --shell SHELL,新账户的登录 shell
-u, --uid UID,新账户的用户 ID
-U, --user-group,创建与用户同名的组
用例:
1.添加一般用户
useradd test
新添加的用户的家目录在/home/test下,并没有设置登录密码,默认的shell类型是bash shell
2.为添加的用户test指定相应的用户组(root)和附加组(wheel)
useradd -g root -G wheel test
3.创建一个系统用户并设置不能进行登录且不创建家目录:
useradd -s /sbin/nologin -M -r -c "this is a test" test
可以看到并没有创建家目录/home/test
4.指定用户的家目录和shell类型
useradd -d /tmp/test -s /bin/bash test
5.创建用户并指定id
useradd -u 666 test
2.userdel:删除用户
-h, --help,显示此帮助信息并推出
-r, --remove,删除主目录和邮件池,正常情况下删除用户的时候并不删除用户的主目录和邮件池
用例:
1.删除用户
userdel test
删除用户前:
删除用户后:
可以看到,用户被删除后,用户原有的文件的属主属组都用id号替代了。
而且此时如果添加一个新用户,这个用户的id恰好是503,那么原来属于tmp用户的文件就会变成新用户tt的,是可以被更改的,而这种情况对于用户管理来说并不好,所以在删除用户的时候一定要注意遗留文件的处理。
2.删除用户同时删除主目录和邮件池
注意:一般情况下要先查看一下要删除的用户主目录和邮件池是否还有一些有用的文件
userdel -r test
3.usemod:更改用户属性
-c, --comment 注释,更改注释字段
-d, --home HOME_DIR ,用户的新主目录
-e, --expiredate EXPIRE_DATE,设定帐户过期的日期为 EXPIRE_DATE
-f, --inactive INACTIVE ,过期 INACTIVE 天数后,设定密码为失效状态
-g, --gid GROUP ,强制使用 GROUP 为新主组
-G, --groups GROUPS,新的附加组列表GROUPS
-a, --append GROUP,将用户追加至上边 -G 中提到的附加组中,
并不从其它组中删除此用户
-h, --help,显示此帮助信息并推出
-l, --login LOGIN,新的登录名称
-L, --lock,锁定用户帐号
-m, --move-home,将家目录内容移至新位置 (仅于 -d 一起使用)
-o, --non-unique,允许使用重复的(非唯一的) UID
-p, --password PASSWORD,将加密过的密码 (PASSWORD) 设为新密码
-s, --shell SHELL,该用户帐号的新登录 shell
-u, --uid UID,用户帐号的新 UID
-U, --unlock,解锁用户帐号
用例:
usemod的参数与useradd基本相同,就不再介绍了
4.passwd:设置用户密码
-k, --keep-tokens,保持身份验证令牌不过期
-d, --delete,删除已命名帐号的密码(只有根用户才能进行此操作)
-l, --lock,锁定指名帐户的密码(仅限 root 用户),停止账户使用
-u, --unlock,解锁指定账户的密码(仅限 root 用户)
-e, --expire,终止指定帐户的密码(仅限 root 用户)
-f, --force,强制执行操作
-x, --maximum=DAYS,密码的最长有效时限(只有root用户才能进行此操作)
-n, --minimum=DAYS,密码的最短有效时限(只有root用户才能进行此操作)
-w, --warning=DAYS,在密码过期前多少天开始提醒用户(只有root用户才能进行此操作)
-i, --inactive=DAYS,当密码过期后经过多少天该帐号会被禁用(只有root用户才能进行此操作)
-S, --status,报告已命名帐号的密码状态(只有root用户才能进行此操作)
--stdin,从标准输入读取令牌(只有root用户才能进行此操作)
用例:
1.查看用户密码状态
passwd -S test
可以看到,新创建还未设置密码的用户test的密码状态是锁定的
给用户设置密码后,用户密码状态:
可以看到,状态已经改变,密码使用的是sha512进行的加密存储
2.无交互设置用户密码
echo "password" | passwd --stdin test
3.删除用户密码
passwd -d test
5.groups:显示用户所在组
显示每个输入的用户名所在的全部组,如果没有指定用户名则默认为当前进程用户(当用户组数据库发生变更时可能导致差异)。
用例:
- groups
groups test
groups root
6.groupadd:添加用户组
常用参数:
-f, --force,如果组已经存在则成功退出,
并且如果 GID 已经存在则取消 -g
-g, --gid GID,为新组使用 GID
-h, --help,显示此帮助信息并退出
-K, --key KEY=VALUE,不使用 /etc/login.defs 中的默认值
-o, --non-unique,允许创建有重复 GID 的组
-p, --password PASSWORD,为新组使用此加密过的密码
-r, --system,创建一个系统账户
用例:
1.添加新用户组并指定组id
groupadd -g 666 test
7.groupmod:改变用户组参数
常用参数:
-g, --gid GID,将组 ID 改为 GID
-h, --help,显示此帮助信息并推出
-n, --new-name NEW_GROUP,改名为 NEW_GROUP
-o, --non-unique,允许使用重复的 GID
-p, --password PASSWORD,将密码更改为(加密过的) PASSWORD
这个跟用户组创建使用的参数相似,就不再介绍了
8.groupdel:删除用户组
用例:
groupdel test
9.groupmems:用户组管理
用法:groupmems [选项] [动作]
选项:
-g, --group groupname,更改组 groupname,而不是用户的组(只 root)
-R, --root CHROOT_DIR,chroot 到的目录
动作:
-a, --add username,将用户 username 添加到组成员中
-d, --delete username,从组的成员中删除用户 username
-h, --help,显示此帮助信息并推出
-p, --purge,从组中移除所有成员
-l, --list,列出组中的所有成员
用例:
1.将用户tt添加到用户组test中
groupmems -g test -a tt
2.列出用户组test中的用户
groupmems -g test -l
3.从组中移除所有成员
备注:这个测试了一下,好像效果有些不太理想
首先tt用户默认的是tt组,然后测试把用户test加入到tt组,但是列出tt组中用户只显示了test