千家信息网

Linux系统文件的默认权限和特殊权限

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,默认权限 umask[root@CentOS7 data]# touch file1 ; ll file1-rw-r--r--. 1 root root 0 Oct 9 13:55 file1[ro
千家信息网最后更新 2026年11月03日Linux系统文件的默认权限和特殊权限

默认权限 umask

[root@CentOS7 data]# touch file1 ; ll file1-rw-r--r--. 1 root root 0 Oct  9 13:55 file1[root@CentOS7 data]# mkdir dir1 ; ll dir1 -ddrwxr-xr-x. 2 root root 6 Oct  9 13:55 dir1

umask是什么

从上面的例子中可以发现,新建文件和目录的默认权限分别是644、755,为啥会这样?这就要聊聊umask了,Linux系统中默认的umask值是022,它直接影响了用户创建的文件或目录的默认权限,它与chmod的效果刚好相反,umask是将文件的对应权限位遮掩住,或者说是从文件的对应权限位"拿走"相关权限,而chmod是给文件赋予相关权限。

如何计算umask值

在Linux系统中,目录最大的权限是777,文件最大的权限是666,因为基于安全原因,新建的文件不允许有执行权限,所以从文件的权限位来看,文件比目录少了执行(x)权限。
下面来设置不同的umask值并创建文件:

[root@CentOS7 data]# umask 222[root@CentOS7 data]# touch file1 ; ll file1-r--r--r-- 1 root root 0 Sep 30 16:41 file1

可以发现用666减去222就得到了444,但真的是这样计算吗?来看看下面的这个例子:

[root@CentOS7 data]# umask 123[root@CentOS7 data]# touch file2 ; ll file2-rw-r--r-- 1 root root 0 Sep 30 16:48 file2[root@CentOS7 data]# mkdir dir1 ; ll dir1 -ddrw-r-xr-- 2 root root 6 Sep 30 16:49 dir1

从结果中可以发现新建的文件权限并不是666-123=543,而是644,而目录的权限却是正常减出来的值777-123=654,这是为啥呢?我们把文件的最大值666和umask值123转换成二进制对位展开来看下:

110 110 110-->666(文件最大权限值)  001 010 011-->123(umask值)  110 100 100-->644(新建文件的权限)  

从结果来看就验证了前面说的"umask是将文件的对应权限位遮掩住",1表示遮掩,0则反之。

为了方便记忆可以用下面的这种计算方法:
目录:默认权限是777减去umask值的结果
文件:默认权限是666减去umask值,权限位对应的值如果为奇数则加1,例如:666-123=543,其结果是644。

umask的使用方法

临时生效:umask 022
永久生效:~/.bashrc(用户设置,推荐),/etc/bashrc(全局设置)

有时候需要给新建的文件一个非常严格的权限,比如000,可以使用以下方法:

[root@CentOS7 data]# umask 666 ; touch file3[root@CentOS7 data]# ll file3---------- 1 root root 0 Sep 30 22:26 file3[root@CentOS7 data]# umask0666or[root@CentOS7 data]# touch file4 ; chmod 000 file4[root@CentOS7 data]# ll file4---------- 1 root root 0 Sep 30 22:33 file4

以上两种方法虽然都能实现创建一个000权限的新文件,但是看起来都挺繁琐的,尤其是前面的方法。如果只是临时设置一下umask值,可以用下面这个方法:

[root@CentOS7 data]# (umask 666 ; touch file5)[root@CentOS7 data]# ll file5---------- 1 root root 0 Sep 30 22:42 file5[root@CentOS7 data]# umask0022

这种方式只是临时的改一下umask值,而不会改变当前的umask值。

特殊权限 suid sgid sticky

suid

功能:作用于可执行的二进制程序,用户执行此程序时,将继承此程序所有者的权限。

一般情况下,文件能不能访问取决于用户的身份,而不是取决于文件本身。但是,有了suid权限的文件就不是这么一回事了,最明显的就是/etc/shadow这个文件。我们都知道这个文件是用来保存用户密码的,默认情况下,普通用户对此文件没有任何权限,但是当用户执行passwd这个二进制程序时却能更改口令,同时也会将加密后的密码保存到文件中,这正是passwd这个二进制程序的特殊权限所在。

[hechunping@CentOS7 ~]$ ll /etc/shadow---------- 1 root root 1271 Sep 30 23:18 /etc/shadow[hechunping@CentOS7 ~]$ passwdChanging password for user hechunping.Changing password for hechunping.(current) UNIX password: New password: Retype new password: passwd: all authentication tokens updated successfully.[hechunping@CentOS7 ~]$ ll /etc/shadow---------- 1 root root 1271 Sep 30 23:23 /etc/shadow

从上面的执行结果中可以发现/etc/shadow文件的权限为000,但是普通用户hechunping却依然可以执行passwd命令来更改自己的口令,也就是说这个文件的内容也被更改了,不过从文件的权限来看是没法更改的,这是怎么回事呢?这就是由于suid权限导致的,可以通过查看/usr/bin/passwd这个可执行文件的权限来分析:

[root@CentOS7 data]# ll `which passwd`-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

可以看到这个可执行的文件所有者段有个"s",这就代表着suid这个特殊权限,它的作用就是当用户去执行这个程序的时候会继承所有者的权限,所以普通用户hechunping也能更改自己的口令。

sgid

