Linux 中useradd命令的使用

     Linux 系统中一般都是root用户具备超级权限,超级用户root通常是不须要建立的,然而不少时候root用户不是任何人均可以使用的,毕竟最高权限的用户,任意使用的话,会对系统形成不少没必要要的破坏。那么就须要建立给不一样人建立用户进行Linux系统的访问,或者针对不一样的应用程序使用不一样的用户。这时候有人会说,建立用户很简单啦,不就直接使用useradd 或者adduser就完事啦,确实是这样的,可是就这么简单的一个命令,却有不一样的使用方式或者有不一样的方法来建立用户。下面经过15个案例来看一这个useradd或者adduser的不一样使用方式。web

   因为Linux系统的版本以及操做系统类型不大同样,不一样版本的以及不一样类型的操做系统的命令具体还要参照对应的文档,这里只是简单的使用centos来进行举例。shell

   在Linux系统中执行‘useradd’命令,主要就是完成如下三个过程:centos

  1. 为新建立的用户账户编辑/etc/passwd、/etc/shadow、/etc/group和/etc/gshadow文件。
  2. 为新用户建立用户主目录(home目录)。
  3. 设置用户主目录(home目录)的权限和全部权.

建立用户命令的基本语法是:安全

useradd [options] usernamebash

 在本文中,咱们将向您展现在Linux中最经常使用的15个useradd命令及其实际例子。咱们把这一节从基本用法到高级用法分为两部分微信

  1. 第一部分:主要经过10个例子来展现useradd的基本用法
  2. 第二部分::经过5个例子来展现useradd的高级用户

第一部分:useradd命令的10个基本用法框架

1,如何增长一个用户在Linux中加密

在Linux系统中新增一个用户,可使用useradd或者adduser命令后面加上一个用户名来进行新增。这个用户名是用于系统登陆的,所以这个用户名必须是惟一的,若是系统中已经又或者用户了,就不能进行建立了。spa

例如,增长一个新的用户test1,使用如下命令。操作系统

[root@localhost ~]# useradd test1

当咱们建立完test1用户以后,这个时候用test1用户来进行登陆,登陆不了的,因为该用户咱们不知道用户的密码,登陆不了的,那如何给用户添加密码呢?经过下面命令进行添加。

[root@localhost ~]# passwd test1
Changing password for user test1.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.

用户建立以后默认会把用户自动添加到/etc/passwd文件中, 这个文件用来存储用户的信息。

test1:x:1002:1002::/home/test1:/bin/bash

上面的条目包含一组由7个冒号分隔的字段,每一个字段都有本身的含义。让咱们看看这些字段是什么:

  1. 用户名:用于登陆系统的用户登陆名。长度应该在1到32字符之间。
  2. 密码:以加密格式存储在/etc/shadow文件中的用户密码(或x字符)。
  3. 用户ID (UID):每一个用户必须有一个用户ID (UID)用户标识号。默认状况下,UID 0保留给根用户,1-99之间的UID保留给其余预约义账户。此外,UID的范围从100-999保留系统账户和组。
  4. 组ID (GID):存储在/etc/group文件中的主组ID (GID)组标识号。
  5. 用户信息:该字段是可选的,容许您定义关于用户的额外信息。例如,用户全名。该字段由' finger '命令填充。
  6. 主目录:用户的主目录的绝对位置。
  7. Shell:用户Shell的绝对位置,即/bin/bash。

2,建立一个具备不一样主目录的用户

一般状况下,在Linux操做系统中建立一个用户默认建立用户的目录在home目录下,就好比上面建立的用户主目录就默认就是/home/test1目录。

可是可使用“-d” 可选参数来改变用户的主目录的位置,例如建立一个test2用户在/tempfile/user1.首先这个/tempfile/user1必须是已经在系统建立好的目录也能够是其它目录。

[root@localhost /]# useradd -d /tempfile/user1/ test2

这个时候命令执行成功以后,咱们在回去看一下/etc/passwd 中的目录

[root@localhost /]# cat /etc/passwd | grep test2
test2:x:1003:1003::/tempfile/user1/:/bin/bash

3,建立一个具备不一样主目录的用户

在Linux中,每一个用户都有本身的UID(唯一标识号)。默认状况下,每当咱们在Linux中建立一个新用户账户时,它都会分配用户500、50一、502等等。。。

可是,咱们能够建立用户的自定义用户id与' -u '选项。例如,下面的命令将建立一个用户' test3'与自定义用户id '996 '。

[root@localhost /]# useradd -u 996 test3

接下来让咱们来验证一下,该命令执行成功是否建立了用户id为996的用户test3.

root@localhost /]# cat /etc/passwd |grep test3
test3:x:996:1005::/home/test3:/bin/bash

注意:确保用户ID的值必须与系统中任何其余已建立的用户惟一。

4,建立具备特定组ID的用户

相似地,每一个用户都有本身的GID(组标识号)。咱们还可使用-g选项建立具备特定组ID的用户。

在本例中,咱们将在“-u”和“-g”选项的帮助下同时添加具备特定UID(不存在的用户id)和GID(必须存在的组)的用户“test4”。

[root@localhost~]# useradd -u 1005 -g 1000 test4

执行完以后, 咱们来验证一下,经过查看/etc/passwd文件。

[root@localhost~]# cat /etc/passwd | grep test4

5,将一个用户添加到多个组

使用useradd命令加上“-G”选项将用户添加到其余组。每一个组名由逗号分隔,中间没有空格。

在本例中,咱们将用户“test5”添加到多个组中,如管理员、webadmin和开发人员。

[root@localhost /]# useradd -G webadmin,devloper,dba test5

接下来,使用id命令验证分配给用户的多个组

