GVKun编程网logo

Linux 命令 ---useradd(linux命令useradd怎么用)

3

在本文中,我们将带你了解Linux命令---useradd在这篇文章中,我们将为您详细介绍Linux命令---useradd的方方面面,并解答linux命令useradd怎么用常见的疑惑,同时我们还将

在本文中,我们将带你了解Linux 命令 ---useradd在这篇文章中,我们将为您详细介绍Linux 命令 ---useradd的方方面面,并解答linux命令useradd怎么用常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的**useradd。sh** 批量添加 100 个用户、/bin/sh: useradd: 在使用 Alpine 运行 RUN useradd 应用程序时未找到、7.1 useradd:创建用户、adduser 与 useradd 的区别

本文目录一览:

Linux 命令 ---useradd(linux命令useradd怎么用)

Linux 命令 ---useradd(linux命令useradd怎么用)

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。

4. 说明

  useradd 可用来建立用户账号,它和 adduser 命令是相同的。账号建好之后,再用 passwd 设定账号的密码。使用 useradd 命令所建立的账号,实际上是保存在 /etc/passwd 文本文件中。

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) 执行该脚本文件,查看执行过程

root@liu:/home/liu/Desktop/Dos# sh aa.sh

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

 

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

#useradd oracle -g oinstall -G dba

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

 

9. 无法使用 shell,且其用户目录至 /var/servlet/service

#useradd tomcat  -d /var/servlet/service -s /sbin/nologin

无法使用 shell,且其用户目录至 /var/servlet/service


二,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 可以看到用户已经退出。

重复执行第二步的删除用户命令,删除成功。

 

**useradd。sh** 批量添加 100 个用户

**useradd。sh** 批量添加 100 个用户

useradd 100 。sh

#!/bin/bash
#useradd.sh
i=1

while [ $i -le 5 ]
do
useradd user$i &>/dev/null
echo ''123456'' | passwd --stdin user$i &>/dev/null
i=$(($i+1))



done

userdel 100 。sh

#!/bin/bash
#userdel.sh
i=1

while [ $i -le 5 ]
do
userdel -r user$i
i=$(($i+1))


done

/bin/sh: useradd: 在使用 Alpine 运行 RUN useradd 应用程序时未找到

/bin/sh: useradd: 在使用 Alpine 运行 RUN useradd 应用程序时未找到

如何解决/bin/sh: useradd: 在使用 Alpine 运行 RUN useradd 应用程序时未找到

嘿伙计们,你能检查一下我的 Dockerfile 有什么问题吗?我要了

  1. /bin/sh: useradd: not found
  2. The command ''/bin/sh -c useradd app'' returned a non-zero code: 127
  1. # Dockerfile
  2. FROM node:12.13.0-alpine
  3. RUN mkdir -p /opt/app
  4. workdir /opt/app
  5. RUN useradd app
  6. copY addressbook/ .
  7. RUN npm install
  8. RUN chown -R app:app /opt/app
  9. USER app
  10. EXPOSE 3000
  11. CMD [ "npm","run","pm2" ]

7.1 useradd:创建用户

7.1 useradd:创建用户

7.1 useradd:创建用户

1 使用useradd 常规添加用户工作原理流程

    在使用useradd命令时,若不加任何参数选项,后面直接跟所添加的用户名,那么系统首先会读取/etc/login.defs(用户定义文件)和/etc/default/useradd(用户默认配置文件)文件中所定义的参数和规则,然后根据所设置的规则添加用户,同时还会向/etc/passwd(用户文件)和/etc/group(组文件)文件内添加新用户和新用户组记录,向/etc/shadow(用户密码文件)和/etc/gshadow(组密码文件)文件里添加新用户和组对应的密码信息的相关记录。同时系统还会根据/etc/default/useradd文件所配置的信息建立用户的家目录,并将/etc/skel中的所有文件(包括隐藏的环境配置文件)都复制到新用户的家目录中。
 

2 useradd不加选项-D的参数选项及说明