功能:
作用于可执行的二进制程序,用户执行此程序时,将继承此程序所属组的权限。
作用于目录,在此目录中新建文件和目录的所属组将自动继承父目录的所属组。
测试1:当目录的属组为当前用户的主组时,目录下新建文件的所属组也是当前用户的主组;[root@CentOS7 data]# ll /data/ -ddrwxr-xr-x 2 root root 19 Oct  1 13:18 /data/[root@CentOS7 data]# touch test1 ; ll test1-rw-r--r-- 1 root root 0 Oct  1 13:19 test1测试2:更改目录的属组为其它组,目录下新建文件的所属组依然是当前用户的主组;[root@CentOS7 data]# chgrp hechunping /data/ ; ll /data/ -ddrwxr-xr-x 2 root hechunping 32 Oct  1 13:19 /data/[root@CentOS7 data]# touch test2 ; ll test2-rw-r--r-- 1 root root 0 Oct  1 13:20 test2测试3:当目录具有sgid权限时,目录下新建文件和目录的所属组自动继承了父目录的所属组。[root@CentOS7 data]# chmod g+s /data/ ; ll /data/ -ddrwxr-sr-x 2 root hechunping 45 Oct  1 13:20 /data/[root@CentOS7 data]# touch test3 ; ll test3-rw-r--r-- 1 root hechunping 0 Oct  1 13:21 test3[root@CentOS7 data]# mkdir dir1 ; ll dir1 -ddrwxr-sr-x 2 root hechunping 6 Oct  1 13:23 dir1

sticky

功能:作用于目录,该目录下的文件只有文件所有者或root才能删除。
测试1:给/data目录777权限,root在该目录下新建的文件普通用户hechunping能删除[root@CentOS7 data]# chmod 777 /data/ ; ll /data/ -d drwxrwxrwx 2 root root 6 Oct  1 13:56 /data/[root@CentOS7 data]# touch file1[root@CentOS7 data]# su - hechunpingLast login: Tue Oct  1 13:52:22 CST 2019 on pts/0[hechunping@CentOS7 ~]$ rm -rf /data/file1 [hechunping@CentOS7 ~]$ ls /data/[hechunping@CentOS7 ~]$ exitlogout测试2:给/data目录设置了sticky权限后,普通用户hechunping无法删除该目录root用户的文件,但是可以删除自己的文件。[root@CentOS7 data]# chmod o+t /data/ ; ll /data/ -ddrwxrwxrwt 2 root root 6 Oct  1 13:57 /data/[root@CentOS7 data]# touch file2 [root@CentOS7 data]# su - hechunpingLast login: Tue Oct  1 13:56:57 CST 2019 on pts/0[hechunping@CentOS7 ~]$ rm -rf /data/file2 rm: cannot remove '/data/file2': Operation not permitted[hechunping@CentOS7 ~]$ ll /data/total 0-rw-r--r-- 1 root root 0 Oct  1 13:58 file2
ps:在Linux系统中/tmp目录默认就设置了sticky权限

设定文件特定属性

虽然说权限是给普通用户设置的,但是有些文件设置了特殊属性后,root也无法进行删除、更改等操作,通过chattr命令来实现。

chattr

更改Linux文件系统上的文件属性

【例1】通过chattr命令来设置文件的属性,实现无法删除、更改内容和重命名操作:

[root@CentOS7 data]# touch file1 ; chattr +i file1[root@CentOS7 data]# rm -rf file1 rm: cannot remove 'file1': Operation not permitted[root@CentOS7 data]# mv file1 file1.bakmv: cannot move 'file1' to 'file1.bak': Operation not permitted[root@CentOS7 data]# echo "hello" >> file1 -bash: file1: Permission denied

【例2】通过chattr命令来设置文件的属性,实现只能追加内容的操作:

[root@CentOS7 data]# touch file1;chattr +a file1[root@CentOS7 data]# echo "hello" >> file1 [root@CentOS7 data]# > file1 -bash: file1: Operation not permitted[root@CentOS7 data]# rm -rf file1 rm: cannot remove 'file1': Operation not permitted[root@CentOS7 data]# mv file1 file1.bakmv: cannot move 'file1' to 'file1.bak': Operation not permitted[root@CentOS7 data]# echo "world" >> file1

【例3】列出文件的特定属性

[root@CentOS7 data]# lsattr file1 -----a---------- file1
ps:如果要去掉用chattr设定的特定属性,把"+"换成"-"即可。
文件 权限 目录 用户 程序 属性 所属 普通 方法 二进制 作用 结果 测试 特殊 系统 最大 命令 所有者 面的 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 南京欣网互联网络科技有限公司 美国互联网保险保险科技 河南真二互联网科技有限公司 互联网科技未来 互联网金融 科技金融 互联网科技英文 亿账通互联网科技 科技伦理 互联网公司 中国最先进互联网科技公司 新华互联网科技2019 成都互联网科技公司100强 银川新华互联网科技职业技术培训学校图片 互联网大会黑科技排名 河南猎农互联网科技有限公司 崇明区互联网教育科技诚信经营 每天都有哪些好的互联网科技 银川新华互联网科技学校原画 科技和互联网行业的特点 唐山双旺合互联网科技产业园 互联网科技创新创业项目 互联网科技企业 互联网科技活动banner 互联网最新的科技 中国 科技 互联网 凡科互联网科技 苏州互联网科技贷款公司 菲比寻常互联网科技 深圳前海聚择互联网科技有限公司 移动互联网科技股 群盈汇互联网科技有限公司
0