1378 字
7 分钟
Linux 用户和组管理

Linux用户和组#

1 用户#

1.1 用户分类#

超级用户:
UID=0,默认为root
普通用户:
UID=1000 - 60000
可以登录系统,权限比管理员低,只能对自己目录下的文件进行访问和修改
伪(系统)用户:
UID=1-999
不能登录系统,与系统与程序服务相关

1.2 用户信息文件 271489356#

/etc/passwd ---- 用户信息文件#

存放用户信息,所有用户可读,不安全

zyl:x:1000:1000:zyl:/home/zyl:/bin/bash
1 2 3 4 5 6 7
1:用户名
2:密码位(已废弃),保存在/etc/shadow
3:UID:用户标识号
4:GID:缺省组标识号
先有组再有用户
5:用户信息记录字段(备注)
6:家目录,用户登录系统后的缺省目录
7:用户使用的shell,默认是/bin/bash(命令解释器)
/sbin/nologin为伪用户

1.3 用户密码信息文件#

/etc/shadow --- 密码信息文件#

存放用户密码相关新信息,只有root用户可读,其他用户没有任何权限。

zyl: $6$AzhZ6Kh..... : : 0 : 99999 : 7 : : :
1 2 3 4 5 6 7 8 9
1:用户名
2:加密后的密码。$6:SHA-512加密。$1:md5加密。$5:SHA-256加密
!! ①只有两个!! -- 当前是没有设置密码 不能正常登录并被禁用 ②加密密码前面有!! --- 当前这个用户禁用了
3:最后一次修改密码时间,从1970.1.1开始计算
4:最小修改密码时间间隔。0代表可以随时修改
5:密码有效期。默认99999天,相当于永久。
6:密码需要更改前的警告天数。默认为7天。
7:密码过期后的宽限天数
0:密码过期后,账户立马被停用
-1:密码永不失效
8:账户失效时间
9:保留位

1.4 用户命令操作#

useradd#

useradd [参数] [用户名]
选项:
-u(UID):手工指定用户ID
-d [家目录]:手工指定用户的家目录
-M:不创建家目录
-c [用户说明]:手工指定的用户说明(用户备注信息)
-g [组名]:手工指定用户的初始组
-G [组名]:指定用户的附属组
-s(shell):手工指定用户的登录shell。默认是/bin/bash

userdel#

userdel [-r] 用户名 //删除用户
-r 连带家目录同时删除

passwd#

passwd [选项] [用户名]
选项:
-S:查询用户密码的密码状态,仅root用户可用
-l:暂时锁定用户,仅root用户可用
-u:解锁用户,仅root用户可用

usermod#

usermod [选项] [用户名]
选项:
-u(UID)修改用户的UID号
-c(用户说明)修改用户的说明信息
-G(组名)修改用户的附属组
-L(Lock)临时锁定用户
-U(Unlock)解锁用户锁定

chage#

chage [选项] [用户名]
选项:
-d (日期) 修改密码最后一次更改日期(shadow[3]字段)
-m(天数) 两次密码修改间隔(shadow[4]字段)
-M(天数) 密码有效期(shadow[5]字段)
-W(天数) 密码过期前的警告天数(shadow[6]字段)
-I (天数) 密码过期后宽限天数(shadow[7]字段)
-E (日期) 账号失效时间(shadow[8]字段)
id 用户名 //查看用户信息
whoami //查看当前用户
who am i //查看登录系统的用户
su [选项] [用户名]
选项:
-c 仅执行一次命令,而不切换用户身份
sudo 用root用户权限执行命令
vim /etc/sudoers //这个文件配置sudo权限
root ALL=(ALL) ALL
zyl ALL=(ALL) ALL

2 用户组#

用户和组是多对多的关系

2.1 用户组分类#

管理员组:(root gid=0)
普通用户组:(gid=1-60000)
系统组:1-999
登录组:1000-60000
主组(初始组):
1.每个用户有且只有一个主组
2.不能删除主组,一般删除用户的同时会删除主组
附属组:
1.后来添加的组
2.用户可以是零个或多个附属组的成员

2.2 用户组信息文件#

/etc/group --- 组信息文件#

zyl:x:1000:zyl
1 2 3 4
1:组名
2:密码位(已废弃)---- /etc/gshadow
3:GID
4:组内用户
wheel --- 管理员组
普通用户加入到wheel组,可以实现无密码使用su 和 sudo 提权的操作
前提配置文件功能启用
su ---- /etc/pam.d/su ---- #auth sufficient pam_wheel.so trust use_uid --- 注释符去掉
sudo ---- /etc/sudoers ---- #%wheel ALL=(ALL) NOPASSWD: ALL --- 注释符去掉

2.3 用户组密码信息文件#

/etc/gshadow(拓展)#

zyl: !! : :zyl
1 2 3 4
1:组名
2:密码位
3:组管理员
4:组中的附加用户

2.4 用户组命令操作#

groupadd 组名 //创建组
用法:groupadd [选项] 组
选项:
-f, --force 如果组已经存在则成功退出并且如果 GID 已经存在则取消
-g, --gid GID 为新组使用 GID
-h, --help 显示此帮助信息并推出
-K, --key KEY=VALUE 不使用 /etc/login.defs 中的默认值
-o, --non-unique 允许创建有重复 GID 的组
-p, --password PASSWORD 为新组使用此加密过的密码
-r, --system 创建一个系统账户
-R, --root CHROOT_DIR chroot 到的目录
groupdel 组名 //删除组
gpasswd 管理/etc/group和/etc/gshadow 文件
选项详解:
-a: 添加用户到组 //gpasswd -a userA groupB
-d: 从组删除用户
-A:指定管理员 //gpasswd -A userA groupA
-M:指定组成员和-A的用途差不多;
-r:删除密码;
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组。
groupmod 修改用户组属性
-g 为用户指定新的GID
-o 与 -g同时使用,使指定的新GID可以不唯一
-n 将用户组的名字改为新名字
Linux 用户和组管理
https://wangyi187.top/posts/os-11-linux-users/
作者
WangYi
发布于
2024-07-30
许可协议
CC BY-NC-SA 4.0