-c comment         新用户password文件中的说明栏(冒号分隔后的第五列)
-d home_dir        新用户每次登入时所使用的家目录
-e expire date     用户终止日期。日期的指定格式为YYYY-MM-DD
-f inactive_days   用户过期几日后永久停权。当值为0时用户立即被停权,而当值为-1时则关闭此功能,预设值为-1
-g initial_group   指定用户对应的用户组。用户组名必须为系统现已存在的名称
-G group,[...]     定义此用户为多个不同组的成员。每个用户组使用逗号(,)分隔。用户组名同-g选项的限制。默认值为用户的起始用户组
-m                 用户目录如不存在则自动建立
-M                 不建立用户家目录,优先于/etc/login.defs文件设定。创建虚拟用户时一般不需要建立家目录,部署应用服务时则需要创建虚拟用户
-n                 默认情况下用户的用户组与用户的名称是相同的。如果命令添加了-n参数,就不会生成与用户同名的用户组了
-r                 此参数是用来建立系统用户的。系统用户的UID会比定义在系统档上/etc/login.defs的UID_MIN要小。注意此用法下useradd所建立的用户不会建立用户家目录,也不会在乎记录在/etc/login.defs.中的定义值。如果需要用户家目录必须额外指定-m参数来建立系统用户。这是Red Hat额外增设的选项
-s shell          用户登入后使用的Shell名称。默认值为不填写,这样系统会帮助指定预设的登入Shell(根据/etc/default/useradd预设的值)
-u uid            用户的ID值。这个值必须是唯一的,除非用-o选项。数字不可为负值

3 useradd 加 -D 选项参数说明:改变新建用户的预设值

当执行useradd带-D参数时,可以更改新建用户的默认配置值(/etc/default/useradd)或者由命令行编辑文件更改预设值。可简单理解该参数(-D)就是用于修改/etc/default/useradd配置文件的内容的,若这个文件的内容被修改,则添加新用户不加参数时默认值就会从该/etc/default/useradd中读取。
 
useradd命令的-D参数选项说明。
-b default_home            定义用户家目录的基本目录,当用户家目录不存在时,此目录将作为家目录生效
-e default_expire_date     用户账号停止日期,格式为YYYY-MM-DD,同useradd的-e参教
-f default_inactive        用户过期几日后停权。同useradd的-f参数
-g defaul_group            新用户起始用户组名或ID。用户组名必须为现已存在的名称。用户组ID也必须为现已存在的用户组。同useradd的-g参数
-s default_shell           用户登入后使用的Shell名称。修改后新加入的用户都将使用此Shell类型,同useradd -s参数
 

不加任何参数添加用户的例子

[root@cs6 ~]# useradd ett
[root@cs6 ~]# ls -ld /home/ett/
drwx------. 2 ett ett 4096 5月  12 01:15 /home/ett/
●提示:创定用户的同时还会创建一个与用户名相同的用户组。
在这个例子中,我们添加了一个名为ett的系统用户,当查看/home/目录时,会发现系统自动建立了一个ett的目录,其就是用户登入后的起始目录,即家目录。
下面再来查看/etc/passwd文件中有关新用户ett的记录:
 
[root@cs6 ~]# grep -w ett /etc/passwd
ett:x:500:500::/home/ett:/bin/bash
从上文过滤出的ett用户记录来看,用户的UID和GID分别为500,并且ett的家目录为/home/ett,所对应的Shell是/bin/bash。
[root@cs6 ~]# grep -w ett /etc/shadow
ett:!!:18027:0:99999:7:::            #<==虽然没有创建密码,但是密码文件还是会增加一行相关信息。
[root@cs6 ~]# grep -w ett /etc/group
ett:x:500:                #<==创建用户时,默认会创建与用户同名的用户组,并体现在用户组配置文件中。
[root@cs6 ~]# grep -w ett /etc/gshadow
ett:!::                    #<==组密码文件中也会有一行相关记录。

    这里我们还可以查看/etc/default/useradd和/etc/login.defs两个文件的规则,看一下ett用户的增加是否符合这两个配置文件预设的值。最后还可以查看/home/ett目录下的文件,是否与/etc/skel目录中的一样。

useradd的-g、-u参数,执行useradd[参数]username 添加用户

