Linux系统 -权限全面解析

↑ ↑

拥有者 所属组

二、用户体系与身份切换2.1 root超级用户与普通用户1. root超级用户

拥有系统的最高权限,几乎不受任何权限约束

可以访问和修改系统中的任何文件与配置

命令行提示符为#,与普通用户形成明显区别

拥有系统的最高权限,几乎不受任何权限约束

可以访问和修改系统中的任何文件与配置

命令行提示符为#,与普通用户形成明显区别

权限受到严格限制,只能访问自己目录下的文件

无法修改系统关键配置,需通过提权命令执行特权操作

命令行提示符为$

权限受到严格限制,只能访问自己目录下的文件

无法修改系统关键配置,需通过提权命令执行特权操作

命令行提示符为$

su(switch user)命令用于在不同用户之间切换,其用法和特性如下:

基本切换语法

基本切换语法

su - 用户名 # 切换到指定用户并重新加载环境(相当于登录)

切换到root用户

切换到root用户

su - # 完整切换到root环境

从root切换到普通用户

无需密码,直接执行su 用户名即可

退出当前用户可使用exit或Ctrl+D

重要特性

su切换时不会改变工作目录,su -会切换到目标用户的家目录

输入密码时不会显示任何字符,这是Linux的安全设计

从root切换到普通用户

无需密码,直接执行su 用户名即可

退出当前用户可使用exit或Ctrl+D

无需密码,直接执行su 用户名即可

退出当前用户可使用exit或Ctrl+D

重要特性

su切换时不会改变工作目录,su -会切换到目标用户的家目录

输入密码时不会显示任何字符,这是Linux的安全设计

su切换时不会改变工作目录,su -会切换到目标用户的家目录

输入密码时不会显示任何字符,这是Linux的安全设计

全称"superuser do",允许普通用户以特权身份执行命令

基于白名单机制(/etc/sudoers)进行授权管理

避免直接使用root账户,提高系统安全性

全称"superuser do",允许普通用户以特权身份执行命令

基于白名单机制(/etc/sudoers)进行授权管理

避免直接使用root账户,提高系统安全性

sudo -u 用户 命令 # 以指定用户身份执行命令

3. 认证机制

首次执行sudo时,需输入当前用户密码(验证是否在sudoers白名单)

验证通过后,默认15分钟内无需再次输入密码

若用户不在白名单,需输入root密码才能执行

首次执行sudo时,需输入当前用户密码(验证是否在sudoers白名单)

验证通过后,默认15分钟内无需再次输入密码

若用户不在白名单,需输入root密码才能执行

visudo

在文件中添加以下格式的授权规则:

用户名 主机名=(目标用户) 命令列表

# 示例:允许user1以root身份执行所有命令

user1 ALL=(ALL) ALL

三、文件权限的表示与管理3.1 文件属性与权限标识

通过ls -l命令查看文件时,第一列字符包含了丰富的权限信息:

drwxr-xr-- 1 user1 dev 4096 Jun 1 10:00 documents

↑↑↑↑↑↑↑↑↑

第1位:文件类型标识

-:普通文件

d:目录

l:符号链接

c:字符设备(如键盘、显示器)

b:块设备(如磁盘)

第2-10位:权限位,每3位一组

2-4位:拥有者权限

5-7位:所属组权限

8-10位:其他用户权限

权限位含义

r(读权限,4):允许读取文件内容或列出目录条目

w(写权限,2):允许修改文件内容或在目录中创建/删除文件

x(执行权限,1):允许执行文件或进入目录

-:无对应权限

第1位:文件类型标识

-:普通文件

d:目录

l:符号链接

c:字符设备(如键盘、显示器)

b:块设备(如磁盘)

-:普通文件

d:目录

l:符号链接

c:字符设备(如键盘、显示器)

b:块设备(如磁盘)

第2-10位:权限位,每3位一组

2-4位:拥有者权限

5-7位:所属组权限

8-10位:其他用户权限

2-4位:拥有者权限

5-7位:所属组权限

8-10位:其他用户权限

