一、linux用户管理前言
1、linux用户信息配置文件
/etc/passwd
2、/etc/passwd字段信息解释
3、其余用户,组相关配置文件
/etc/passwd 用户信息
/etc/shadow 用户密码信息
/etc/group 用户组信息
/etc/gshadow 用户组密码信息 ,在大公司,用户和组数量很大的情况下,需要制定复杂的权限管理,那时会用到组密码
/etc/skel
skel是skeleton的缩写,意为骨骼、框架。故此目录的作用是在建立新用户时,用于初始化用户根目录。系统会将此目录下的所有文件、目录都复制到新建用户的根目录,并且将用户属主与用户组调整为与此根目录相同。
4、密码文件的权限
#用户信息文件,权限是644,所有人可读,有一定安全隐患
[root@pylinux ~]# ll /etc/passwd
-rw-r--r-- 1 root root 1698 10月 13 2019 /etc/passwd
#用户密码文件,除了root用户,其他用户默认是没有任何权限,
[root@pylinux ~]# ll /etc/shadow
---------- 1 root root 892 10月 20 2019 /etc/shadow
#用户密码文件
[root@pylinux ~]# tail -5 /etc/shadow
mysql:!!:17980::::::
yu:$1$Kx9cz6sK$GE3jiHtjJikn9Ai4ECINn/:18031:0:99999:7:::
epmd:!!:18074::::::
rabbitmq:!!:18074::::::
py:!!:18182:0:99999:7:::
二、用户管理linux命令实战
用户管理涉及的命令
1、useradd
用法1:useradd -D #查看创建用户的默认值
用法2:useradd[选项]用户名 #根据选项创建用户
选项
-g:表示指定用户的用户主(主要)组,选项值可以是用户组ID,也可以是组名
-G:表示指定用户的用户附加(额外)组,选项值可以是用户组ID,也可以是组名
-u :uid,用户的id(用户的标识符),系统默认会从500 /或1000之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】
-c:comment,添加注释(选择是否添加)
-s:指定用户登入后所使用的shell 解释器,默认/bin/bash【专门的接待员】,如果不想让其登录,则 可以设置为/sbin/nologin (重要)
-d:指定用户登入时的启始目录(家目录位置)
-n:取消建立以用户名称为名的群组(了解)
-m, --create-home 创建用户的主目录
-M, --no-create-home 不创建用户的主目录
2、usermod
命令:usermod(user modify)
语法:usermod [选项 选项的值] … 用户名
作用:修改用户的各种属性
选项:
-g:表示指定用户的用户主组,选项的值可以是用户组的ID,也可以是组名
-G:表示指定用户的用户附加组,选项的值可以是用户组的ID,也可以是组名
-u:uid,用户的id(用户的标识符),系统默认会从500 之后按顺序分配uid,如果不想使用系统分配的,可以通过该选项自定义【类似于腾讯QQ 的自选靓号情况】
-L:锁定用户,锁定后用户无法登陆系统lock
-U:解锁用户unlock
-c<备注>:修改用户帐号的备注文字
-d<登入目录>:修改用户登入时的目录
-s<shell>:修改用户登入后所使用的shell
3、userdel
建议注释/etc/passwd用户信息而非直接删除用户
语法
userdel(选项)(参数)
选项
-f:强制删除用户,即使用户当前已登录;
-r:删除用户的同时,删除与用户相关的所有文件。
4、passwd
标准输入密码
[root@yuanlai-0224 ~]# echo '123456' | passwd --stdin yuchao2
Changing password for user yuchao2.
passwd: all authentication tokens updated successfully.
5、chpasswd
chpasswd命令用于同时更改多个用户的密码。它可以从标准输入或指定的文件中读取用户名和密码的组合,并将其应用于系统中的用户。chpasswd命令通常用于批量更改用户密码,特别是在自动化脚本Q或批处理任务中,该命令需要root账户权限才可以执行。使用chpasswd命令时,可以通过以下两种方式提供用户名和密码的组合:
•从标准输入读取:可以通过管道或重定向操作符将用户名和密码的组合传递给chpasswd命令。每个用户名和密码的组合应占据一行,并使用冒号分隔用户名和密码。
•从文件读取:可以通过指定文件路径作为chpasswd命令的参数来读取用户名和密码的组合。文件中的每个用户名和密码的组合应占据一行,并使用冒号分隔用户名和密码。
1、从标准输入读取
[root@muserver1 /]# useradd -m cupp -d /cupp
[root@muserver1 /]# echo 'cupp:cupp@123' | chpasswd
[root@muserver1 /]# su - pei
上一次登录:五 5月 17 03:49:57 EDT 2024pts/1 上
[pei@muserver1 ~]$ su - cupp
密码:
[cupp@muserver1 ~]$
2、从文件读取
输入chpasswd命令后直接回车,交互窗口下按照如下格式输入用户名和密码,使用ctl+D结束输入。
[root@muserver1 /]# chpasswd
ops01:123
pei:321
cupp:231
[root@muserver1 /]#
3、当然我们也可以使用cat结合/管道符的方式,可以完成批量用户密码修改。
[root@s152 ~]# cat pass.txt
username1:1234567
username2:1234567
username3:12345678
[root@s152 ~]# cat pass.txt | chpasswd
6、chage 用于密码的实效管理,用来修改帐号和密码的有效期。
-d,--lastday 最近日期 修改最近一次密码设置的时间。
-E,--expiredate 过期日期 账户国企过期时间 0表示马上过期,-1表示永不过期
-l, 列出当前用户的密码过期设置。普通用户仅可以查看自己的密码过期时间。
-W, 用户密码到期前,提前收到警告信息的天数
-M, 密码有效期
7、gpasswd管理用户组
gpasswd命令是Linux下工作组文件/etc/group和/etc/gshadow的管理工具