linux useradd命令(2)

1、概述

         创建一个新的用户或者创建用户时修改用户的默认信息

         创建新用户是涉及文件:【主和组ID都是 =对应最大值 + 1

[root@zhang ~]# tail -3 /etc/passwd

usert3:x:603:603::/mnt/tt3:/bin/bash

usert4:x:604:604::/home/usert4:/bin/bash

usert5:x:605:605::/home/usert5:/bin/bash

[root@zhang ~]# tail -3 /etc/shadow

usert3:!!:16798:0:99999:7:::

usert4:!!:16800:0:99999:7::16801:

usert5:!!:16800:0:99999:7:3::

[root@zhang ~]# tail -3 /etc/group

usert3:x:603:

usert4:x:604:

usert5:x:605:

[root@zhang ~]# tail -3 /etc/gshadow

usert3:!::

usert4:!::

usert5:!:

1、对/etc/passwd 描述

[root@zhang ~]# tail -4 /etc/passwd

nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

usertest1:x:601:601:usertest1 info xxxx:/home/usertest1:/bin/bash

usertest2:x:602:602::/mnt/aaa:/bin/bash

usert3:x:603:603::/mnt/tt3:/bin/bash

         共计7段信息其中【】作为分隔符

         1、用户名       2、密码等相关信息       3、用户ID      4、用户属组ID

         5、用户描述  6、用户家目录       7、是否可以登录和使用的shell

 

2、对/etc/shadow 描述

[root@zhang ~]# cat /etc/shadow      部分信息

root:$6$Ij9JloD6A/d3yC8j$0wjXayFuoJ9JjbL0J9SmWMueHF9SSuoP1dYELvfM39FdblF1THVvXMKX0Rv6YJM9Zw4AYHbgNdwMOjl./X3M61:16709:0:99999:7:::

bin:*:15980:0:99999:7:::

daemon:*:15980:0:99999:7:::

 1)用户名       2)加密的密码

 3)上次更改密码的日期(按天计算 从1970-1-1开始)

 4)最短密码期限【密码不可被更动的天数】(按天计算,0 = 无最短期限)

 5)最长密码期限【 密码需要重新变更的天数】(按天计算)

 6)密码警告期限【密码需要变更期限前的警告期限】(按天计算,0 = 未指定警告)

 7)密码非活动期限【密码过期的恕限时间】(按天计算)

                   如果用户过了警告期限没有重新输入密码,使得密码失效了,也就是说,你在‘必须变更密码的期限前,并没有变更你的密码!’那么该组密码就称为‘失效的密码’啰~怎么办?没关系,还有这个栏位的天数设计啊~意思就是说,当密码失效后,你还可以用这个密码在 n 天内进行登入的意思。而如果在这个天数后还是没有变更密码,呵呵!那么您的帐号就失效了!无法登入!

 8)账号到期时间【帐号失效日期】(按天计算  从1970-1-1开始)

 9)保留域

       文章参考:

linux,/etc/passwd,/etc/shadow详解

 

2、命令格式

      useradd [options] LOGIN

      useradd -D

      useradd -D [options]

 

3、常用命令参数

       描述:

         当执行命令并且没用使用-D 选项时, 命令 useradd 创建一个新的用户账号,对应的值【比如:uid  gid】都将来自系统【在原有的基础上 +1】

         根据命令行选项,useradd 命令将更新系统文件并且可能创建新的用户家目录和拷贝初始化文件。

         默认情况下,创建新用户也将创建一个新的组。(参见 -g, -N, -U, and USERGROUPS_ENAB).

 

       选项:

         -b,--base-dir BASE_DIR 如果没有指定使用-d HOME_DIR ,那么系统使用默认基本目录。BASE_DIR 将被级联创建当创建用户时。如果 -m 选项没有使用,那么BASE_DIR 必定会存在。

         如果该选项没有被指定,useradd 将使用系统默认目录来作为用户的家目录。

         总的来说,就是在哪个已存在的目录下创建用户的家目录

[root@zhang ~]# useradd -b /mytest test2      # /mytest 不存在该目录

useradd: cannot create directory /mytest/test2

[root@zhang ~]#

[root@zhang ~]# useradd -b /mnttt test3       #/mnttt 不存在该目录

useradd: cannotcreate directory /mnttt/test3

[root@zhang ~]# useradd -b /mnt test2          创建成功

[root@zhang ~]# ll -a /mnt/test2/

total 28

drwx------  4 test2 test2 4096 Dec 24 14:08 .

drwxr-xr-x. 3root  root  4096 Dec 24 14:08 ..

-rw-r--r--  1 test2 test2   18 Jul 18 2013 .bash_logout

-rw-r--r--  1 test2 test2 176 Jul 18  2013 .bash_profile

-rw-r--r--  1 test2 test2 124 Jul 18  2013 .bashrc

drwxr-xr-x  2 test2 test2 4096 Nov 12  2010 .gnome2

drwxr-xr-x  4 test2 test2 4096 Oct  2 04:00 .mozilla

[oldboy@zhangmnt]$ su - test2            # 前提是已经给用户test2创建密码

Password:

[test2@zhang ~]$pwd

/mnt/test2         # 家目录

 

         -c,--comment COMMENT 用户描述。描述内容存放在 /etc/passwd 中

[root@zhang ~]# useradd -c'usertest1 info xxxx' usertest1     

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

usertest1:x:601:601:usertest1 info xxxx:/home/usertest1:/bin/bash

         -d,--home HOME_DIR  新的用户将使用HOME_DIR 作为他的家目录。该选项可以创建一层不存在的目录,但是不能创建多层目录

[root@zhangmnt]# ll

total 8

drwx------ 4usertest2 usertest2 4096 Dec 29 12:55 aaa

drwx------ 4test2     test2     4096 Dec 24 14:08 test2

[root@zhangmnt]# useradd -d /mnt/tt3 usert3  目录 tt3不存在

[root@zhangmnt]# su -usert3

[usert3@zhang~]$ pwd

/mnt/tt3

[usert3@zhang~]$ logout

[root@zhangmnt]# ll

total 12

drwx------ 4usertest2 usertest2 4096 Dec 29 12:55 aaa

drwx------ 4test2     test2     4096 Dec 24 14:08 test2

drwx------ 4usert3    usert3    4096 Dec 29 13:01 tt3

[root@zhangmnt]# useradd  -d /mnt/tt4/tt  usert4  #目录tt4不存在

useradd: cannot create directory /mnt/tt4/tt

         -D,--defaults  见下面,分段改变默认值

         -e,--expiredate EXPIRE_DATE  用户账号失效日期,指定日期格式:YYYY-MM-DD

[root@zhang ~]# useradd -e'2016-01-01' usert4    # 2015-12-31日 添加该用户

[root@zhang ~]# tail -2/etc/shadow

usert3:!!:16798:0:99999:7:::

usert4:!!:16800:0:99999:7::16801:

         -f,--inactive INACTIVE 密码过期【不是账号过期后的多少天永久禁用该账号。当值为0时帐号则立刻被停权。而当值为-1时则关闭此功能,预设值为-1

[root@zhang ~]# useradd -f 3 usert5

[root@zhang ~]# tail -3 /etc/shadow

usert3:!!:16798:0:99999:7:::

usert4:!!:16800:0:99999:7::16801:

usert5:!!:16800:0:99999:7:3::

         -g,--gid GROUP  一个组名或者组数字【groupname or number】用于用户的初始化主组。并且该组名或者组数字必须存在。【设定用户主组

[root@zhang ~]# useradd -g 700usert6

useradd: group '700' does not exist

[root@zhang ~]# useradd -g userOOusert6

useradd: group 'userOO' does not exist

[root@zhang ~]# useradd -g usert5usert6     usert5:x:605:605::/home/usert5:/bin/bash

[root@zhang ~]# useradd -g 605usert7

         -G,--groups GROUP1[,GROUP2,...[,GROUPN]]]  添加附加组,可以有多个。每个组由一个逗号分隔的未来,中间没有空格。默认情况下附加组和属组相同,名称都是新增的用户名称。

[root@zhang ~]# useradd-G usert3,usert4,usert5 usert8

[root@zhang ~]# id usert8

uid=608(usert8) gid=608(usert8) groups=608(usert8),603(usert3),604(usert4),605(usert5)

         -m,--create-home  如果用户的家目录不存在,则创建。

         -M 不创建用户的家目录

[root@zhang ~]# useradd -M usert9

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

usert9:x:609:609::/home/usert9:/bin/bash

[root@zhang ~]#ll /home/        #没有 usert9

total 48

drwx------. 14oldboy    oldboy    4096 Jan 6 21:12 oldboy

drwx------   4 usert6   usert5    4096 Dec 31 13:32 usert6

drwx------   4 usert7   usert5    4096 Dec 31 13:32 usert7

drwx------   4 usert8   usert8    4096 Jan  7 16:18 usert8

drwx------   4 usertest1 usertest1 4096 Dec 29 12:49 usertest1

drwx------   4 ying     ying      4096 Dec 12 21:27 ying

drwx------   4 zhang    zhang     4096 Dec 20 10:57 zhang

[root@zhang ~]# cd /home/usert9

-bash: cd: /home/usert9: No such file or directory

         -r, --system  创建一个系统账号。

                   系统帐号的UID会比定义在系统档上/etc/login.defs.的UID_MIN来的小。注意useradd此用法所建立的帐号不会建立使用者家目录,也不会在乎纪录在/etc/login.defs.的定义值。如果你想要有使用者家目录须额外指定-m参数来建立系统帐号。

[root@zhang ~]# useradd -r mysystem1

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

mysystem1:x:497:497::/home/mysystem1:/bin/bash    # 普通目录从500开始

[root@zhang ~]# ll /home/mysystem1

ls: cannot access /home/mysystem1: No such file ordirectory

         -s, --shell SHELL  指定用户登录的SHELL

[root@zhang ~]# useradd  -s  /sbin/nologin  usert11       该用户不能登录

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

usert11:x:611:611::/home/usert11:/sbin/nologin

         -u, --uid UID  指定用户的UID,唯一且不能为负数。默认为普通用户最大UID的下一个数字

[root@zhang ~]# useradd -s /sbin/nologin -M -u  800 zhangnsf

 

 

  FILES【涉及相关文件】

      /etc/passwd

           User account information.

      /etc/shadow

          Secure user account information.

      /etc/group

          Group account information.

      /etc/gshadow

          Secure group account information.

      /etc/default/useradd

          Default values for account creation.

      /etc/skel/

          Directory containing default files.【用于用户目录】

      /etc/login.defs

          Shadow password suite configuration.

 

 

4、常用示例

         暂时无

 

5、命令所在位置和类型

[root@zhang ~]# which useradd

/usr/sbin/useradd

[root@zhang ~]# type useradd     

useradd ishashed (/usr/sbin/useradd)

 

6、另请参见

linuxuseradd(adduser)命令参数及用法详解(linux创建新用户命令)

猜你喜欢

转载自blog.csdn.net/youmatterhsp/article/details/80549621