【Linux】文件与目录的默认权限与隐藏权限

01. 文件默认权限:umask

文件的权限可使用chmod来改变,可是咱们默认建立文件的权限是什么?那就是与umask这个有关了。下来咱们学习这个指令php

1.1 简单使用umasklinux

[root@iZbp13q6hd8z3xaagcmz6gZ /]# umask
0022
[root@iZbp13q6hd8z3xaagcmz6gZ /]# umask -S
u=rwx,g=rx,o=rx
[root@iZbp13q6hd8z3xaagcmz6gZ /]#

查阅的方式有俩种,一种是直接输入umask,就能够看到数字体态的权限设置分数。一种则是假如-S这个选项,就会以符号类型的方式来显示出权限了。shell

1.2 解释为何会有四组数字
咱们的文件权限会有十个字符,第一字符表明文件类型,剩余九个字符分为三组,分别为拥有者(owner),群组(group),其余人(others)
可是在这里第一组是特殊权限用的,后边的三组才是咱们的须要学习的权限。安全

1.3 文件和目录的默认权限
在默认权限的属性上,目录和文件是不同的,由于X权限对于目录是很是重要的!没有X权限就表明没法进入这个目录工做。可是文件则不须要这个权限,由于文件一般是用在于数据的记录,因此就不须要。学习

  • 文件的默认权限:-rw-rw-rw-
  • 目录的默认权限:drwxrwxrwx

1.4 解释umask数字的含义
umask的分数指的是该默认值须要减掉的权限,r,w,x分别是4,2,1分。
1.1中咱们知道umask为0022,第一个值咱们暂时无论,第二个值为0,也就是user并没减去任何权限,不过group和others的权限都减去了2(也就是w这个权限)那么当这个用户建立文件和目录的权限分别就是测试

  • 文件:(-rw-rw-rw-)- (-----w–w-)= -rw-r–r--
  • 目录:(drwxrwxrwx)- (d----w–w-)= drwxr-xr-x

1.5 实战检测1.4 推测的准确性
实战的检测证实了咱们的推理是正确的字体

[root@iZbp13q6hd8z3xaagcmz6gZ learn]# umask
0022
[root@iZbp13q6hd8z3xaagcmz6gZ learn]# ll -d test*
-rw-r--r-- 1 root kaka    0 Aug 15 11:19 test1
drwxr-xr-x 2 root kaka 4096 Aug 15 11:19 test2
[root@iZbp13q6hd8z3xaagcmz6gZ learn]# 

1.6 umask的利用与重要性
想象一个情况那就是你跟你的工做伙伴在一个目录下工做,而后你建立的文件你的工做伙伴只有读的权限,没有写的权限。那是否是你建立一个问价,你就得修改一下文件的权限。在不知道umask这个指令以前或许是,可是如今能够一键设置,哈哈
处理这个问题很简单的啦!那就是说只要保证咱们的文件权限为664就能够了呗!
那么咱们的umask的数值就应该是002了,而不是022.ui

1.7 如何设置umask
umask后边直接跟上数值就能够了url

[root@iZbp13q6hd8z3xaagcmz6gZ learn]# umask 002
[root@iZbp13q6hd8z3xaagcmz6gZ learn]# touch test;ll test
-rw-rw-r-- 1 root kaka 0 Aug 16 10:49 test
[root@iZbp13q6hd8z3xaagcmz6gZ learn]#

1.8 umask默认值的注意点
为了安全考虑root用户为022,其余用户为002spa

例题1:假设你的 umask 为 003 ,请问该 umask 状况下,建立的文件与目录权限为?

  • 文件:(-rw-rw-rw)- (--------wx) = -rw-rw-r–
  • 目录:(drwxrwxrwx)- (d-------wx) = drwxrwxr–

02. 文件隐藏属性

文件除了有那三个权限以外,还有隐藏的属性,下面看一下

2.1 chattr设置文件隐藏属性

  • :+ 增长某一个特殊参数,其余本来存在参数则不动。
  • :- 移除某一个特殊参数,其余本来存在参数则不动。
  • := 设置必定,且仅有后面接的参数

参数:
a :当设置 a 以后,这个文件将只能增长数据,而不能删除也不能修改数据,只有root 才能设置这属性
i :这个 i 可就很厉害了!他可让一个文件“不能被删除、更名

[root@iZbp13q6hd8z3xaagcmz6gZ learn]# chattr +a kaka.php 
[root@iZbp13q6hd8z3xaagcmz6gZ learn]# lsattr kaka.php 
-----a-------e-- kaka.php

2.2 查看文件的隐藏属性

lsattr 文件名

2.3 注意点
只要设置了隐藏属性,无论任何用户都没法逃脱这个属性的做用。root用户也是

03. 文件特殊特权:SUID, SGID, SBIT

文件权限重要的有三个,那就是rwx这三个权限,可是在测试目录的时候会发现,咱们有的目录跟文件的权限是有点怪怪的,下面咱们来看一下

[root@iZbp13q6hd8z3xaagcmz6gZ /]# ls -ld tmp
drwxrwxrwt. 13 root root 4096 Aug 16 03:38 tmp
[root@iZbp13q6hd8z3xaagcmz6gZ /]# ls -l /usr/bin/passwd
-rwsr-xr-x. 1 root root 27832 Jun 10  2014 /usr/bin/passwd

文件权限不该该只有rwx,这里怎么会有特殊权限,t跟s

  • SUID
    当s这个标志出如今文件拥有者的x权限上时,例如passwd这个文件的权限状态–rwsr-xr-x,此时就被称为set uid,简称为SUID的特殊权限
    • SUID权限仅对二进制程序有效
    • 执行者对于该程序须要具备x的可执行权限
    • 本权限仅在执行该程序的过程当中有效
    • 执行者将具备该程序拥有者的权限

白话文简单的说一下,在linux中全部帐号的密码都记录在/etc/shadow这个文件中,这个文件的权限为---------- 1 root root 866 Aug 13 15:28 /etc/shadow,意思是这个文件仅有root可读,且仅有root能够强制写入,既然这个文件只有root能够修改,那么另一个用户是否能够修改呢!咱们使用另外一个用户输入passwd这个指令,通常的使用者固然能够修改本身的密码了

这里是否是有点矛盾了,明明/etc/shadow就不能让其余用户去存取,为何其余用户能够修改,这就是SUID的功能了

  1. dmtsai 对于 /usr/bin/passwd 这个程序来讲是具备 x 权限的,表示 dmtsai 能执行
    passwd;
  2. passwd 的拥有者是 root 这个账号;
  3. dmtsai 执行 passwd 的过程当中,会“暂时”得到 root 的权限;
  4. /etc/shadow 就能够被 dmtsai 所执行的 passwd 所修改。

但若是 dmtsai 使用 cat 去读取 /etc/shadow 时,他可以读取吗?由于 cat 不具备 SUID 的权
限,因此 dmtsai 执行 “cat /etc/shadow” 时,是不能读取 /etc/shadow 的。

注意点:SUID对于目录来讲是无效的

  • SGID
  • SBIT 因为这里的的几个特权会在后边进行详细介绍,这里就先暂时只写这一个,后边在返回来补充
相关文章
相关标签/搜索