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

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

01. 文件默认权限:umask


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

1.1 简单使用umask


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

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


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.


1.7 如何设置umask

umask后边直接跟上数值就可以了


[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,其他用户为002


例题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的功能了


dmtsai 对于 /usr/bin/passwd 这个程序来说是具有 x 权限的,表示 dmtsai 能执行

passwd;

passwd 的拥有者是 root 这个帐号;

dmtsai 执行 passwd 的过程中,会“暂时”获得 root 的权限;

/etc/shadow 就可以被 dmtsai 所执行的 passwd 所修改。

但如果 dmtsai 使用 cat 去读取 /etc/shadow 时,他能够读取吗?因为 cat 不具有 SUID 的权

限,所以 dmtsai 执行 “cat /etc/shadow” 时,是不能读取 /etc/shadow 的。


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


SGID

SBIT

由于这里的的几个特权会在后边进行详细介绍,这里就先暂时只写这一个,后边在返回来补充


相关文章
|
7天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
29 3
|
12天前
|
存储 Linux Windows
linux常用目录
/sbin s就是super User的意思,这里存放的是系统管理员使用的系统管理程序。 /home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一版该目录名是以用户的账号命名的。 /root 该目录为系统管理员,也称为超级权限者的用户主目录。 /lib 系统开机所需要最基本的动态连接共享库,其作用类似于windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 /etc 所有的系统管理所需要的配置文件和子目录。 /usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program fies目录。 /bo
29 2
|
17天前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
34 1
linux特殊权限!!
|
10天前
|
Linux 开发工具 Perl
在Linux中,有一个文件,如何删除包含“www“字样的字符?
在Linux中,如果你想删除一个文件中包含特定字样(如“www”)的所有字符或行,你可以使用多种文本处理工具来实现。以下是一些常见的方法:
35 5
|
10天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
29 6
|
10天前
|
Linux
在 Linux 系统中,`find` 命令是一个强大的文件查找工具
在 Linux 系统中,`find` 命令是一个强大的文件查找工具。本文详细介绍了 `find` 命令的基本语法、常用选项和具体应用示例,帮助用户快速掌握如何根据文件名、类型、大小、修改时间等条件查找文件,并展示了如何结合逻辑运算符、正则表达式和排除特定目录等高级用法。
36 6
|
11天前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下的文件数量是常见的需求。本文介绍了多种方法,包括使用 `ls` 和 `wc` 命令组合、`find` 命令、`tree` 命令以及编程方式(如 Python)。无论你是新手还是有经验的用户,都能找到适合自己的方法。掌握这些技巧将提高你在 Linux 系统中的操作效率。
23 4
|
11天前
|
监控 Linux Perl
Linux 命令小技巧:显示文件指定行的内容
在 Linux 系统中,处理文本文件是一项常见任务。本文介绍了如何使用 head、tail、sed 和 awk 等命令快速显示文件中的指定行内容,帮助你高效处理文本文件。通过实际应用场景和案例分析,展示了这些命令在代码审查、日志分析和文本处理中的具体用途。同时,还提供了注意事项和技巧,帮助你更好地掌握这些命令。
26 4
|
17天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
40 2
|
16天前
|
缓存 监控 Linux