什么是liunx用户
:本质就是可以登录系统并使用系统资源(如运行程序、操作文件)的实体。使用操作系统的人都是用户。
作用
alice
, bob
, www-data
, mysql
)。类型
bin
、daemon
),默认无法登录什么是Linux 用户组
:一组用户的集合。它是一种逻辑分组机制,用于简化权限管理。用户组就是是具有相同系统权限的一组用户
作用
类型
sudo
组允许执行管理员命令)用户与组的关系:
/etc/passwd
中。/etc/group
文件中。/etc/group
- 用户组信息库# 查看 /etc/group
[root@lavm-zo7f3xq5c6 ~]# cat /etc/group
# group_name:password:GID:user_list
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
nobody:x:99:
users:x:100:
utmp:x:22:
utempter:x:35:
input:x:999:
systemd-journal:x:190:
systemd-network:x:192:
dbus:x:81:
polkitd:x:998:
ssh_keys:x:997:
sshd:x:74:
postdrop:x:90:
postfix:x:89:
chrony:x:996:
jd:x:1000:jd
nscd:x:28:
ntp:x:38:
cgred:x:995:
docker:x:994:
字段说明:
字段 | 说明 |
---|---|
| 用户组名称(如 |
| 历史遗留字段(通常为 |
| 用户组的唯一数字 ID(系统组:1-999,普通组:≥1000) |
| 属于该组的附加成员列表(逗号分隔),不包含以该组为主组的用户 |
root
组编号为 0
1-499
系统预留的编号 预留给安装的软件和服务的500
开始x
/etc/gshadow
- 用户组加密信息[root@lavm-zo7f3xq5c6 ~]# cat /etc/gshadow
# group_name:encrypted_password:admins:members
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
mem:::
kmem:::
wheel:::
cdrom:::
mail:::postfix
man:::
dialout:::
floppy:::
games:::
tape:::
video:::
ftp:::
lock:::
audio:::
nobody:::
users:::
utmp:!::
utempter:!::
input:!::
systemd-journal:!::
systemd-network:!::
dbus:!::
polkitd:!::
ssh_keys:!::
sshd:!::
postdrop:!::
postfix:!::
chrony:!::
jd:!!::jd
nscd:!::
ntp:!::
cgred:!::
docker:!::
字段说明:
字段 | 说明 |
---|---|
| 用户组名称(与 |
| 组密码(加密后),用于非成员用户临时加入该组( |
| 组管理员列表(逗号分隔),可添加/删除组成员 |
| 组成员列表(逗号分隔),覆盖 |
/etc/group
中的记录一一对应/etc/passwd
- 用户账户信息文件[root@lavm-zo7f3xq5c6 ~]# cat /etc/passwd
# username:password:UID:GID:GECOS:home_dir:shell
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
chrony:x:998:996::/var/lib/chrony:/sbin/nologin
nscd:x:28:28:NSCD Daemon:/:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
字段说明:
字段 | 说明 |
---|---|
| 用户登录名(如 |
| 密码占位符( |
| 用户唯一数字 ID( |
| 用户的主组 ID(对应 |
| 用户备注信息(如全名、电话,逗号分隔) |
| 用户主目录路径(如 |
| 用户默认 Shell(如 |
/etc/shadow
- 用户安全信息文件 cat /etc/shadow
# username:encrypted_password:lastchg:min:max:warn:inactive:expire:reserved
root:$6$KRlxyfFB$jw.j4L6boxyU3QulNeVOI4KycxRd0fQ2.NMBMP69/Lz1/Uk0MTJGuNi.HPpVbt1q1OjdvWdoZkCxjHBTIr7l10:20238:0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
adm:*:17834:0:99999:7:::
lp:*:17834:0:99999:7:::
sync:*:17834:0:99999:7:::
shutdown:*:17834:0:99999:7:::
halt:*:17834:0:99999:7:::
mail:*:17834:0:99999:7:::
operator:*:17834:0:99999:7:::
games:*:17834:0:99999:7:::
ftp:*:17834:0:99999:7:::
nobody:*:17834:0:99999:7:::
systemd-network:!!:17942::::::
dbus:!!:17942::::::
polkitd:!!:17942::::::
sshd:!!:17942::::::
postfix:!!:17942::::::
chrony:!!:17942::::::
nscd:!!:17942::::::
ntp:!!:18058::::::
关键字段说明:
字段 | 说明 |
---|---|
| 用户登录名(与 |
| 加密后的密码(格式: |
| 上次修改密码的天数(从 1970-01-01 起) |
| 密码最小使用天数(0=可随时修改) |
| 密码最大有效期(99999=永不过期) |
| 密码到期前警告天数(7=提前7天警告) |
| 密码过期后账户宽限天数(到期后仍可登录,超时则锁定) |
| 账户绝对过期日期(从 1970-01-01 起的天数,空=永不过期) |
命令 | 作用 | 常用参数 | 示例 |
---|---|---|---|
| 显示当前用户名 | 无 |
|
| 显示用户身份信息 |
|
|
| 切换用户身份 |
|
|
| 以超级用户权限执行命令 |
|
|
| 修改用户密码 |
|
|
| 显示用户所属组 | 无 |
|
| 显示用户登录历史 |
|
|
[root@lavm-zo7f3xq5c6 ~]# whoami
root
[root@lavm-zo7f3xq5c6 ~]# id root
uid=0(root) gid=0(root) 组=0(root)
su - alice # 切换到 alice 用户并加载其环境
Password: # 输入 alice 的密码
alice@host:~$
# 查看系统日志
sudo tail -f /var/log/syslog
[root@lavm-zo7f3xq5c6 ~]# groups root
root : root
[root@lavm-zo7f3xq5c6 ~]# last
root pts/1 173.41.142.189 Mon Jun 9 11:22 still logged in
root pts/0 173.41.143.189 Mon Jun 9 11:22 still logged in
# 语法
groupadd [选项] 组名
# 选项
# -g GID: 指定组ID (默认自动分配)
# -r: 创建系统组 (GID < 1000)
#示例
groupadd developers # 创建普通组
groupadd -g 1500 testers # 创建指定GID的组
groupadd -r apache # 创建系统组
# 使用
groupadd developers
# 查看
[root@lavm-zo7f3xq5c6 ~]# cat /etc/group | grep developers
developers:x:1001:
# 语法
groupmod -n 新组名 旧组名
# 示例
groupmod -n dev-team developers # 重命名组
# 查看
[root@lavm-zo7f3xq5c6 ~]# cat /etc/group | grep dev-team
dev-team:x:1001:
# 语法
groupmod -g 新GID 组名
# 示例
groupmod -g 2000 dev-team # 修改组ID
# 查看
[root@lavm-zo7f3xq5c6 ~]# cat /etc/group | grep dev-team
dev-team:x:2000:
# 语法
groupadd -g 指定GID 组名
# 示例
groupadd -g 3000 qa-team # 创建GID=3000的组
# 查看
[root@lavm-zo7f3xq5c6 ~]# cat /etc/group | grep qa-team
qa-team:x:3000:
# 语法
groupdel 组名
# 不能删除用户的主组
# 示例
groupdel qa-team # 删除组
#语法
useradd [选项] 用户名
选项 | 作用 | 示例值 |
---|---|---|
| 指定主目录 |
|
| 指定主组 |
|
| 指定附加组 |
|
| 指定登录Shell |
|
| 指定UID |
|
| 创建主目录 | (无参数值) |
| 创建系统用户 | (无参数值) |
# 示例
useradd -g dev-team zhangsan #创建用户并指定用户组
# 查看
[root@lavm-zo7f3xq5c6 ~]# id zhangsan
uid=1000(zhangsan) gid=2000(dev-team) 组=2000(dev-team)
#语法
usermod -d 新目录 -m 用户名 # -m移动现有文件
# 创建用户并指定家目录
useradd -d /home/wangwu wangwu
# 指定wangwu2
usermod -d /home/wangwu2 wangwu
#语法
usermod [选项] 用户名
操作 | 命令格式 |
---|---|
修改主组 |
|
替换所有附加组 |
|
追加附加组 |
|
修改UID |
|
usermod -g dev-team alice # 修改主组
usermod -G docker,nginx alice # 替换附加组
usermod -aG sudo alice # 追加sudo组
usermod -u 2001 alice # 修改UID
# 语法
userdel [选项] 用户名
# 选项
# -r: 同时删除主目录和邮件
# -f: 强制删除(即使已登录)
userdel -r alice # 完全删除用户及目录
[root@lavm-zo7f3xq5c6 /]# ll
总用量 16
lrwxrwxrwx. 1 root root 7 2月 15 2019 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 5月 30 16:03 boot
drwxr-xr-x 19 root root 3000 5月 30 16:06 dev
drwxr-xr-x. 79 root root 8192 6月 9 16:17 etc
drwxr-xr-x. 5 root root 46 6月 9 15:31 home
-rw------- 1 root root 327059968 6月 1 14:06 net-tools-image.tar
# 权限结构解析
-rwxr-xr-- 1 user group 4096 Jan 1 10:00 file.txt
↑ ┬ ┬ ┬ ↑ ↑ ↑ ↑ ↑ ↑
│ │ │ │ │ │ │ │ │ └─ 文件名
│ │ │ │ │ │ │ │ └─ 修改时间
│ │ │ │ │ │ │ └─ 文件大小(字节)
│ │ │ │ │ │ └─ 所属组
│ │ │ │ │ └─ 所有者
│ │ │ │ └─ 链接数
│ │ │ └─ 其他人权限 (r--)
│ │ └─ 所属组权限 (r-x)
│ └─ 所有者权限 (rwx)
└─ 文件类型(-:普通文件,d:目录,l:链接)
r
(读):查看文件内容/列目录清单(对目录)w
(写):修改文件内容/在目录增删文件(对目录)x
(执行):运行程序/进入目录(对目录)属主(u)
:文件所有者属组(g)
:文件所属用户组其他用户(o)
:既非属主也非属组成员的用户ls -l 文件名 # 示例:-rwxr-xr-- 表示属主有rwx,属组有r-x,其他用户有r--
符号模式:
#u :表示当前用户
#g:所属组
# O:其他用户
## 所有用户(a)添加写权限
chmod [ugoa][+-=][rwx] 文件
示例:
# u :表示用户
# + :添加
# x:(执行)
chmod u+x data.txt # 为所有者添加执行权限
# g :所属组
# - :删除
# w写
chmod g-w data.txt # 移除所属组的写权限
chmod a=rwx data.txt # 所有用户设为 rwx
数字表示法(常用):
# 权限数据
# r:4
# w:2
# x:1
# 7= r+w+x
chmod 755 data1.txt # rwxr-xr-x (7=rwx, 5=r-x)
chmod 644 data1.txt # rw-r--r--
递归修改(目录及内容):
chmod -R 755 目录/
权限 | 含义 | 示例操作 |
---|---|---|
| 读取文件内容:允许查看文件内容(如 |
|
| 修改文件内容:允许编辑文件内容(需配合目录的 |
|
| 执行文件:允许运行文件(如脚本、二进制程序)。 |
|
关键点:
w
权限仅允许修改内容,删除文件需目录的 w
权限。644
(rw-r--r--
),即所有者可读写,其他用户只读。权限 | 含义 | 示例操作 |
---|---|---|
| 列出目录内容:允许查看目录中的文件列表(如 |
|
| 修改目录结构:允许在目录中创建、删除、重命名文件或子目录。 |
|
| 进入目录:允许访问目录内的元数据和文件(如 |
|
关键点:
w
权限是最关键的操作权限,即使没有 r
权限,只要目录有 x
权限,用户仍可进入目录并操作文件(需知道文件名)。755
(rwxr-xr-x
),即所有者可完全控制,其他用户可读和执行。权限修改命令及效果
命令 | 权限解析 | 结果 |
---|---|---|
|
| 目录权限: |
|
| 文件权限: |
|
| 目录权限: |
|
| 目录权限: |
| 同上(恢复默认文件权限) | 文件权限: |
|
| 文件权限: |
|
| 目录权限: |
rwx
控制内容访问,x
是执行关键。rwx
控制结构操作,x
是进入目录的关键。777
)。功能:控制新创建文件/目录的默认权限,通过“屏蔽”部分权限实现。
#查看当前 umask
umask # 输出示例:0022
结构解析:
0
:文件特殊权限(SetUID/SetGID/Sticky Bit)022
:文件/目录的基础 umask 值规则 | 说明 |
---|---|
最大权限 |
|
不可执行原则 | 新建文件默认无 |
计算方式 |
|
示例(umask=022) |
|
规则 | 说明 |
---|---|
最大权限 |
|
计算方式 |
|
示例(umask=022) |
|
📌 关键区别:目录保留执行权限(
x
),确保可进入
umask 0002 # 新文件:664(rw-rw-r--),目录:775(rwxrwxr-x)
vi /etc/profile # 在末尾添加: umask 0002
source /etc/profile # 立即生效
root 授权普通用户执行特权命令的工具
操作对象:系统命令(需绝对路径) 配置文件:
/etc/sudoers
(必须用visudo
编辑!)
# 语法
用户名 被管理主机=(可切换身份) 授权命令(绝对路径)
# 配置示例
# 1. 授权用户 stu2 以 root 身份执行所有命令:
stu2 ALL=(root) ALL
# 2. 授权组 admin 免密执行 apt 更新:
%admin ALL=(ALL) NOPASSWD: /usr/bin/apt update
# 3. 允许用户 bob 重启网络服务:
bob ALL=(root) /usr/bin/systemctl restart network
权限生效验证
# 检查 sudo 权限
sudo -l # 查看当前用户可执行的 sudo 命令
# 执行特权命令:
sudo /usr/bin/systemctl restart nginx # 需输入用户密码(除非配置NOPASSWD)
0002
(文件664,目录775)0022
(文件644,目录755)ALL
权限(如必须,则用 NOPASSWD:
需谨慎)通过
visudo -c
可检查配置文件语法是否正确
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。