Linux 权限问题

Introduction

  • Linux 系统上对文件的权限有着严格的控制,如果想对某个文件执行某种操作,必须具有对应的权限方可执行成功。
  • Linux 下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
  • Linux 下权限的粒度有拥有者群组其它组三种。每个文件都可以针对三个粒度,设置不同的 rwx (读写执行)权限。通常情况下,一个文件只能归属于一个用户和组,如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
  • Linux 上通常使用 chmod 命令对文件的权限进行设置和更改。

chmod

更改文件权限,chmod [Option] <mode> <file...>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
参数说明:

[Option]
-c, --changes like verbose but report only when a change is made (若该档案权限确实已经更改,才显示其更改动作)
-f, --silent, --quiet suppress most error messages (若该档案权限无法被更改也不要显示错误讯息)
-v, --verbose output a diagnostic for every file processed(显示权限变更的详细资料)
--no-preserve-root do not treat '/' specially (the default)
--preserve-root fail to operate recursively on '/'
--reference=RFILE use RFILE's mode instead of MODE values
-R, --recursive change files and directories recursively (以递归的方式对目前目录下的所有档案与子目录进行相同的权限变更)
--help 显示此帮助信息
--version 显示版本信息
[mode]
权限设定字串,详细格式如下 :
[ugoa...][[+-=][rwxX]...][,...],
其中
[ugoa...]
u 表示该档案的拥有者,g 表示与该档案的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示所有(包含上面三者)。
[+-=]
+ 表示增加权限,- 表示取消权限,= 表示唯一设定权限。
[rwxX]
r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。

[file...]
文件列表(单个或者多个文件、文件夹)

rwx

数字可以表示权限,规定数字 4、2、1 分别表示读、写、执行权限,即 r=4,w=2,x=1。例如经常看到的 777 就是 rwxrwxrwx。

用数字权限更改格式:chmod <abc> file...

1
2
3
4
5
其中
a,b,c各为一个数字,分别代表User、Group、及Other的权限。
相当于简化版的
chmod u=权限,g=权限,o=权限 file...
而此处的权限将用8进制的数字来表示User、Group、及Other的读、写、执行权限

Example

1
2
3
4
5
6
7
-rw------- (600)    只有拥有者有读写权限。
-rw-r--r-- (644) 只有拥有者有读写权限;而属组用户和其他用户只有读权限。
-rwx------ (700) 只有拥有者有读、写、执行权限。
-rwxr-xr-x (755) 拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限。
-rwx--x--x (711) 拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限。
-rw-rw-rw- (666) 所有用户都有文件读、写权限。
-rwxrwxrwx (777) 所有用户都有读、写、执行权限。

chown

更改文件拥有者,chown [Option] user[:group] file...

1
2
3
4
5
6
使用权限:root

说明:
[Option] : 同上文chmod
user : 新的文件拥有者的使用者
group : 新的文件拥有者的使用者群体(group)

例如在普通用户下会经常看到某些文件夹/文件“上锁”。

如果用 sudo chmod -R 777,递归将所有文件更改权限,当然能解锁,但是会有很大危险。
这个时候就可以用 chown,将文件/文件夹的拥有者更改为任意用户,即可解锁🔓。

Reference

本文作者:jujimeizuo
本文地址https://blog.jujimeizuo.cn/2024/06/05/Linux-权限问题/
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0 协议。转载请注明出处!