Linux基础学习:系统用户与用户组管理
一、Linux系统用户与用户组管理
(一)、/etc/passwd文件(7个字段)1. | 管道符,把前面的命令的输出再输入给后面的命令
2. 第1个字段为用户名(如第一行的root),代表用户账号的字符串
3. 第2个字段为该账号的口令。早期的Unix系统口令存于这里,基于安全因素,后存于/etc/shadow中,故用此处x代替
4. 第3个字段为uid,代表用户标识号。
(1)取值范围0~65535(实际上已可支持到429 496 729 4)
(2)0是超级用户(root)的标识号
(3)centos 7的普通用户标识号从1000开始
5. 第4个字段为gid,代表组标识号。对应/etc/group中的一条记录,
(1)/etc/group和/etc/passwd基本类似
6. 第5个字段为注释说明,无实际意义。通常记录该用户的一些属性,可用chfn命令更改
7. 第6个字段为用户家目录。用户登陆时,就在该目录下。
(1)用户家目录可自定义
8. 第7个字段为用户的shell。
(1)shell用于将用户下达的指令传给内核
(2)Linux的shell有多种,如sh、csh、ksh、tcsh、bash等
(3)默认是/bin/bash,可修改
(4)/sbin/nologin表示不允许该账号登陆
(二)、/etc/shadow文件(9个字段)
- 第1个字段为用户名,与/etc/passwd对应
- 第2个字段为用户密码,是该账号的真正密码
(1)可被部分黑客解密
(2)root账户可以访问或修改该文件属性 - 第3个字段为上次更改密码的日期
- 第4个字段为要过多少天才可以更改密码
(1)默认为0,即不受限制 - 第5个字段为密码多少天后过期,即多少天内必须更改密码
(1)默认为99999,可理解为永远不需要更改 - 第6个字段为密码到期前的警告期限
- 第7个字段为账号失效期限
- 第8个字段为账号的生命周期
- 第9个字段作为保留用,无意义
(三)用户和用户组管理的相关命令
- groupadd 用于新增组。用法:groupadd 【-g gid】【组名】
(1)加-g,可自定义gid,否则按照系统默认的gid创建组,如图 - groupdel 用于删除组。用法:groupdel【组名】
(1)存在账户的组不会被直接删除,需删除账户后,方可执行 - useradd 用于新增用户。用法:useradd【-u uid】【-g gid】【-d home】【-M】【-s】
(1)-u 表示自定义uid
(2)-g 表示新增用户属于某个已存在的组,后跟组id或组名
(3)-d 表示自定义用户的家目录
(4)-M 表示不建立家目录
(5)-s 表示自定义shell - userdel 用于删除账户。用法:useradd【-r】【用户名】
(1)-r 表示删除用户时,一并删除该用户的家目录 - chfn 用于 修改用户的finger。用法:chfn【用户名】
(1)finger就是/etc/passwd文件第5个字段中显示的信息
(四)用户密码管理的相关命令
- passwd 用于设置用户密码。用法:passwd【用户名】
- mkpasswd 用生成秘密。用法:mkpasswdd 【-l n】【-s n】【-d n】
(1)若没有该命令,可用“yum install -y expect”命令安装该命令
(2)【-l n】 指定生成密码的长度
(3)【-s n】 指定生成特殊字符的个数
(4)【-d n】指定生成数字的个数
(五)用户身份切换的相关命令
- whoani 用于查看当前用户
- su 用于切换用户。用法:su【-】【用户名】
(1)加上-,会初始化当前用户的各种环境变量
(2)普通用户使用su命令不加用户名,则切到root用户
(3)切到root账户时,加-,当前目录为root账户的家目录;不加-,当前目录无变化
(4)root用户切到普通用户,不需要输入密码 - sudo 该命令只有root用户才能使用,普通用户需要root预先设定才能使用
(1)使用visudo命令编辑/etc/sudoers文件,可以令普通用户使用sudo命令
(2)若没有visudo这个命令,可使用“yum install -y sudo ”命令安装
(3)在/etc/sudoers文件的root ALL=(ALL) ALL一行下面加入 【普通用户名】ALL=(ALL) ALL,就可以让指定的普通用户拥有sudo的特权
图中让test用户获得sudo的特权
a. 第一段【普通用户名】指定让哪个用户有sudo的特权
b. 第二段 ALL=(ALL),这边的ALL指的是所有主机,右边ALL指的是获取那个用户的身份(几乎不用配置)
c. 第三段 ALL,设定可以使用sudo的命令有哪些
(4)多用户快速获取sudo特权
a. 在/etc/sudoers文件里,把#%wheel ALL=(ALL) ALL前面的#去掉,让这一行生效
b. 把需要设置sudo权限的所有用户加入到wheel这组中
4. 不允许root远程登陆linux(只适用于通过ssh远程登陆Linux的情况)
(1)修改配置文件/etc/ssh/sshd_config
a. 把#PermitRootLogin yes修改为PermitRootLogin no
b. 保存配置文件,重启ssh服务(systemctl restart sshd.service)