linux用户,组管理介绍
linux操作系统对多用户管理是非常繁琐的,所以用组的概念来管理用户就变得简单了,每个用户可以在一个独立的组,每个组也可以有零个用户或者多个用户,Linux系统用户时根据用户ID来识别的,默认ID长度为32位,默认ID编号从0开始(其实就是root),但是为了和老式系统兼容,用户ID限制在60000以下,linux用户总共分为3种:
- root用户(ID 0)
- 系统用户(ID 1~999)
- 普通用户(ID 1000以上)
linux操作系统用户的特点如下:
- 每个用户拥有一个UserID,操作系统实际读取的是UID,而非用户名
- 每个用户属于一个主组,属于一个或者多个附属组,一个用户最多有31个附属组
- 每个拥有一个GroupID
- 每个进程以一个用户身份运行,该用户可对进程拥有资源控制的权限
- 每个可登陆用户拥有一个指定的shell环境
linux用户在操作系统中可以进行日常管理和维护,涉及的相关配置文件如下:
- /etc/passwd:保存用户信息
- /etc/shadow:保存用户密码(以加密形式保存)
- /etc/group:保存组信息
- /etc/login.defs:用户属性,密码过期时间,密码最大长度等限制
- /etc/default/useradd:显示或更改默认的useradd配置文件
linux系统中的每个文件或者文件夹都有一个所属用户及所属组,使用id命令可以显示当前用户的信息,使用passwd命令可以修改当前用户密码。
[root@localhost ~]# id lizhifeng uid=1000(lizhifeng) gid=1000(lizhifeng) 组=1000(lizhifeng)
linux用户管理
如果创建新用户,可以使用命令useradd,执行命令 useradd lizf 即可创建lizf用户,同时会创建一个同名的组lizf,默认该用户属于lizf组
执行useradd lizf会根据以下操作步骤进行:
- 在/etc/passwd文件中添加lizf用户信息
- 如使用passwd命令创建密码,密码会被保存在/etc/shadow中
- 为lizf创建一个家目录/home/lizf
- 将/etc/skel中的.bash开头的文件复制到/home/lizf家目录
- lizf组信息保存在/etc/group配置文件中
在使用useradd命令时,可以添加如下参数:
-d:新账户的主目录 -e:新账户的过期日期 MM/DD/YY -g:新账户属组的名称或ID -r:创建一个系统账户 -s:新账户的登录shell -u:新账户的UID -G:新建账户的附加组 -c, --comment 注释
案例:
此外我们可以用chage命令去查看用户状态
[root@localhost ~]# chage -l lizhifeng 最近一次密码修改时间 :7月 12, 2021 密码过期时间 :从不 密码失效时间 :从不 帐户过期时间 :从不 两次改变密码之间相距的最小天数 :0 两次改变密码之间相距的最大天数 :99999 在密码过期之前警告的天数 :7
我们可以编辑/etc/login.defs进行修改 ,那么后建立的账户就会遵循这个配置进行创建
[root@localhost ~]# cat /etc/login.defs | egrep -v "^#|^$" MAIL_DIR /var/spool/mail PASS_MAX_DAYS 99999 #密码过期时间,99999代表永不过期 PASS_MIN_DAYS 0 PASS_MIN_LEN 5 #密码最小长度 PASS_WARN_AGE 7 #在密码过期之前警告的天数 UID_MIN 1000 #普通用户uid从1000开始 UID_MAX 60000 #普通用户最大uid值 SYS_UID_MIN 201 #系统用户uid开始值 SYS_UID_MAX 999 #系统用户uid最大值 GID_MIN 1000 #普通用户gid从1000开始 GID_MAX 60000 #普通用户gid从1000开始 SYS_GID_MIN 201 #系统用户gid从201开始 SYS_GID_MAX 999 #系统用户gid最大值999 CREATE_HOME yes #自动在/home/创建家目录 UMASK 077 #家目录默认权限是700 USERGROUPS_ENAB yes #自动创建用户组 ENCRYPT_METHOD SHA512
如果用户已经被创建,我们想修改他的用户信息可以用
chage -I 5 USERNAME:密码5天后失效时间 chage -M 30 USERNAME:密码30天后过期 chage -W 3 USERNAME:在密码过期之前3天警告 chage -E 11/15/19 USERNAME:在19年11月15日账户过期 chage -l USERNAME:查看用户过期时间,密码过期时间等
linux组管理
linux组管理有如下特点
- 每个组有一个组ID
- 组信息保存在/etc/group中
- 每个用户至少拥有一个主组,最多可以拥有31个附属组
- 通过命令groupadd,groupdel,groupmod来对组进行管理
groupadd用法如下:
groupadd:创建一个group1的组
[root@localhost ~]# groupadd group1
-g :指定创建的组的ID
[root@localhost ~]# groupadd group2 -g 1500 #创建一个group2的组,并指定组ID为1500
-r:创建一个系统组
[root@localhost ~]# groupadd -r group3 #创建一个系统组group3 [root@localhost ~]# cat /etc/group | grep group group1:x:1001: group2:x:1500: group3:x:991:
groupmod用法如下: