在本文中,我们将带你了解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怎么用)
- **useradd。sh** 批量添加 100 个用户
- /bin/sh: useradd: 在使用 Alpine 运行 RUN useradd 应用程序时未找到
- 7.1 useradd:创建用户
- adduser 与 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## 批处理模式下更新密码 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 |
这里知道了登陆用户的 tty 是 ps1 执行强制退出命令 pkill:
命令原型: pkill -kill -t [TTY]
代码如下 | 复制代码 |
[root@ptr228 ~]# pkill -kill -t ps1 |
执行之后再执行名 w 可以看到用户已经退出。
重复执行第二步的删除用户命令,删除成功。
**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 应用程序时未找到
嘿伙计们,你能检查一下我的 Dockerfile 有什么问题吗?我要了
/bin/sh: useradd: not found
The command ''/bin/sh -c useradd app'' returned a non-zero code: 127
# Dockerfile
FROM node:12.13.0-alpine
RUN mkdir -p /opt/app
workdir /opt/app
RUN useradd app
copY addressbook/ .
RUN npm install
RUN chown -R app:app /opt/app
USER app
EXPOSE 3000
CMD [ "npm","run","pm2" ]
7.1 useradd:创建用户
7.1 useradd:创建用户
1 使用useradd 常规添加用户工作原理流程
2 useradd不加选项-D的参数选项及说明
3 useradd 加 -D 选项参数说明:改变新建用户的预设值
不加任何参数添加用户的例子
[root@cs6 ~]# useradd ett
[root@cs6 ~]# ls -ld /home/ett/
drwx------. 2 ett ett 4096 5月 12 01:15 /home/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:!:: #<==组密码文件中也会有一行相关记录。
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 的区别
问题:使用 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 命令 ---useradd和linux命令useradd怎么用的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于**useradd。sh** 批量添加 100 个用户、/bin/sh: useradd: 在使用 Alpine 运行 RUN useradd 应用程序时未找到、7.1 useradd:创建用户、adduser 与 useradd 的区别等相关知识的信息别忘了在本站进行查找喔。
本文标签: