Linux: 帐号管理(一):基本帐号管理
基本帐号管理的命令有:
useradd, userdel, usermod, passwd 等。本文就这四个命令讨论。
1 useradd 命令:
useradd 同 adduser。其功能是创建新的用户账户。
- 使用者身份
- root
- 拥有 sudo 权限的普通用户使用 sudo 命令进行操作
- root
- 命令格式
useradd [-hlmnorMNUZ] [-options OPTIONS] user_name
- 参数:
-b --base-dir BASE_DIR: base dir of the home dir : 建立的用户 home 目录的父目录,与 -d 参数同时出现时会被 -d 参数屏蔽。 -c --comment COMMENTS: 创建新用户时对新用户的描述 -d --home-dir HOME_DIR: home dir: 指定新用户的 home 目录,默认为 /home/username 目录 -D --defaults: 显示 useradd 命令的默认参数 -e --expiredate ESPIER_DTAE: 用户名失效日期(仍可以使用) -f --inactive INACTIVE: 用户名失效后指定天数内完全禁用 -g --gid GROUP: 指定新用户默认的群组(后接群组名或 gid) -G --groups GROUPS: 指定新用户加入的群组(所支持的群组) -h --help: 显示帮助信息 -k --skel SKEL_DIR: 创建 home 目录下子目录的参考目录。即在 home 目录下出现的目录均以该目录下的目录为模板 -K --key KEY=VALUE: 在创建新用户时,使用指定的 KEY 值暂时屏蔽掉 /etc/login.defs 中预设的值 -l --no-log-init: -m --create-home: 创建 home 目录,默认参数 -M --no-create-home: 不创建 home 目录 -n : -N --no-user-group: 不创建新用户同名的群组(默认是创建的) -o --non-unique: -p --password PASSWORD: 新用户的密码 -r --system: 创建系统用户(uid 较小) -s shell SHELL: 指定新用户的 shell 类型,一般包括 /bin/bash, /bin/sh, /sbin/nologin, /bin/dash, /bin/tcsh, /bin/csh -u uid UID: 指定新用户的 uid,一般大于 500(实际上是大于文件 /etc/login.defs 中定义的 UID_MIN 的值,比这个值小的 UID 作为系统保留)。 -U --user-group: 创建与新用户同名的群组(默认的参数,与 -N 参数作用相反) -Z --selinux-user SEUSER:
- 常用的参数:
-[dgGMprsu]
- 不可同时使用的参数:
-m -M, -N -U, 这两对参数的意义截然相反,不可能同时出现。
- 类似参数比较:
- -g 与 -G:
- -g 参数指定新用户的有效群组。这个用户所创建的文件,默认都是该群组。默认的情况下,该群组与新用户同名。
- 而 -G 参数后面可以跟一个或多个群组,这些群组都是新用户所支持的群组,属于该群组的文件,新用户都有群组权限。
- -g 参数指定新用户的有效群组。这个用户所创建的文件,默认都是该群组。默认的情况下,该群组与新用户同名。
- -d 与 -b:
- -d 指定用户创建 home 目录而不是使用默认的 /home/username 这个目录。该目录必定为绝对路径。
- 而 -b 参数指定新用户的 home 目录的父目录,不使用默认的 /home。即新 home 目录为 /BASEDIR/username。同样的,必须为绝对路径。
- -d 指定用户创建 home 目录而不是使用默认的 /home/username 这个目录。该目录必定为绝对路径。
- -d 与 -m: -m 参数表示要创建 home 目录。其实这两个参数一个是标志,一个是实际条件,-d 是在 -m 参数默认或显式成立的前提下的。
- -g 与 -G:
- 其他要注意的事:
- -d 与 -M 参数同时使用的时候,-M 参数会屏蔽掉 -d 参数的功能。
- -d 与 -b 参数同时使用的时候,-d 参数会屏蔽掉 -b 参数的功能。
- -p 参数,目前不知道到底有什么用处。使用该参数给新用户指定密码时,在 /etc/shadow 文件中密码是明文显示的,且切换用户时,密码并不可用,提示 incorrect password.
- -s 后接 /sbin/nologin 表示新用户不可用于登录系统
- -d 与 -M 参数同时使用的时候,-M 参数会屏蔽掉 -d 参数的功能。
2 userdel 命令:
userdel 命令是 useradd 命令的逆。其功能是删除指定的用户账户以及其 home 目录。
- 使用者身份
- root
- 拥有 sudo 权限的普通用户使用 sudo 命令进行操作
- root
- 命令格式
userdel [-fhrZ] user_name
- 参数:
-f: 强制删除文件,暂时不知道这个参数的作用。 -h --help: 显示帮助信息 -r: 删除 home 目录: 最常用的参数了,删除掉要删除的用户的 home 目录,以及目录下的所有文件。这是一个强制行为,在 home 目录下的文件,不管属主是谁,都将被删除,即使是 root 的文件 -Z: 删除 SELINUX 用户
3 usermod 命令:
这个命令的主要作用在于修改已建立的用户的一些属性。其大部分参数与 useradd 命令相同,功能也相同。当然,也有不同的参数。
- 使用者身份
- root
- 拥有 sudo 权限的普通用户使用 sudo 命令进行操作
- root
- 命令格式
usermod [-hlmoLUZ] [-options OPTIONS] user_name
- 参数:
-c --comment COMMENT: 功能同 useradd -d --home HOME_DIR: 功能同 useradd -e --expiredate EXPIRE_DATE: 功能同 useradd -f --inactive INCATIVE: 功能同 useradd -g --gid GROUP: 功能同 useradd -G --groups GROUPS: 功能同 useradd -a --append : 与 -G 参数同时使用,添加该用户到 -G 指定的群组作为支持群组,并且不从已设定的支持群组中删除 -h --help: -l --login NEW_LOGIN: -L --lock 锁定账号(除 root 用户外,其他用户不能切换到该用户) -m --mv-home: -o --non-unique: -p --password PASSWORD: 功能同 useradd -s --shell SHELL: 功能同 useradd -u --uid UID: 功能同 useradd -U --unlock: 解锁帐号 -Z --selinux-user:
4 passwd 命令:
passwd 命令的功能:最基本的功能是修改用户的 password。但是,还有一些额外的功能,如锁定指定用户的密码、删除指定用户的密码、设置密码的有效期等功能。
- 使用者身份
- root
- 普通用户
- root
- 命令格式
passwd [-kdluefS] [-xnwi OPTIONS] [--stdin] [user_name]
- 参数:
-k --keep-tokens: 设置 password 永不过期 -d --delete: 删除指定用户的 password,仅 root 可用 -l --lock: 锁定指定用户的 password, 同 usermod -L, 仅 root 可用 -u --unlock: 解锁指定用户的 password,同 usermod -U, 仅 root 可用 -e --expire: 设定有效期 -f --force: 强制执行操作 -x --maximun=DAYS: password 的最长有效期限,仅 root 可用 -n --minimum=DAYS: password 的最短有效期限,仅 root 可用 -w --warning=DAYS: password 过期前多少天提醒用户,仅 root 可用 -i --inactive=DAYS: password 过期后多少天账户会被禁用,仅 root 可用 -S --status: 打印指定用户的 password 状态,仅 root 可用 --stdin: 从标准输入读取令牌,仅 root 可用
需要注意的是:如果 root 用户使用 passwd 命令对其他用户进行操作,需要指定目标用户。普通用户或 root 用户操作时不指定用户名,默认对自身操作。
浙公网安备 33010602011771号