Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux权限管理机制

Linux多用户环境下用户、用户组及权限修改实操指南

作者:detayun

Linux 是一个多用户操作系统,权限体系是它安全机制的核心,本文会系统讲解Linux多用户环境下的权限管理机制,涵盖用户、用户组、文件权限、特殊权限以及权限修改实操,希望对大家有所帮助

前言

Linux 是一个多用户操作系统,权限体系是它安全机制的核心。服务器上多人协作、程序运行、文件访问控制,全都依赖用户、用户组和文件权限这套体系。很多新手在部署项目、启动服务、访问日志时经常遇到 Permission denied,本质都是权限没有理清楚。今天我们系统梳理 Linux 用户、用户组、文件权限、特殊权限以及权限修改实操。

一、用户与用户组基础

1. 用户是什么

Linux 下每个登录操作系统、执行程序的主体都是用户,每个用户都有唯一标识:UID(用户ID)。

查看当前登录用户:

whoami

查看系统所有用户:

cat /etc/passwd

/etc/passwd 存储用户基础信息,每行格式:用户名:密码占位符:UID:GID:注释:家目录:登录shell

2. 用户组是什么

用户组(group)是用户的集合,方便批量授权。一个用户必须属于一个主组,同时可以加入多个附加组。

查看所有用户组:

cat /etc/group

查看某个用户属于哪些组:

id username

3. 用户、用户组常用命令

用户操作

# 创建用户,自动创建同名组和家目录
useradd testuser
# 设置密码
passwd testuser
# 删除用户(-r 同时删除家目录和邮件)
userdel -r testuser
# 修改用户信息,比如修改用户名、附加组
usermod

用户组操作

# 创建用户组
groupadd dev
# 删除用户组
groupdel dev
# 将用户加入附加组
usermod -aG dev testuser
# 把用户从组移除
gpasswd -d testuser dev

重点:usermod -aG 的 -a 不能丢,不加 -a 会覆盖原有附加组!

二、Linux 文件基础权限

执行 ls -l 我们就能看到文件权限字符串,示例:

-rw-r--r--  1 root root  123 Oct 25 10:00 test.txt

第一位:文件类型

后面9位,分成3组,每组3位:属主 权限 | 属组权限 | 其他用户权限

每组顺序固定:r 读 w 写 x 执行

符号含义文件目录
rread 读读取文件内容列出目录里面的文件(ls)
wwrite 写修改、覆盖文件在目录新建、删除、重命名文件
xexecute 执行可以运行脚本/程序进入目录(cd)

非常容易踩坑:目录必须有x权限才能cd进去,只有r没有x,只能看文件名,无法访问里面内容;目录的w权限可以删除里面文件,哪怕文件本身没有写权限!

数字权限(八进制权限,运维最常用)

r=4,w=2,x=1,权限相加得到数字:

常见权限组合:

修改权限 chmod

两种写法:符号模式 / 数字模式

# 数字方式(推荐)
chmod 644 test.txt
chmod 755 mydir

# 符号方式
# u属主 g属组 o其他 a全部
chmod u+x test.sh
chmod g-w test.txt
chmod a-r test.txt

# 递归修改目录下所有文件权限(-R)
chmod -R 755 mydir/

修改属主、属组 chown

chown 用来改变文件属于哪个用户、哪个组

# 修改属主
chown testuser test.txt
# 同时修改属主和属组
chown testuser:dev test.txt
# 递归修改目录
chown -R testuser:dev mydir/

三、三个特殊权限(SUID、SGID、Sticky位)

普通rwx之外还有3个高级权限,生产场景偶尔会用到

SUID(4000):文件执行时,以文件属主身份运行,不是执行者身份

SGID(2000)

Sticky 粘滞位(1000):目录开启后,用户只能删除自己创建的文件

设置特殊权限示例:

chmod 4755 file    # SUID
chmod 2755 dir     # SGID
chmod 1777 /tmp    # Sticky

四、默认权限:umask

新建文件、目录不会直接是777,由umask掩码控制默认权限

查看umask:

umask

一般服务器默认 022

注意:umask是掩码,不是简单减法,是位运算,记住常用022、002即可。

五、实操避坑&常见问题

Permission denied 排查思路

不要随便给777权限!777代表所有人可读可写可执行,线上服务器尽量避免,安全风险极高

chmod -R、chown -R 慎用,递归操作改错会大面积破坏系统权限

普通用户修改自己密码不需要root,修改别人密码必须root

六、小结

简单总结这套关系:

Linux权限没有想象复杂,但非常严谨。掌握这套体系,排查日志、部署项目、搭建共享目录、服务权限报错基本都能独立解决。

到此这篇关于Linux多用户环境下用户、用户组及权限修改实操指南的文章就介绍到这了,更多相关Linux权限管理机制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文