权限位含义

r(读权限,4):允许读取文件内容或列出目录条目

w(写权限,2):允许修改文件内容或在目录中创建/删除文件

x(执行权限,1):允许执行文件或进入目录

-:无对应权限

r(读权限,4):允许读取文件内容或列出目录条目

w(写权限,2):允许修改文件内容或在目录中创建/删除文件

x(执行权限,1):允许执行文件或进入目录

-:无对应权限

u:拥有者(user)

g:所属组(group)

o:其他用户(other)

a:所有用户(all)

+:添加权限

-:移除权限

=:设置精确权限

u:拥有者(user)

g:所属组(group)

o:其他用户(other)

a:所有用户(all)

+:添加权限

-:移除权限

=:设置精确权限

示例:

chmod u+x .sh # 为拥有者添加执行权限

chmod g-w,o-r file.txt # 移除所属组的写权限和其他用户的读权限

chmod a=rwx directory # 为所有用户设置读写执行权限

2. 八进制模式修改权限

将rwx转换为二进制,每3位对应一个八进制数:

rwx= 111= 7

rw-= 110= 6

r-x= 101= 5

r--= 100= 4

-wx= 011= 3

-w-= 010= 2

--x= 001= 1

---= 000= 0

rwx= 111= 7

rw-= 110= 6

r-x= 101= 5

r--= 100= 4

-wx= 011= 3

-w-= 010= 2

--x= 001= 1

---= 000= 0

示例:

chmod 755 .sh # 拥有者rwx,所属组r-x,其他用户r-x

chmod 644 config.txt # 拥有者rw-,所属组r--,其他用户r--

chmod 700 private.sh # 仅拥有者有rwx权限,其他用户无任何权限

3. 权限修改的前提条件

只有文件的拥有者或root用户可以修改文件权限

目录的权限修改同样遵循此规则

只有文件的拥有者或root用户可以修改文件权限

目录的权限修改同样遵循此规则

chown 新拥有者:新所属组 文件名 # 同时修改拥有者和所属组

chown -R 拥有者 目录名 # 递归修改目录及其所有内容的拥有者

2. chgrp:修改文件所属组chgrp 新所属组 文件名 # 修改所属组

chgrp -R 所属组 目录名 # 递归修改目录及其内容的所属组

3. 权限要求

执行chown和chgrp需要root权限

普通用户可通过sudo提权执行(需在sudoers白名单中)

执行chown和chgrp需要root权限

普通用户可通过sudo提权执行(需在sudoers白名单中)

目录作为特殊的文件类型,其r/w/x权限具有不同于普通文件的含义:

读权限(r)

允许用户读取目录中的文件列表

例如:使用ls命令查看目录内容

写权限(w)

允许用户在目录中创建新文件或子目录

允许用户删除或重命名目录中的文件(即使文件不属于该用户)

执行权限(x)

允许用户进入目录(使用cd命令)

允许用户访问目录中的文件(如读取或执行)

读权限(r)

允许用户读取目录中的文件列表

例如:使用ls命令查看目录内容

允许用户读取目录中的文件列表

例如:使用ls命令查看目录内容

写权限(w)

允许用户在目录中创建新文件或子目录

允许用户删除或重命名目录中的文件(即使文件不属于该用户)

允许用户在目录中创建新文件或子目录

允许用户删除或重命名目录中的文件(即使文件不属于该用户)

执行权限(x)

允许用户进入目录(使用cd命令)

允许用户访问目录中的文件(如读取或执行)

允许用户进入目录(使用cd命令)

允许用户访问目录中的文件(如读取或执行)

用户可以ls查看目录内容,但无法cd进入,也无法创建/删除文件

用户可以ls查看目录内容,但无法cd进入,也无法创建/删除文件

拥有者和所属组可以读写执行(创建、修改、删除文件)

其他用户可以查看和进入目录,但无法修改内容

拥有者和所属组可以读写执行(创建、修改、删除文件)

其他用户可以查看和进入目录,但无法修改内容

仅拥有者具有所有权限,其他用户无法访问

