Linux 添加用户 修改用户 删除用户 | adduser | useradd | usermod | userdel

标签: none

创建用户testuser

  1. useradd testuser 创建的用户testuser 说明:新创建的用户会在/home下创建一个用户目录testuser
  2. passwd testuser 给已创建的用户testuser设置密码
  3. usermod --help 修改用户这个命令的相关参数
  4. userdel testuser 删除用户testuser

1.作用
useradd或adduser命令用来建立用户帐号和创建用户的起始目录,使用权限是超级用户。

2.格式

useradd [-d home] [-s shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p passwd] [-r] name

3.主要参数

  -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。

5.应用实例

建立一个新用户账户testuser1,并设置UID为544,主目录为/usr/testuser1,属于users组:

#useradd -u 544 -d /usr/testuser1 -g users -m testuser1

加-m 如果主目录不存在则自动创建

6.例

使用管理员账号登陆系统,建立用户tmp_3452 密码3sdt5:Eawhg
添加用户命令:

[root@ptr228 ~]# adduser tmp_3452
修改密码命令:
[root@ptr228 ~]# passwd tmp_3452

在系统出现提示输入密码是输入密码:3sdt5:Eawhg 系统提示输入确认密码后再输入一次。OK添加成功。

7.useradd批量添加用户

使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统Shell。

步骤如下:

(1)建立用户名列表文件username.txt (同上)
(2)创建用户密码对应文件serc.txt,格式为username:password (注意文件的格式)

stu1:tt1
stu2:tt2
stu3:tt3
stu4:tt4
stu5:tt5
stu6:tt6

(3)批量添加的脚本文件aa.sh

##添加用户,并且在/home/ 下为用户生成用户目录。
cat < username.txt | xargs -n 1 useradd -m  ##批处理模式下更新密码
chpasswd < serc.txt  ##将上述的密码转换到密码文件和组文件
pwconv  ##结束验证信息
echo "OK 新建完成"

(4)执行该脚本文件,查看执行过程

# sh aa.sh

新建完成 useradd 命令,在执行没有出错的情况下,不会输出任何的信息,不会与用户交互。
但是用户必须要记住那些设置项目,否则添加的用户可能出现一些预想不到的结果。

创建用户并设置密码

adduser ${ANUSER} -m
echo "${ANUSER}:${ANPASS}" | chpasswd

# 快速修改root 密码, 忽略密码规则
echo root:abc123 |sudo chpasswd root

8.新创建一个oracle用户,这初始属于oinstall组,且同时让他也属于dba组。

#useradd oracle -g oinstall -G dba

新创建一个oracle用户,这初始属于oinstall组,且同时让他也属于dba组。

将一个用户添加到用户组中, 千万不能直接用.这样做会使你离开其他用户组, 仅仅做为 这个用户组 sftp 的成员

usermod -G sftp

将用户docker 加入到sftp组,用户和组均存在

usermod -a -G sftp docker

9.无法使用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
删除用户命令:

[root@ptr228 ~]# userdel tmp_3452

或者连同用户目录一并删除:

[root@ptr228 ~]# userdel -f tmp_3452

注意:这里如果用户还在登陆的话,会提示,用户正在登陆无法删除。此时可能需要先强制用户退出。

3. 强制退出已经登陆用户

查看当前登陆用户的命令:

[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]


扫描二维码,在手机上阅读!

添加新评论