在Linux中,文件权限是构建多用户操作系统的基础元素,它确保了每个用户只能在其权限范围内操作文件.
- 0位表示类型 在Linux中第一个字符代表这个文件是什么类型的
符号 | 文件类型 |
---|---|
- | 文件 |
d | 目录 |
l | 链接文档 |
-
1-3位确定属主(该文件的所有者),拥有该文件的权限
-
4-6位确定属组(所有者的所属组),拥有该文件的权限
-
7-9位确定其它用户拥有该文件的权限
rwx
是用来表示文件或目录权限的三个基本权限的缩写,它们分别代表:
- r(read):读取权限。对于文件,这意味着用户可以打开并查看文件内容;对于目录,用户可以列出目录中的文件和子目录列表(即执行
ls
命令查看目录内容)。 - w(write):写入权限。对于文件,用户可以编辑、修改或删除文件内容;对于目录,用户可以在该目录下创建、删除、移动或重命名文件或子目录。
- x(execute):执行权限。对于文件,尤其是程序文件,用户可以运行或执行该文件;对于目录,用户可以通过
cd
命令进入该目录,以及执行其他与目录相关的操作(如查找目录下的文件)。
众所周知,一般用户权限比root用户少很多,例如test这个目录,所有者和所属组都是root用户
,所有者拥有全部的权限,所属组和其它用户都没有写权限
我切到其它用户,这个用户在test中就属于其它用户,对test目录进行写操作是没有权限的
要想使"zhangsan"这个用户对test目录有写权限,有两种方法:修改文件和目录权限和修改文件的所有者或所属组
-
修改文件和目录权限
chmod (change mode) : 用于修改文件或目录的访问权限。
格式:
chmod [选项] 权限模式 文件或目录
示例:
u:所有者
g:所属组
o:其它用户
a:所有人
chmod u+x file.txt # 给文件所有者添加执行权限
chmod g=rw file.txt # 给文件所在组赋予读写权限
chmod o-rwx file.txt # 删除其他用户的所有权限
chmod a+rwx file.txt # 给所有用户添加读写执行权限(a代表all)
实操:
注意这里需要使用sudo来执行
能看到此时其它用户对test已经有读权限了,创建文件也成功了
除了上述使用u,g,o加减r,w,x
这种方式,还可以使用数字来表示
有权限情况下:r=4, w=2, x=1
无权限情况下:r=w=x=0
实操:
-
修改文件的所有者
chown: 用于更改文件或目录的所有者。
语法格式:
chown [选项] 新所有者[:新组] 文件或目录
示例:
1chown user1 file.txt # 将file.txt的所有者更改为user1 2chown user1:group1 file.txt # 将file.txt的所有者更改为user1,所属组更改为group1
实操:
不要忘记使用sudo命令来执行
可以看到test目录的所有者已经是"zhangsan"了
-
修改文件的所属组
chgrp:用于更改文件或目录的所属组。
语法格式:
chgrp [选项] 新组 文件或目录
实操:
补充:
chown -R 所有者:所属组 目录/文件
-R: 递归操作