仅拥有者具有所有权限,其他用户无法访问

当创建新文件或目录时,系统会根据"起始权限"和"权限掩码(umask)"计算最终的默认权限:

普通文件起始权限:666(rw-rw-rw-)

目录起始权限:777(rwxrwxrwx)

最终权限= 起始权限 & (~umask),即起始权限减去umask指定的权限

普通文件起始权限:666(rw-rw-rw-)

目录起始权限:777(rwxrwxrwx)

最终权限= 起始权限 & (~umask),即起始权限减去umask指定的权限

2. 设置umaskumask0002 # 设置权限掩码(临时生效,重启后恢复)

3. 权限计算示例

场景:umask=0002

普通文件最终权限:666 & ~0002 = 664(rw-rw-r–)

目录最终权限:777 & ~0002 = 775(rwxrwxr-x)

场景:umask=022

普通文件最终权限:666 & ~022 = 644(rw-r–r–)

目录最终权限:777 & ~022 = 755(rwxr-xr-x)

场景:umask=0002

普通文件最终权限:666 & ~0002 = 664(rw-rw-r–)

目录最终权限:777 & ~0002 = 775(rwxrwxr-x)

普通文件最终权限:666 & ~0002 = 664(rw-rw-r–)

目录最终权限:777 & ~0002 = 775(rwxrwxr-x)

场景:umask=022

普通文件最终权限:666 & ~022 = 644(rw-r–r–)

目录最终权限:777 & ~022 = 755(rwxr-xr-x)

普通文件最终权限:666 & ~022 = 644(rw-r–r–)

目录最终权限:777 & ~022 = 755(rwxr-xr-x)

2. 永久修改(针对所有用户)vim /etc/profile # 在文件末尾添加umask 0002

source/etc/profile # 使修改立即生效

3. 针对特定用户修改vim ~/.bashrc # 在用户配置文件中添加umask设置

source~/.bashrc # 使修改立即生效

六、权限管理最佳实践6.1 安全原则

最小权限原则:只给用户分配完成任务所需的最低权限

避免直接使用root:通过sudo进行精确授权

定期审查权限:检查系统中是否有过度授权的用户或文件

最小权限原则:只给用户分配完成任务所需的最低权限

避免直接使用root:通过sudo进行精确授权

定期审查权限:检查系统中是否有过度授权的用户或文件

安装到系统目录(如/usr/local)需要sudo权限

说明:这些目录属于系统范围,安装的软件应为所有用户可用

安装到系统目录(如/usr/local)需要sudo权限

说明:这些目录属于系统范围,安装的软件应为所有用户可用

创建共享组:groupadd devteam

将团队成员加入组:usermod -aG devteam user1

设置目录所属组:chgrp devteam shared_dir

配置权限:chmod 775 shared_dir

创建共享组:groupadd devteam

将团队成员加入组:usermod -aG devteam user1

设置目录所属组:chgrp devteam shared_dir

配置权限:chmod 775 shared_dir

用户家目录应设置为700权限(rwx— —)

避免其他用户访问和修改个人文件

用户家目录应设置为700权限(rwx— —)

避免其他用户访问和修改个人文件

无法访问文件:检查是否为文件拥有者,或属于文件所属组

无法执行文件:确保文件有x权限,且所在目录有x权限

无法删除文件:检查文件所在目录是否有w权限

sudo权限问题:确认用户是否在sudoers白名单中,可通过visudo检查配置

无法访问文件:检查是否为文件拥有者,或属于文件所属组

无法执行文件:确保文件有x权限,且所在目录有x权限

无法删除文件:检查文件所在目录是否有w权限

sudo权限问题:确认用户是否在sudoers白名单中,可通过visudo检查配置

通过深入理解Linux权限体系,系统管理员可以构建安全、灵活的访问控制机制,而普通用户也能更好地理解自己的操作权限边界,从而更安全高效地使用Linux系统。返回搜狐,查看更多

Copyright © 2088 国足世界杯出线形势_世界杯出线 - ybjysq.com All Rights Reserved.
友情链接