首页 > 系统相关 > Linux创建用户 (Ubuntu)

Linux创建用户 (Ubuntu)

时间:2023-09-01 15:35:13浏览次数:59  
标签:文件 etc 创建 Ubuntu 用户 指定 密码 useradd Linux

一: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

.

   




标签:文件,etc,创建,Ubuntu,用户,指定,密码,useradd,Linux
From: https://blog.51cto.com/u_15912723/7323414

相关文章

  • linux普通用户赋予USB设备访问权限
    新建规则文件,GROUP表示用户组.id查看用户$iduid=1000(huanhe)gid=1000(huanhe)组=1000(huanhe)$cat/etc/udev/rules.d/xxx_printer.rulesSUBSYSTEM=="usb",ATTRS{idVendor}=="0016",MODE="0666"SUBSYSTEM=="usb_device",ATTRS{idVe......
  • 技术分享 | LSM,Linux 内核的安全防护盾
    计算机安全是一个非常重要的概念和主题,它不仅仅可以保护用户个人信息和资产的安全,还可以影响到用户在使用过程中的体验;但同时,它也是一个很抽象的概念,关于其相关文献和资料不计其数,但它究竟是什么、包含什么,并没有详尽并全面的介绍。尽管困难,国际上还是对计算机安全概括出了三个特性......
  • Linux tcp连接数监控实战shell脚本
     tcp连接数监控可用于存储维护中前端业务访问量的统计:使用命令netstat-anpProto:表示协议类型,Recv-Q:表示收包数量, Send-Q:表示发包数量实战示例:#!/bin/bash#thisscriptisusedforcountthequantityofsessionoverstocklog=/ap/log/session_overstock_count.loglog......
  • 设计模式-创建型-原型模式
    title:设计模式-创建型-原型模式keywords:设计模式cover:[https://s1.ax1x.com/2023/08/31/pP01Vit.png]#sticky:10banner:type:imgbgurl:https://s1.ax1x.com/2023/08/31/pP01Vit.pngbannerText:设计模式-创建型-原型模式categories:设计模式tags:-......
  • Linux开发小工具
    Linux系统-部署-运维系列导航C++僵尸进程与孤儿进程 #include<stdio.h>#include<unistd.h>/*本程序启动一个子进程,父子进程无限循环不退出*//**编译:gcczombie_creator.c-ozombie_creator.exe*执行:./zombie_creator.exe*//**使用方法*kill父进程,则子......
  • 设计模式-创建型-单例模式
    title:设计模式-创建型-单例模式keywords:设计模式cover:[https://s1.ax1x.com/2023/08/31/pP01Vit.png]#sticky:10banner:type:imgbgurl:https://s1.ax1x.com/2023/08/31/pP01Vit.pngbannerText:设计模式-创建型-单例模式categories:设计模式tags:-......
  • Linux DNS配置手册
    Linux系统-部署-运维系列导航关于DNS生效优先级Linux系统中,域名解析相关的配置存在多个地方,经常使用的包括1.本地hosts文件,/etc/hosts,指定将域名解析到特定IP#配置格式ip域名1域名2... 2.dns配置文件,/etc/resolv.conf,指定dns服务器,系统会连接dns服务器查询域名解析......
  • Linux分区、LVM、文件系统(CentOS 7)
    Linux系统-部署-运维系列导航 Linux分区物理磁盘的物理分区包括主分区与扩展分区、逻辑分区一个磁盘只能有4个分区,其中只能有1个扩展分区,所以分区方案为4主或3主1扩展物理分区路径为/dev/磁盘类型+磁盘号+分区号,其中磁盘类型支持hd、sd、vd等,磁盘号为英文字母abcd,分区......
  • 关于为Jetbrains家开发工具建立快捷方式(linux)的两种方法
    前言考虑到jetbrains给出的安装包都是脚本命令语言,即后缀名为sh的文件,每一次打开都要使用Terminal打开,为了方便的打开,我们这里来创建一下快捷方式。方法一这是最为传统的方式,即书写一个desktop的文件,讲路径与图标写进去,授予其执行权限来实现,下面是实现方法。首先我们要创建一......
  • linux内核等待队列详解
    https://www.cnblogs.com/xinghuo123/p/13347964.html等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。1数据结构1.1等待队列头等待队列结构如下,因为每个等待队列都可以再中断时被修改,因此,在操作等待队列之前必......