linux 基础操作 (五)————文件权限及修改

这一节主要将linux系统文件属性,如何查看、修改文件属性,并在特定环境下修改文件属性达到相应的要求

一、文件权限

1、建立文件夹并通过 ls -l 查看文件夹属性

linux 基础操作 (五)————文件权限及修改
他的格式是这样的
linux 基础操作 (五)————文件权限及修改
1.”-“:文件类型
- ##普通文件
d ##目录
c ##字符设备
s ##套接字
p ##管道
b ##快设备
l ##连接

2.”rw-r–r–”:文件读写权限
rw-|r–|r–
* $ @

*所有人的权限
$所有组的权限
@其他人的权限

3.”1”:
对文件:文件内容被系统记录的次数
对目录:目录中文件属性的字节数

4.”root”:文件所有人

5.”root”:文件所有组

6.”46”:文件内容的大小

7.”Oct 1 05:03”:文件最后一次被修改的时间

8.”filename”:文件名字
linux 基础操作 (五)————文件权限及修改
这里我把test的目录的所有人和所有组修改成了test用户和test组
以下是修改目录属性的命令
chown 修改所有人
chgrp 修改所有组
- R 通过迭代的方式修改
linux 基础操作 (五)————文件权限及修改

2、文件夹的权限

linux 基础操作 (五)————文件权限及修改
可以看到test文件夹的权限是 rwx | r-x | r-x
对所有人可读可写可执行,对所有组可读可执行,对其他人可都可执行
linux 基础操作 (五)————文件权限及修改

3、修改文件夹权限

linux 基础操作 (五)————文件权限及修改
可以使用字符型和数字型两种方式修改文件夹权限

4、系统默认权限的设定

linux 基础操作 (五)————文件权限及修改
这里需要说一下umask,它是系统默认权限设定的值,又四位数字组成,第一位为特殊位
linux 基础操作 (五)————文件权限及修改
这里可以看到umask为0022 ,也就是说新建的文件默认权限是755,对所有人可读可写可执行,对所有组可读可执行,对其他人可都可执行,如果我们将他修改为0777,那么将对任何人/组默认设定不给任何权限
linux 基础操作 (五)————文件权限及修改

在当前shell修改的umask不是永久的,重新开启一个新的shell的话,umask值会回到默认值,我们可以通过系统文件修改umask默认值
linux 基础操作 (五)————文件权限及修改
source 命令:重新加载文件

5、文件的访问控制(acl列表)

如果需要给特殊的人加上特殊的权限就可以使用acl列表
drwxrwx—+ 2 root root 17 Jul 18 01:39 /westos/
‘ + ‘表示/westos目录时有权限列表
可以通过getfacl命令查看文件夹属性
getfacl /westos/

file: westos/ ##文件名称
owner: root ##文件所有人
group: root ##文件所有组
user::rwx ##拥有者权限
user:student:rwx ##特殊用户权限
group::— ##组权限
mask::rwx ##权限掩码
other::— ##其他*限
注意:当文件上有权限列表时,ls -l 能看到的权限是假的

linux 基础操作 (五)————文件权限及修改

下面我对test3文件夹设置了acl列表 让他对test的用户可读可写可执行,尽管它的默认权限是没有任何权限,cat 命令是之前提权给test用户的,可以看到已经成功查看了本没有权限查看的文件内容,不过建议将文件建立在root目录外的任意文件夹内,免得sudo影响
linux 基础操作 (五)————文件权限及修改

6、特殊权限

linux 基础操作 (五)————文件权限及修改
suid :可以让本不能执行这个文件夹或文件的用户执行,比如ping命令
sgid :可以让不同的用户再同一个文件夹建立目录并标识创建人,同时其他人不得删除创建人的文件夹,只能查看
sticky :可以阻止同组内的人员删除其他人建立的文件,也就是只能自己删除自己建立的文件,尽管你们是在同一个用户组中(root除外)