[root@cs6 ~]# groupadd -g 801 sa 
[root@cs6 ~]# useradd -g sa -u 901 lewen
[root@cs6 ~]# id lewen
uid=901(lewen) gid=801(sa) 组=801(sa)

useradd的-M、-s参数的例子

[root@cs6 ~]# useradd -M -s /sbin/nologin kevin
[root@cs6 ~]# ls -ld /home/kevin
ls: 无法访问/home/kevin: 没有那个文件或目录
[root@cs6 ~]# grep -w kevin /etc/passwd
kevin:x:902:902::/home/kevin:/sbin/nologin

useradd的-c、-u、-G、-s、-d、-m、-e、-f等多个参数组合的综合例子。

[root@cs6 ~]# useradd -u 806 -s /bin/sh -c SysUser -G root,sa -e "2019/07/12" -f 2 -d /tmp/inca inca
[root@cs6 ~]# id inca
uid=806(inca) gid=806(inca) groups=806(inca),0(root),801(sa)
[root@cs6 ~]# tail -1 /etc/passwd
inca:x:806:806:SysUser:/tmp/inca:/bin/sh
 
/etc/passwd文件行中inca的用户信息说明
inca   |x        |:806    |:1002    |:SysUser |:/tmp/inca|:/bin/sh
账号名称|:账号密码|:账号UID|:账号组GID|:用户说明|:用户家目录|:shell解释器
 
[root@cs6 ~]# chage -l inca
Last password change                    : May 11, 2019
Password expires                    : never
Password inactive                    : never
Account expires                        : Jul 12, 2019
Minimum number of days between password change        : 0
Maximum number of days between password change        : 99999
Number of days of warning before password expires    : 7
[root@cs6 ~]# tail -1 /etc/shadow
inca:!!:18027:0:99999:7:2:18089:    #<==带底纹的数字2即用户过期停权的结果(一f参数)
 
更改字符变量
[root@cs6 ~]# cat /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
[root@cs6 ~]# sed -i ''s/zh_CN/en_US/g'' /etc/sysconfig/i18n
[root@cs6 ~]# cat /etc/sysconfig/i18n
LANG="en_US.UTF-8"
[root@cs6 ~]# source /etc/sysconfig/i18n

 

useradd -D参数的使用说明及案例实践

