☰
Linux 管理账号与权限
2026/10/2 13:01:57 网站建设 项目流程

前言

在 Linux 系统中,用户、组和文件权限是保障系统安全与稳定运行的基石。无论是日常运维、应用部署还是团队协作,都离不开对账号的合理规划和对权限的精细控制。本文从用户账号与组账号的管理入手,逐步深入到文件属性的查看与修改,最后介绍 SUID、SGID、SBIT 特殊权限以及 ACL 访问控制列表等进阶内容,帮助读者系统掌握 Linux 权限体系的核心知识

目录

一、 管理用户账号和组账号

1.1 用户账号、组账号概述

1.2 用户账号管理

1.3 组账号管理

1.4 账号查询命令

二、 管理目录和文件属性

2.1 查看属性 ls -l / ls -ld

2.2 chmod 修改权限

2.3 chown 修改归属(属主、属组)

2.4 umask 默认权限

三、 进阶权限:特殊权限 + ACL

3.1 特殊权限 SUID SGID SBIT

3.2 ACL 访问控制列表(精细化权限)

本章总结


一、 管理用户账号和组账号

1.1 用户账号、组账号概述

用户账号三类

用户类型UID代表特点
超级用户0root系统最高权限,谨慎操作
普通用户1000 及以上zhangsan、mike管理员创建,日常业务操作
程序用户1-999ftp、mail运行服务,禁止登录系统

安全原则:日常不用 root 登录,需要管理员权限再切换

组账号

  • 基本组(私有组):每个用户只能有 1 个,创建用户默认生成,一般和用户名同名,记录在 /etc/passwd
  • 附加组(公共组):一个用户可以加入多个,用来获得额外权限

内核只识别 UID、GID 数字,用户名只是给人看的映射

1.2 用户账号管理

两大核心配置文件

/etc/passwd:用户公开基础信息,所有用户可读;7 个字段用 : 分隔

用户名:x:UID:GID:注释:家目录:登录Shell

第 2 位 x 只是密码占位符,真正密码不在此处

Shell:/bin/bash 可登录;/sbin/nologin 禁止登录

/etc/shadow: 影子密码文件,仅 root 可读,存放加密密码、有效期,9 个字段 : 分隔

用户名:加密密码:上次改密时间:最短有效期:最长有效期:警告时间:宽限期:账号失效时间::

!! / * 代表账号锁定,禁止登录

用户管理命令

useradd 创建用户

useradd [选项] 用户名
选项作用
-u指定 UID
-d指定家目录
-e YYYY-MM-DD账号失效日期
-g指定基本组
-G指定附加组,多个逗号隔开
-s指定登录 shell,-s /sbin/nologin 禁止登录

默认行为:自动创建同名基本组;家目录 /home/用户名;复制 /etc/skel/* 模板文件到家目录

passwd 设置密码、锁定解锁账号

root:可以给任意用户改密码;普通用户只能改自己密码

passwd 用户名 # 设置密码 passwd -l 用户名 # 锁定账号 passwd -u 用户名 # 解锁账号 passwd -S 用户名 # 查看账号状态 PS正常 / LK锁定 passwd -d 用户名 # 清空密码

usermod 修改已有用户属性,选项大部分同 useradd

usermod -l 新名 旧名 # 修改登录用户名 usermod -L 用户名 # 锁定账号 usermod -U 用户名 # 解锁账号 usermod -d /xxx 用户名 # 修改家目录(记得移动真实目录文件)

userdel 删除用户

userdel 用户名 # 只删账号,保留家目录 userdel -r 用户名 # -r 删除账号+家目录+邮件(推荐)

用户初始配置文件(模板 /etc/skel)

家目录下隐藏文件,用户登录自动执行

文件作用生效时机
.bash_profile用户个人环境变量登录时
.bashrc别名、终端设置打开新终端就执行
.bash_logout退出执行脚本退出登录时

用户全局配置:/etc/profile、/etc/bashrc,全部用户生效,root 修改

修改配置后 source 文件名 立即生效

1.3 组账号管理

组配置文件

/etc/group:组信息,4 字段组名:x:GID:成员,基本组成员不写在此处,附加组成员写在这里

/etc/gshadow:组密码影子文件,企业很少使用

组管理命令

groupadd 组名 # 创建组,-g 指定GID gpasswd -a 用户 组名 # 把用户加入组(附加组) gpasswd -d 用户 组名 # 从组移除用户 gpasswd -M user1,user2 组名 # 批量设置全部组成员,覆盖旧成员 groupdel 组名 # 删除组;不能删除某个用户的基本组

1.4 账号查询命令

groups # 查看当前用户所有组;groups 用户名查看指定用户 id 用户名 # 查看uid/gid/所有组id(最常用) w # 查看当前系统所有登录用户,负载信息 pinky -l 用户名 # 查看用户登录属性(需要安装util-linux-user)

二、 管理目录和文件属性

每个文件 / 目录两大属性:权限、归属(属主、属组);root 不受权限限制

2.1 查看属性 ls -l / ls -ld

ls -l 文件;ls -ld 目录(看目录本身,不是目录里面内容)

ls -l

权限 10 字符结构:【文件类型】【属主 u 3位】【属组 g 3位】【其他 o 3位】

文件类型:- 普通文件,d 目录,l 软链接,b 块设备,c 字符设备

r w x 对文件和目录含义完全不同(重点)

权限文件含义目录含义
r读:读取文件内容可以列出目录文件名(ls)
w写:修改、覆盖文件内容可以创建、删除、重命名目录内文件(高危!就算文件不属于自己)
x执行:运行脚本 / 程序 ./xxx可以 cd 进入目录,目录必须要有 x 权限才能访问内部

2.2 chmod 修改权限

只有 root 和文件属主可以执行 chmod

r=4,w=2,x=1;数字累加;三级:属主、属组、其他

-R:递归,修改目录 + 目录内部全部文件子目录,谨慎使用

1)字符模式 chmod [ugoa][+-=][rwx]

u 属主,g 属组,o 其他,a 全部

+ 增加权限,- 移除,= 直接设置权限覆盖旧权限

chmod u+x,o-r test.txt

2)数字模式

chmod 755 test # rwxr-xr-x chmod -R 644 /xxx # 递归

2.3 chown 修改归属(属主、属组)

只有 root 可以执行 chown

chown 属主:属组 文件/目录 # 同时修改属主属组
chown 属主 文件 # 只改属主
chown :属组 文件 # 只改属组,冒号不能丢
chown -R user1:group1 /opt/data # 递归修改目录及内部所有文件

不要随便修改系统目录 /etc/bin 归属,会系统故障

2.4 umask 默认权限

控制新建文件、目录的默认权限

目录最大原始权限 777;文件最大原始权限 666(文件默认不会自动获得 x 权限,安全保护)

实际权限 = 最大权限 - umask

常用 umask(权限掩码)

umask新建目录新建文件场景
022755644系统服务器默认
002775664团队共享目录
077700600私有敏感目录
000777666测试,生产禁止!

umask 022:临时生效(当前终端)

永久修改要写配置文件,source 生效

umask 和父目录权限无关,新建文件权限只由 umask 决定

三、 进阶权限:特殊权限 + ACL

3.1 特殊权限 SUID SGID SBIT

特殊权限数字位字符标记适用对象功能典型案例
SUID4属主 x 位变成 s可执行文件执行程序时临时获得文件属主权限/usr/bin/passwd 4755
SGID2属组 x 位变成 s目录(也可文件)目录内新建文件自动继承目录的属组团队共享目录
SBIT 粘滞位1其他 x 位变成 t仅目录目录内用户只能删除自己创建的文件,不能删别人的/tmp 目录 1777

设置示例

chmod u+s /bin/xxx # 设置SUID;数字4755
chmod g+s /opt/team # 设置SGID;数字2775
chmod o+t /opt/mytmp # 设置SBIT;数字1777

警告:不要随意给 rm、bash 设置 SUID,会造成重大安全漏洞。

3.2 ACL 访问控制列表(精细化权限)

基础权限只有 u/g/o 三级,ACL 可以给单独某个用户 / 单独某个组设置独立权限。

命令:

getfacl 文件 查看 ACL;ls -l 权限位末尾出现 + 号说明开启 ACL

setfacl 设置 ACL

setfacl 常用选项

  • -m 添加 / 修改 ACL 条目
  • -x 删除单条 ACL
  • -b 清空全部 ACL,恢复普通权限
  • -R 递归
  • -d 设置默认 ACL(仅目录):目录中新创建文件自动继承 ACL

示例

# 给用户mike设置rwx权限
setfacl -m u:mike:rwx test.txt
给组dev设置rwx,递归目录
setfacl -R -m g:dev:rwx /opt/data
设置目录默认ACL,新建子文件自动继承
setfacl -d -m u:mike:rwx /opt/data
删除单条acl
setfacl -x u:mike test.txt
全部清空acl
setfacl -b test.txt
getfacl test.txt # 查看acl详情

本章总结

  • 账号体系:用户分超级(UID 0)、普通、程序用户;每个用户 1 个基本组、多个附加组;核心配置 /etc/passwd、/etc/shadow、/etc/group
  • 账号管理命令:用户命令 useradd、passwd、usermod、userdel;组命令 groupadd、gpasswd、groupdel;查询 id、groups、w
  • 文件权限:r/w/x 对文件和目录意义不同;chmod 改权限;chown 改归属;-R 递归慎用
  • 默认权限:umask 控制新建文件目录默认权限,文件不会默认带执行权限
  • 特殊权限:SUID(4 提权)、SGID(2 继承属组)、SBIT(1 粘滞位防删他人文件)
  • ACL 精细化授权:setfacl/getfacl;-d 默认 ACL 实现新建文件继承权限

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询