• 一篇读懂 Linux 用户管理


    用户管理,顾名思义就是添加用户和用户组、更改密码和设定权限等操作。在使用个人电脑时,基本都以管理员账户登录,很少添加和使用其他普通用户。但是在服务器上这样做是行不通的。服务器通常是由一个团队来管理,但并不是每个人都能够被赋予管理员权限。因此,对安全性要求高的服务器,需要建立合理的用户权限等级制度和服务器操作规范。

    Linux系统中的用户,由于角色不同,每个用户的权限和所能完成的操作任务也不同。在实际的管理工作中,用户的角色是通过UID(用户ID)来标识的,每个用户的UID都是不同的。Linux中主要有超级用户、系统用户和普通用户三类

    • 超级用户:root,具有一切特权,UID为0
    • 系统用户:系统正常工作所必须的内建用户,为了满足相应的系统进程而建立,系统用户不能用来登录,如bin、daemon、adm、lp等,UID一般为1-499
    • 普通用户:为了让使用者能够使用系统资源而建立的,UID为500-60000

    一、用户管理相关文件介绍

    1.1 用户配置文件 /etc/passwd

    /etc/passwd文件是系统能够识别的用户清单。用户登陆时,系统查询这个文件,确定用户的UID并验证用户口令。其内容如下示:

    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    
    • 1
    • 2
    • 3
    • 第一列:用户名
    • 第二列:用户密码,仅有一个x占位符,密码存在shadow中
    • 第三列:用户UID,唯一标识
    • 第四列:所属组的GID
    • 第五列:备注信息
    • 第六列:用户的主目录,用户登录系统时,就登录到该目录中
    • 第七列:shell类型

    1.2 用户密码配置文件 /etc/shadow

    /etc/shadow文件里的内容与/etc/passwd中的一一对应,由pwconv命令根据/etc/passwd中的数据自动产生。超级用户才拥有该文件读权限,保证了用户密码的安全性。

    root:$6$LEbEC/AQc3/GF$8Q4Lx/gin1/YIH1:18842:0:99999:7:::
    bin:*:18353:0:99999:7:::
    daemon:*:18353:0:99999:7:::
    
    • 1
    • 2
    • 3
    • 第一列:用户名
    • 第二列:经过加密编码的密码,$6$开头表明使用SHA-512加密,若密码位是"!!“或”*"代表没有密码,不能登录
    • 第三列:密码最近更改时间,时间戳表示
    • 第四列:密码不可被更改的天数(与第三列相比)
    • 第五列:密码最长有效期(与第三列相比)
    • 第六列:密码到期前的警告天数(与第五列相比)
    • 第七列:密码过期后的宽限天数(与第五列相比)
    • 第八列:账号失效日期,时间戳表示
    • 第九列:保留

    1.3 用户组配置文件 /etc/group

    /etc/group文件包含了组的名称和每个组中的成员列表,每一行代表一个组

    root:x:0:
    bin:x:1:
    daemon:x:2:
    
    • 1
    • 2
    • 3
    • 第一列:用户组的组名
    • 第二列:组密码,仅有一个x占位符,密码存在gshadow中
    • 第三列:用户组GID,用户组唯一标识
    • 第四列:组成员

    1.4 用户组密码配置文件 /etc/gshadow

    /etc/gshadow用户组密码配置文件,其内容如下:

    root:::
    bin:::
    daemon:::
    
    • 1
    • 2
    • 3
    • 第一列:用户组组名
    • 第二列:用户组密码,若为空或"!"表示没有密码
    • 第三列:用户管理者,可以为空
    • 第四列:组成员

    1.5 默认配置文件 /etc/login.defs

    创建用户时的默认限制设置文件 /etc/login.defs,内容如下:

    MAIL_DIR        /var/spool/mail
    
    PASS_MAX_DAYS   99999	#指定密码保持有效最大天数
    PASS_MIN_DAYS   0		#修改密码的间隔时间
    PASS_MIN_LEN    5		#指定密码的最小长度
    PASS_WARN_AGE   7		#密码到期前多少天系统提示密码到期
    
    UID_MIN         1000	#指定UID最小为1000
    UID_MAX         60000	#指定最大UID为60000
    
    SYS_UID_MIN     201		#系统用户最小201
    SYS_UID_MAX     999		#系统用户最大999
    
    GID_MIN         1000	#最小GID为1000
    GID_MAX         60000	#最大GID为60000
    
    SYS_GID_MIN     201		#系统组ID最小201
    SYS_GID_MAX     999		#系统组ID最大999
    
    CREATE_HOME     yes		#指定是否创建用户主目录,yes为创建,no不创建
    
    UMASK           077		#权限默认掩码值
    
    USERGROUPS_ENAB yes		#删除用户时,若该用户组没有成员存在,则会删除用户组
    
    ENCRYPT_METHOD SHA512	#使用SHA512加密方式
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    1.6 默认配置文件 /etc/adduser.conf

    创建用户时使用的默认配置文件 /etc/adduser.conf,内容如下:

    # useradd defaults file
    GROUP=100		#新建用户默认初始组GID号
    HOME=/home		#用户主目录的位置
    INACTIVE=-1		#是否启用账号过期禁用,-1不启用
    EXPIRE=			#表示账号过期,空表示不启用
    SHELL=/bin/bash		#新建用户的默认shell类型
    #指定用户主目录中默认文件的来源,新建用户主目录下的文件都是下面目录中复制的
    SKEL=/etc/skel		
    CREATE_MAIL_SPOOL=yes	#是否创建邮箱缓存,yes表示创建
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    1.7 SKEL模板目录

    /etc/skel目录定义了新建用户在主目录下默认的配置文件,更改/etc/skel目录下的内容就可以改变新建用户默认主目录的配置文件信息。该目录下常见的文件如下:
    在这里插入图片描述
    新用户被创建后,会在新用户主目录下看到上图中类似的文件
    在这里插入图片描述

    二、用户管理相关命令介绍

    2.1 添加新用户命令 useradd

    添加新的用户账号使用useradd命令,其语法如下:

    useradd 选项 用户名
    
    • 1

    useradd不加任何参数创建用户时,其过程如下:

    • 系统首先读取默认配置文件 /etc/login.defs/etc/default/useradd,根据这两个配置文件中定义的规则添加用户
    • 然后向 /etc/passwd/etc/group 文件添加用户和用户组记录,同时其对应的加密文件也会自动生成记录
    • 接着系统会自动在/etc/default/useradd文件设定的目录下建立用户主目录
    • 最后复制 /etc/skel 目录中的所有文件到新用户的家目录中,新用户建立完成

    useradd带参数创建时,其参数说明如下:

    • -c comment 指定一段注释性描述。
    • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
    • -g 用户组 指定用户所属的用户组。
    • -G 用户组,用户组 指定用户所属的附加组。
    • -s Shell文件 指定用户的登录Shell。
    • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
    • 用户名:指定新账号的登录名

    2.2 修改用户属性命令 usermod

    根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。其格式如下:

    usermod 选项 用户名
    
    • 1

    常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

    除了"-l"选项,用于指定一个新的账号,即将旧用户名改为新用户名

    # 例如:用户oldname改名为newname,注意要同时更改家目录: 
    usermod  –d  /home/newname  –m  –l  newname  oldname
    
    • 1
    • 2

    2.3 删除用户命令 userdel

    若用户账号不再使用,可从系统中删除。本质是将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。userdel 格式如下:

    userdel 选项 用户名
    
    • 1

    常用的选项是 “-r”,它的作用是把用户的主目录一起删除

    2.4 修改用户密码命令 passwd

    用户账号刚创建时没有口令,但是被系统锁定,无法使用,必须为其指定口令后才可以使用,即使是指定空口令。命令的格式为:

    passwd 选项 用户名
    
    • 1

    常用的选项如下示:

    • -l 锁定口令,即禁用账号
    • -u 口令解锁
    • -d 使账号无口令
    • -f 强迫用户下次登录时修改口令

    2.5 添加用户组命令 addgroup

    增加一个新的用户组使用groupadd命令。其格式如下:

    groupadd 选项 用户组
    
    • 1

    可以使用的选项有:

    • -g GID 指定新用户组的组标识号(GID)
    • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

    2.6 删除用户组命令 delgroup

    如果要删除一个已有的用户组,使用groupdel命令,其格式如下:

    groupdel 用户组
    
    • 1

    2.7 修改用户组命令 groupmod

    修改用户组的属性使用groupmod命令。其语法如下:

    groupmod 选项 用户组
    
    • 1

    常用的选项有:

    • -g GID 为用户组指定新的组标识号。
    • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
    • -n新用户组 将用户组的名字改为新名字
    /***** 关注下方公众号,了解更多嵌入式相关开发技术 *****/
  • 相关阅读:
    Nacos技术学习与总结待续
    静态Static 动态代码块 静态代码块 类加载
    android 12.0 去掉未知来源弹窗 默认授予安装未知来源权限
    Jmeter系列(4) 线程属性详解
    =(等号)在Excel中的3个实用技巧
    get与post区别
    ROX NHS ester, 5-isomer(209734-74-7,344402-35-3)_ROX NHS酯5-异构体
    LeetCode简单题之解密消息
    qt的xml读写和QDomDocument、QDomElement、QDomNode、QDomNamedNodeMap讲解
    excel表格损坏如何修复?
  • 原文地址:https://blog.csdn.net/Chuangke_Andy/article/details/124967751