[root@localhost /]# id test5

6,添加一个没有主目录的用户

在某些状况下,因为一些安全缘由,咱们不但愿为用户分配主目录。在这种状况下,当用户登陆到刚刚从新启动的系统时,其主目录将是根目录。当该用户使用su命令时,其登陆目录将是之前的用户主目录。

若要建立没有主目录的用户目录,则使用' -M '。例如,下面的命令将建立一个没有主目录的用户' test6'。

[root@localhost ~]# useradd -M test6

接下来咱们使用ls命令来验证一下用户test6是否有主目录。

[root@localhost ~]# ls -l /home/test6
ls: cannot access /home/test6: No such file or directory

7,建立一个具备过时时间的用户

默认状况下,当咱们添加用户使用’ useradd‘命令时,用户账户永远不会有过时时间。它们的有效日期被设定为0(意思是从未过时)。

不过,咱们能够用“e”来设置有效期。选项,它将日期设置为yyyy-mm-ddd格式。这有助于为特定时间段建立临时账户。

在这个例子中,咱们建立了一个用户‘test7‘用户到期日为2020年3月21日,格式为yyyy-mm-ddd。

[root@localhost /]# useradd -e 2020-03-21 test7

其次,在设置账户到期日期后,使用“chage”命令为用户“test7”验证账户和密码的年龄。

[root@localhost /]# chage -l test7

8,建立一个具备密码过时时间的用户

useradd命令的‘-f‘参数用于定义密码过时后的天数。当密码过时时,用户账户当即中止活动。默认状况下,将密码过时值设置为-1意味着永不过时。.

在本例中,咱们将为用户设置一个账户密码到期日期,即45天。使用’-e‘和’-f‘选项

[root@localhost /]# useradd -e 2020-03-20 -f 45 test8

9,建立一个自定义注释的用户

useradd命令的‘-c‘选项容许您添加自定义注释,如用户全名、电话号码等到/etc/ passwd;)文件中。能够将注释添加为不带空格的单行

例如,下面的命令将添加一个用户test9‘并将该用户的全名test9 devloper插入到评论字段中。

[root@localhost~]# useradd -c "test9 devloper" test9

你能够在/etc/passwd‘ /etc/passwd‘文件在评论部分。

[root@localhost~]# tail -1 /etc/passwd

10,更改用户登陆Shell

有时,咱们添加与登陆shell无关的用户,有时咱们须要为用户分配不一样的shell。咱们能够为每一个用户分配不一样的登陆shell选项

在本例中,将添加一个用户没有登陆shell,即‘/sbin/nologin‘shell.

[root@localhost ~]# useradd -s /sbin/nologin test10

您能够检查分配给用户的shell在‘/etc/passwd‘文件

[root@localhost ~]# tail -1 /etc/passwd

第二部分:useradd命令的5个高级用法

11,添加一个具备特定主目录、默认Shell和自定义注释的用户

下面的命令将建立一个用户'test11 '与主目录' /tempfile/user11',默认shell为/bin/bash,并添加额外的信息用户。

[root@localhost ~]# useradd -m -d /tempfile/user11 -s /bin/bash -c "dba Owner" -U test11

在上面的命令中,' -m -d '选项建立一个具备指定主目录的用户,' -s '选项设置用户的默认shell,即/bin/bash.“-c”选项添加关于用户和“-U”参数的额外信息建立/添加与用户同名的组。

12,添加具备主目录、自定义Shell、自定义注释和UID/GID的用户

该命令与上面的命令很是类似,可是这里咱们将shell定义为' /bin/zsh ',并将自定义UID和GID定义为用户' test '的用户id和用户组id。其中“-u”定义新用户的UID(即1204),而“-g”定义GID(即1000)。

[root@localhost /]# useradd -m -d /tempfile/user12 -s /bin/zsh -c "devloper owner" -u 1204 -g 1000 test12

13,添加一个具备主目录、没有Shell、自定义注释和用户ID的用户

下面的命令与上面的两个命令很是类似,惟一的区别是这里,咱们禁用登陆shell到一个名为' test13 '的用户自定义用户ID(即1026)。

这里' -s '选项添加了默认的shell /bin/bash,但在本例中,咱们将login设置为' /usr/sbin/nologin '。这意味着用户' test13 '将没法登陆到系统。

[root@localhost ~]# useradd -m -d /tempfile/user13 -s /usr/sbin/nologin -c "dba enginer" -u 1026 test13

14,添加具备主目录、Shell、自定义Skell/注释和用户ID的用户

这个命令中惟一的变化是,咱们使用' -k '选项来设置自定义框架目录,即/etc/custom.skell,不是默认的 /etc/skel。咱们还使用了' -s '选项来定义不一样的shell,即/bin/tcsh来定义用户' test14 '。

[root@localhost ~]# useradd -m -d /tempfile/user14 -k /etc/custom.skell -s /bin/tcsh -c "No Active Member of test14" -u 1212 test14

15,添加一个没有主目录、没有Shell、没有组和自定义注释的用户

下面的命令与上面介绍的其余命令很是不一样。这里咱们使用' -M '选项来建立没有用户主目录的用户,并使用' -N '参数来告诉系统只建立用户名(没有组)。' -r '参数用于建立系统用户。

[root@localhost ~]# useradd -M -N -r -s /bin/false -c "Disabled test15 Member" test15

好了,今天的分享就到这,小弟不才,望你们有什么讲解不到位或者有问题的,请多指教,欢迎留言区评论。有喜欢的朋友记得收藏或者点赞哦,最后不少知识分享到微信公众号井壹数码,但愿感兴趣的朋友关注一下。多谢各位。

相关文章
相关标签/搜索