[root@cs6 ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100              #<==依赖于/etc/login.defs 的 USERGROUPS_ENAB参数,如果为no,则此处控制。
HOME=/home             #<==把用户的家目录建在/home中。
INACTIVE=-1            #<==是否启用用户过期停权,-1表示不启用。
EXPIRE=                #<==用户终止日期,不设置表示不启用。
SHELL=/bin/bash        #<==新用户默认所用的Shel1类型。
SKEL=/etc/skel         #<==配置新用户家目录的默认文件存放路径。前文提到的/etc/skel,就是在这里配置生效的,即当我们用useradd添加用户时,用户家目录下的文件,都是从这里配置的目录中复制过去的。
CREATE_MAIL_SPOOL=yes  #<==创建mail文件。
 
 
[root@cs6 ~]# egrep -v ''^$|#'' /etc/login.defs
MAIL_DIR    /var/spool/mail
PASS_MAX_DAYS    99999
PASS_MIN_DAYS    0
PASS_MIN_LEN    5
PASS_WARN_AGE    7
UID_MIN              500
UID_MAX            60000
GID_MIN              500
GID_MAX            60000
CREATE_HOME    yes
UMASK           077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
 
修改实践:
 
[root@cs6 ~]# cp /etc/default/useradd{,.bark}
[root@cs6 ~]# useradd -D -s /bin/sh
[root@cs6 ~]# diff /etc/default/useradd{,.bark}
6c6
< SHELL=/bin/sh
---
> SHELL=/bin/bash
[root@cs6 ~]# useradd -D -e "2019/7/12"
[root@cs6 ~]# diff /etc/default/useradd{,.bark}
5,6c5,6
< EXPIRE=2019/7/12
< SHELL=/bin/sh
---
> EXPIRE=
> SHELL=/bin/bash
[root@cs6 ~]#
[root@cs6 ~]# useradd zuma
[root@cs6 ~]# tail -1 /etc/passwd
zuma:x:903:903::/home/zuma:/bin/sh
[root@cs6 ~]# chage -l zuma
Last password change                    : May 11, 2019
Password expires                    : never
Password inactive                    : never
Account expires                        : Jul 12, 2019
Minimum number of days between password change        : 0
Maximum number of days between password change        : 99999
Number of days of warning before password expires    : 7
 
 
[root@cs6 ~]# \cp /etc/default/useradd{.bark,}     #<==练习完后还原系统默认的配置文件。
useradd -D的功能完全可以使用vim /etc/default/useradd编辑修改后来替代
 

 

adduser 与 useradd 的区别

adduser 与 useradd 的区别

问题:使用 useradd 创建用户,发现 /home 目录下没有自动创建关于用户的目录。所以做了一番调查研究

 

useradd 是一个 linux 命令,但是它提供了很多参数在用户使用的时候根据自己的需要进行设置;
adduser 是一个 perl 脚本,在使用的时候会出现类似人机交互的界面,提供选项让用户填写和选择,这个命令比起 useradd 来说比较简单,也比较傻瓜。

 

一. adduser 的使用详解

在使用 adduser 命令的时候,系统会添加这个用户名,并且还会自动地创建与这个用户名名字一样的用户组作为这个用户的初始用户组。此外,还会自动地在 /home 目录下面创建一个与用户同名的目录,接着执行 "cp /etc/skel/home / 用户名" 的操作,实现新增用户的主目录的初始化。
用 adduser 这个命令创建的账号是系统账号,可以用来登录到我们的 ubuntu 系统。

# adduser git
Adding user `git'' ...
Adding new group `git'' (1004) ...
Adding new user `git'' (1004) with group `git'' ...
Creating home directory `/home/git'' ...
Copying files from `/etc/skel'' ...
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
Changing the user information for git
Enter the new value, or press ENTER for the default
        Full Name []: 
        Room Number []: 
        Work Phone []: 
        Home Phone []: 
        Other []: 
Is the information correct? [Y/n] y

# ls /home
git

# grep git /etc/passwd
git:x:1004:1004:,,,:/home/git:/bin/bash

 

二.useradd 的使用详解
useradd 有大量的参数供我们进行个性化设置。useradd 的参数如下:
-c 备注 加上备注。并会将此备注文字加在 /etc/passwd 中的第 5 项字段中
-d 用户主文件夹。指定用户登录所进入的目录,并赋予用户对该目录的的完全控制权
-e 有效期限。指定帐号的有效期限。格式为 YYYY-MM-DD,将存储在 /etc/shadow
-f 缓冲天数。限定密码过期后多少天,将该用户帐号停用
-g 主要组。设置用户所属的主要组
-G 次要组。设置用户所属的次要组,可设置多组
-M 强制不创建用户主文件夹
-m 强制建立用户主文件夹,并将 /etc/skel/ 当中的文件复制到用户的根目录下
-p 密码。输入该帐号的密码
-s shell。用户登录所使用的 shell
-u uid。指定帐号的标志符 user id,简称 uid
useradd 这个命令创建的是普通账号,并不能用来登录系统。

# useradd git  -g git -p 123 // (默认的组是root,可以指定组。密码需要指定参数-p,否则密码为空;)
  // 当使用参数"-m"的时候,系统会自动地在/home目录下建立一个与新建用户同名的用户主文件夹;如果不使用"-m"的话,那么就默认是使用“-M”参数,不创建主文件夹
# passwd git Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully # ls /home //(home目录下不会自动创建git目录) #grep git /etc/passwd git:x:1004:1004::/home/git:

 

关于Linux 命令 ---useraddlinux命令useradd怎么用的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于**useradd。sh** 批量添加 100 个用户、/bin/sh: useradd: 在使用 Alpine 运行 RUN useradd 应用程序时未找到、7.1 useradd:创建用户、adduser 与 useradd 的区别等相关知识的信息别忘了在本站进行查找喔。

本文标签: