Linux创建用户 (Ubuntu)
  kIM7GUNpnV3x 2023年11月02日 21 0

一:useradd

  学习用户管理首先从注册开始!我们登录Linux系统时需要输入用户名和密码,也就是说,一个用户包括用户名和密码两个部分。那么,要想完整的添加一个用户,就需要使用两个命令来完成。useradd用户创建用户,passwd用来设置用户密码。

    useradd是Linux系统中常用的系统管理命令,它的功能就是在系统中创建一个新的用户。注意:在创建用户时,必须以管理员的身份执行。

   命令格式: useradd [选项] 用户名

这个命令的一些选项如下表所示:

选项

说明

-u

指定用户标识符[-u UID],该值在系统中必须是唯一的

-d

指定用户的家目录[-d 家目录],指定时使用绝对路径

-m

自动建立用户的家目录

-M

不创建用户的家目录

-c

指定用户的注释信息,保存在/etc/passwd文件中

-s

指定用户登录后使用Shell,默认为/bin/bash

-D

显示或者设置默认值

-e

指定用户的失效日期。格式为YYY/MM/DD,缺省表示永久有效

-f

指定密码过期后,用户北京用之前的天数。0表示立即禁用,默认值-1表示不禁用

-g

指定用户所属的用户群组

-G

指定用户所属的附加群组

     注意:在没有指定选项的情况下执行useradd命令创建用户时,系统会根据默认值创建用户。这些默认值被记录在/etc/default/useradd文件中,你可以执行cat命令查看这个文件的内容,也可以执行useradd -D命令查看默认值。这是以Ubuntu中以root用户身份登录系统产看的文件内容。

   /etc/default/useradd文件中大概就是这些内容了,如下图所示:

                                     Linux创建用户 (Ubuntu)_字段

  文件里面的内容,意思如下表所示:

内容

说明

GROUP

默认的用户组

HOME

指定用户的家目录,默认值

INACTIVE

密码过期后至无法使用该账号的天数,-1表示不启用

EXPLRE

账号失效日期,不设置表示不启用

SHELL

指定默认Shell

SKEL

指定用户家目录内容的参考路径

CREATE_MAIL_SPOOL

在/var/spoll/mail中创建新用户的邮箱存储文件

   其实/etc/default/useradd文件中指定的GROUP=100并不会生效。新用户的初始用户设置虽然是GROUP=100,即GID为100,但是在CentOS中不是这样的。在CentOS中默认的用户组和用户名相同,这种用户名的设置方式保密性会比较高,它不会参考/etc/default/useradd文件指定的GROUP值,因此这个设置选项在CentOS中是不会生效的。

  二:命令创建用户时的小问题

   使用useradd创建用户时,没有指定-m选项,但系统却创建了用户的家目录,这个原因如下:

    这是因为/etc/login.defs设置了CREATE_HOME yes,表示用户同意创建家目录。创建用户时,/etc/skel目录下的文件或目录自动复制到用户的家目录中,原理图如下:

 

                                     Linux创建用户 (Ubuntu)_创建用户_02

  看看上述图中的文件,当你创建一个用户之后,/etc/skel目录下的所有文件和目录都会被复制到新用户的家目录中。你可以根据自己的需求设置这些文件。

  在用户创建之后,新用户的信息会被记录在/etc/passwd和/etc/shadow文件中,里面有一些字段,这些含义需要知道下,下面是在Ubuntu中使用tail命令查看/etc/passwd和/etc/shadow文件内容,如下图所示:

  

                                     Linux创建用户 (Ubuntu)_字段_03

上面图片文件中的信息被":"分为七个字段。

  1.     第一个字段:表示用户的名称,这里是sshd。
  2.     第二个字段: 如果是x就表示该用户登录LInux系统时必须使用密码,如果是空就表示该用户登录系统时不需要提供密码。这里是x,所以表示要求提供密码。
  3.     第三个字段: 表示用户的用户标识符(UID),这里是用户sshd的UID是129。
  4.     第四个字段: 表示用户所属群组的组标识符(GID),这里用户sshd的GID是65534.
  5.     第五个字段: 表示该用户的注释信息,这里是空白。
  6.     第六个字段: 表示该用户的家目录,这里是/home/user1。
  7.     第七个字段: 表示该用户登录系统后第一个要执行的进程,这里表示用户sshd默认使用的Shell是/sbin/nologin。

    还用一个文件/etc/shadow,这个文件被":"分成了九个字段,含义如下:

  •      第一个字段: 与/etc/passwd文件的第一个字段相同,也是表示用户的名称,所以这里是sshd。
  •      第二个字段: 这个字段里的数据是用户密码,!!表示用户还没有指定密码,如果指定了密码这里会是一段加密的字符数据。
  •       第三个字段: 表示的是最近修改密码的日期,这里的19518表示从1970年1月1日起累加的日期。
  •        第四个字段: 表示密码不能被修改得天数(相对于第三个字段而言),0表示密码随时可以修改。如果你设置了10,那就是表示用户在10天内无法修改自己的密码。
  •        第五个字段: 表示密码需要重新修改的天数(相对于第三个段而言),99999就表示没有强制修改密码的意思.
  •        第六个字段: 表示密码需要修改的期限之前警告的天数(相对于第五个字段而言)。当你的密码快到期时,系统会发出警告去提醒你。这里的7表示系统会在密码到期的7天之内警告该用户。
  •        第七个字段: 表示密码失效的日期,密码过期之后,系统会强制让你重新设置密码,然后才可以继续使用,。
  •       第八个字段: 表示账号失效的日期,这个字段也是从1970年1月1日累加的天数。账号在这个字段规定的日期之后将不再使用.
  •      第九个字段: 保留字段.

注意:早期用户的密码是存储在/etc/passwd文件的第二个字段中,但是由于保密性不高,所有的程序都能读取,密码很容易被窃取,所以后来就移动到了文件/etc/shadow的第二个字段中去,这两个文件的权限不一样.

   下面我在Ubuntu中查看文件的默认权限,截图如下:

                                     Linux创建用户 (Ubuntu)_默认值_04

.

   




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  wDXXU13OlTR8   2023年11月19日   33   0   0 创建用户状态码bash
  G5UoiZ5izCEW   2023年11月13日   36   0   0 字段
  eHipUjOuzYYH   2023年11月13日   28   0   0 cssico字段
  L83A5jZvvg3Q   2023年11月22日   22   0   0 HTTP重定向字段
  L83A5jZvvg3Q   2023年11月22日   29   0   0 客户端HTTP字段
  L83A5jZvvg3Q   2023年11月19日   26   0   0 nginx默认值
kIM7GUNpnV3x