• 技术文章 >运维 >linux运维

    linux怎么增加用户

    青灯夜游青灯夜游2021-12-21 15:27:59原创1595

    在linux中,可以使用useradd命令来增加用户,该命令的作用就是新建用户,添加新的系统用户,基本语法格式为“useradd [选项] 用户名”。

    本教程操作环境:linux5.9.8系统、Dell G3电脑。

    在linux中,可以使用useradd命令来新建用户,添加新的系统用户。

    此命令的基本格式如下:

    [root@localhost ~]#useradd [选项] 用户名

    该命令常用的选项及各自的含义,如表 1 所示。

    表 1 useradd命令常用选项
    选项含义
    -u UID手工指定用户的 UID,注意 UID 的范围(不要小于 500)。
    -d 主目录手工指定用户的主目录。主目录必须写绝对路径,而且如果需要手工指定主目录,则一定要注意权限;
    -c 用户说明手工指定/etc/passwd文件中各用户信息中第 5 个字段的描述性内容,可随意配置;
    -g 组名手工指定用户的初始组。一般以和用户名相同的组作为用户的初始组,在创建用户时会默认建立初始组。一旦手动指定,则系统将不会在创建此默认的初始组目录。
    -G 组名指定用户的附加组。我们把用户加入其他组,一般都使用附加组;
    -s shell手工指定用户的登录 Shell,默认是 /bin/bash;
    -e 曰期指定用户的失效曰期,格式为 "YYYY-MM-DD"。也就是 /etc/shadow 文件的第八个字段;
    -o允许创建的用户的 UID 相同。例如,执行 "useradd -u 0 -o usertest" 命令建立用户 usertest,它的 UID 和 root 用户的 UID 相同,都是 0;
    -m建立用户时强制建立用户的家目录。在建立系统用户时,该选项是默认的;
    -r创建系统用户,也就是 UID 在 1~499 之间,供系统程序使用的用户。由于系统用户主要用于运行系统所需服务的权限配置,因此系统用户的创建默认不会创建主目录。

    其实,系统已经帮我们规定了非常多的默认值,在没有特殊要求下,无需使用任何选项即可成功创建用户。例如:

    [root@localhost ~]# useradd lamp

    此行命令就表示创建 lamp 普通用户。

    不要小看这条简单的命令,它会完成以下几项操作:

    [root@localhost ~]# grep "lamp" /etc/passwd
    lamp:x:500:500::/home/lamp:/bin/bash

    可以看到,用户的 UID 是从 500 开始计算的。同时默认指定了用户的家目录为 /home/lamp/,用户的登录 Shell 为 /bin/bash。

    [root@localhost ~]# grep "lamp" /etc/shadow
    lamp:!!:15710:0:99999:7:::

    当然,这个用户还没有设置密码,所以密码字段是 "!!",代表这个用户没有合理密码,不能正常登录。同时会按照默认值设定时间字段,例如密码有效期有 99999 天,距离密码过期 7 天系统会提示用户“密码即将过期”等。

    [root@localhost ~]# grep "lamp" /etc/group
    lamp:x:500:

    该群组会作为新建用户的初始组。

    [root@localhost ~]# grep "lamp" /etc/gshadow
    lamp:!::

    当然,我们没有设定组密码,所以这里没有密码,也没有组管理员。

    [root@localhost ~]#ll -d /home/lamp/
    drwx------ 3 lamp lamp 4096 1月6 00:19 /home/lamp/
    [root@localhost ~]#ll /var/spod/mail/lamp
    -rw-rw---- 1 lamp mail 0 1月6 00:19 /var/spool/mail/lamp

    注意这两个文件的权限,都要让 lamp 用户拥有相应的权限。

    可以看到,useradd 命令创建用户的过程,其实就是修改了与用户相关的几个文件或目录,前面章节已经对这些文件做了详细介绍。

    除了默认创建用户,我们还可以利用 useradd 命令的各种选项亲自定制要创建的用户,例如:

    [root@localhost ~]# groupadd lamp1
    #先手工添加lamp1用户组,因为我一会儿要把lamp1用户的初始迎指定过来,如果不事先建立,则会报告用户组不存在
    [root@localhost ~]# useradd -u 550 -g lamp1 -G root -d /home/lamp1 -c "test user" -s /bin/bash lamp1
    #在建立用户lamp1的同时,指定了UID(550)、初始组(lamp1)、附加组(root)、家目录(/home/lamp1/)、用户说明(test user)和用户登录Shell(/bin/bash)
    [root@localhost ~]# grep "lamp1" /etc/passwd /etc/shadow /etc/group
    #同时查看三个文件
    /etc/passwd:lamp1:x:550:502:test user:/home/lamp1:/bin/bash
    #用户的UID、初始组、用户说明、家目录和登录Shell都和命令手工指定的一致
    /etc/shadow:lamp1:!!:15710:0:99999:7:::
    #lamp1用户还没有设定密码
    /etc/group:root:x:0:lamp1
    #lamp1用户加入了root组,root组是lamp1用户的附加组
    /etc/group:lampl:x:502:
    #GID为502的组是lamp1组
    [root@localhost ~]#ll -d /home/lamp1/
    drwx------ 3 lamp1 lamp1 4096 1月6 01:13 /home/lamp1/
    #家目录也建立了,不需要手工建立

    通过以上 2 种方式,都可以成功创建用户。通常情况下,根本不需要手工指定任何内容,因为使用默认值就可以满足我们的要求。那你有没有想过,useradd 命令的这些默认值保存哪里,能否手工修改呢?

    答案是肯定的。useradd 命令在添加用户时参考的默认值文件主要有两个,分别是 /etc/default/useradd 和 /etc/login.defs。

    相关推荐:《Linux视频教程

    以上就是linux怎么增加用户的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:linux 增加用户
    上一篇:linux怎么删除日志 下一篇:linux怎么修改文件权限
    千万级数据并发解决方案

    相关文章推荐

    • linux怎么删除oracle数据库• linux怎么删除一个目录• linux怎么停止ping命令• linux怎么安装hadoop• linux怎么删除目录• linux如何删除系统用户
    1/1

    PHP中文网