- useradd testuser 创建的用户 testuser 说明: 新创建的用户会在 /home 下创建一个用户目录 testuser
- passwd testuser 给已创建的用户 testuser 设置密码
- usermod –help 修改用户这个命令的相关参数
- userdel testuser 删除用户 testuser
创建用户 useradd
- 作用
useradd 或 adduser 命令用来建立用户帐号和创建用户的起始目录, 使用权限是超级用户。
- 格式
useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name
- 主要参数
-c: 加上备注文字, 备注文字保存在passwd的备注栏中。
-d: 指定用户登入时的主目录, 替换系统默认值/home/<用户名>
-D: 变更预设值。
-e: 指定账号的失效日期, 日期格式为MM/DD/YY, 例如06/30/12。缺省表示永久有效。
-f: 指定在密码过期后多少天即关闭该账号。如果为0账号立即被停用;如果为-1则账号一直可用。默认值为-1.
-g: 指定用户所属的群组。值可以使组名也可以是GID。用户组必须已经存在的, 期默认值为100, 即users。
-G: 指定用户所属的附加群组。
-m: 自动建立用户的登入目录。
-M: 不要自动建立用户的登入目录。
-n: 取消建立以用户名称为名的群组。
-r: 建立系统账号。
-s: 指定用户登入后所使用的shell。默认值为/bin/bash。
-u: 指定用户ID号。该值在系统中必须是唯一的。0~499默认是保留给系统用户账号使用的, 所以该值必须大于499。
- 应用实例
建立一个新用户账户 testuser1
, 并设置 uid 为 544, 主目录为 /usr/testuser1, 属于 users 组
useradd -u 544 -d /usr/testuser1 -g users -m testuser1
加 -m
如果主目录不存在则自动创建
- 例子
使用管理员账号登陆系统, 建立用户 tmp_3452
密码 3sdt5:Eawhg
# 添加用户命令
adduser tmp_3452
# 修改密码命令
passwd tmp_3452
在系统出现提示输入密码是输入密码: 3sdt5:Eawhg
系统提示输入确认密码后再输入一次。OK 添加成功。
useradd 批量添加用户
使用 useradd 时, 如果后面不添加任何参数选项, 例如: sudo useradd test
创建出来的用户将是默认 三无 用户: 一无 Home Directory, 二无密码, 三无系统 Shell
步骤如下
-
建立用户名列表文件 username.txt
-
创建用户密码对应文件 serc.txt, 格式为 username:password
stu1:tt1
stu2:tt2
stu3:tt3
stu4:tt4
stu5:tt5
stu6:tt6
- 批量添加的脚本文件 batch_useradd.sh
# 添加用户, 并且在 /home/ 下为用户生成用户目录
# 批处理模式下更新密码
cat < username.txt | xargs -n 1 useradd -m
# 将上述的密码转换到密码文件和组文件
chpasswd < serc.txt
# 结束验证信息
pwconv
echo "OK 新建完成"
- 执行该脚本文件, 查看执行过程
sh batch_useradd.sh
新建完成 useradd
命令, 在执行没有出错的情况下, 不会输出任何的信息, 不会与用户交互。
但是用户必须要记住那些设置项目, 否则添加的用户可能出现一些预想不到的结果。
创建用户并设置密码
adduser ${ANUSER} -m
echo "${ANUSER}:${ANPASS}" | chpasswd
# 快速修改root 密码, 忽略密码规则
echo root:abc123 | sudo chpasswd root
修改用户 usermod
新创建一个 oracle 用户, 这初始属于 oinstall 组, 且同时让他也属于 dba 组
useradd oracle -g oinstall -G dba
将一个用户添加到用户组中, 千万不能直接用. 这样做会使你离开其他用户组, 仅仅做为 这个用户组 sftp 的成员
usermod -G sftp
将用户 docker 加入到 sftp 组, 用户和组均存在
usermod -a -G sftp docker
创建用户 tomcat 使其无法使用 shell, 且其用户目录至 /var/servlet/service
useradd tomcat -d /var/servlet/service -s /sbin/nologin
禁止登录系统,要修改一个已经存在的用户, 执行这个命令
usermod -s /sbin/nologin <username>
对新用户, 可以使用这个命令
useradd -s /sbin/nologin <new username>
/bin/false
是最严格的禁止 login 选项, 一切服务都不能用。而 /sbin/nologin
只是不允许 login 系统, 但可以使用其他 ftp 等服务。
Access to the server over SSH:
/bin/sh
/bin/bash
/sbin/nologin
/bin/tcsh
/bin/csh
/bin/ksh
/bin/bash (chrooted)
/bin/rbash
删除用户 userdel
删除刚创建的账号 tmp_3452
删除用户命令
userdel tmp_3452
或者连同用户目录一并删除
userdel -f tmp_3452
注意: 这里如果用户还在登陆的话, 会提示 用户正在登陆无法删除。此时可能需要先强制用户退出。
强制退出已经登陆用户
查看当前登陆用户的命令
[root@ptr228 ~]# w
会输入如下结果
12:10:27 up 21:13, 1 user, load average: 0.00, 0.01, 0.08
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 ***.**.***.** 11:33 0.00s 0.08s 0.00s w
tmp_3254 ps1 ***.**.***.** 11:33 0.00s 0.08s 0.00s ls
这里知道了登陆用户的 tty 是 ps1 执行强制退出命令 pkill
# pkill -kill -t [TTY]
[root@ptr228 ~]# pkill -kill -t ps1
执行之后再执行名 w
可以看到用户已经退出。
重复执行删除用户命令, 删除成功。
原文
linux命令useradd添加用户详解
What is the difference between bin/sh, bin/bash, sbin/nologin, bin/tcsh, etc? [closed]