Linux之文件(目录)默认权限、特殊权限与隐藏权限

文件默认权限

Linux之用户组、文件权限详解了解到文件与目录的基本权限管理,文件在创建时如果不指定具体的权限,那么系统会给它分配一个默认的权限,这个默认权限就是umask。

[email protected]:~$ umask   //我们可以使用umask命令来查看默认权限
0002

第1个0是特殊默认权限,可以先不用管。后面002就是我们创建文件/目录的默认权限。由于普通文件默认没有可执行权限,即只有r、w权限,所以权限最大为666(-rw-rw-rw-)。目录需要进入访问权限,需要有r、w、x权限,所以权限最大为777(drwxrwxrwx)。而umask是该默认值需要减去的权限,此时,umask为002(第1个0先不管),普通文件默认权限=(-rw-rw-rw-)-(--------w-)=664(-rw-rw-r--),目录默认权限=(drwxrwxrwx)-(--------w-)=775(drwxrwxr-x)。

[email protected]:~$ touch aa
[email protected]:~$ mkdir bb
[email protected]:~$ ls -l
total 20
-rw-rw-r-- 1 vbird vbird    0 9月   9 14:56 aa
drwxrwxr-x 2 vbird vbird 4096 9月   9 14:56 bb

刚才使用umask查看到默认权限是0002,linux中除了常见的读(r)、写(w)、执行(x)权限以外,还有3个特殊的权限,分别是setuid、setgid和stick bit,就对应着第1个0值。

文件特殊权限:SUID、SGID、SBIT

setuid:SUID,全称为set UID,在高位起第三位上表现为s。

当我们普通用户使用passwd进行修改密码的时候,passwd会去访问/etc/shadow,但是普通用户根本没有读写的权限,那怎么办呢?linux在我们运行passwd修改密码的时候,会暂时获取/etc/shadow文件拥有者root的权限,然后对/etc/shadow进行读写访问,访问完之后释放文件拥有者的权限。这就是setuid的魅力。简单来说就是,使用者暂时获取文件(目录)拥有者的权限,使用完再释放。

setgid:SGID和SUID类似,在高起第六位上表现为s。

SGID改变的是执行者的所属组,可以对可执行文件和目录设置。通过对目录设置SGID属性,可以使得访问在该目录下创建的所有文件的所有权,都继承原目录的所有者,而非创建者。因为一旦有用户进入到该目录下,由于具有SGID权限,进入目录后的用户就会变成该目录的所有者,在该目录下创建的所有文件,都以该目录的所有者的身份创建。

利用好这个权限位在很多团队合作的项目上更加方便管理。比如一个共同维护的数据文件夹,为了方便管理,只允许管理员对里面的数据具有改变和删除的权利,但是却有很多用户需要有在该目录下添加数据文件的权利,利用SGID可以很好的解决这一点。

stick bit:SBID权限同样只对目录有效,在权限位的最低位表现为t。

通过对目录设置SBID权限,并且该目录的权限为777,则所有用户可以在该目录下都可以创建文件,并且文件所有者是自己。但是在SBID权限的目录下,只有root和文件的所有者才能删除该文件,即使文件的属性为777也不能被其他用户删除。这个权限在共享过程中非常实用。共享的文件任何人都有读写的权利,但是只有文件的所有者才能删除该文件。

SUID/SGID/SBIT权限设置

SUID数值为4,SGID数值为2,SBIT数值为1,umask中默认权限中的从左往右第1个值为SUID/SGID/SBIT权限。

文件隐藏权限

除了以上权限外,linux还提供了一套隐藏权限机制。需要使用chattr设置隐藏权限,lsattr查看隐藏权限。

命令功能:

查看文件的隐藏权限

命令格式:

lsattr [ -RVadv ] [ files...  ]

命令参数:

-R  递归查看目录下文件

-V  显示程序的版本

-a  不忽略以“.”开头的隐藏文件

-v  列出文件的版本号和生成号

命令实例:

见chattr

命令功能:

查看文件的隐藏权限

命令格式:

chattr [ -RVf ] [ -v version ] [ mode ] files...

命令参数:

+-= :分别为 [+ 增加] [- 减少] [= 设定] 属性的意思
A  :当设定了 A 这个属性时,这个档案(或目录)的访问时间atime (access) 将不可被修改, 可避免例如手提式计算机容易有磁盘 I/O 错误的情况发生!
S  :这个功能有点类似 sync 的功能!就是会将数据同步写入磁盘当中!可以有效的避免数据流失!
a  :当设定 a 之后,这个档案将只能增加数据,而不能删除,只有 root 才能设定这个属性。
c  :这个属性设定之后,将会自动的将此档案压缩,在读取的时候将会自动解压缩出来,但是在储存的时候,将会先进行压缩之后再储存(看来对于大档案似乎蛮有用的!)
d  :当 dump (备份)程序被执行的时候,设定 d 属性将可使该档案(或目录)具有 dump 功效!
i  :这个 i 可就很厉害了!他可以让一个档案不能被删除、改名、设定连结也无法写入或新增数据!对于系统安全性有相当大的帮助! (只有root才能设置)
j  :当使用 ext3 这个档案系统格式时,设定 j 属性将会使档案在写入时先记录在 journal 中! 但是当 filesystem 设定参数为 data=journalled 时,由于已经设定了日志了,所以这个属性无效!
s  :当档案设定了 s 参数时,他将会被完全的移除出这个硬盘空间。
u  :与 s 相反的,当使用 u 来设定档案时,则数据内容其实还存在磁盘中,可以使用来找回该文件。

-R  递归查看目录下文件

-V  显示程序的版本

-v  列出文件的版本号和生成号

备注:chattr命令很多设置必须root才能设置

命令实例:

1.新建1个文件aa,然后设置隐藏权限i使之不能被删除。(只有root才能执行此操作)

[email protected]:/home/vbird# touch aa
[email protected]:/home/vbird# lsattr aa
-------------e-- aa
[email protected]:/home/vbird# chattr +i aa
[email protected]:/home/vbird# lsattr aa
----i--------e-- aa
[email protected]:/home/vbird# rm aa
rm: cannot remove ‘aa‘: Operation not permitted
[email protected]:/home/vbird# chattr -i aa
[email protected]:/home/vbird# rm aa
[email protected]:/home/vbird# ls aa
ls: cannot access ‘aa‘: No such file or directory

原文地址:https://www.cnblogs.com/hwli/p/9613868.html

时间: 2024-10-11 19:10:02

Linux之文件(目录)默认权限、特殊权限与隐藏权限的相关文章

linux中文件/目录普通权限

权限 文件属性的查看############# ls -l filename/ls -ld dictionary-|rw-r--r--.|1| root| root|   46 |Oct  1 05:03 |filename- ---------  -  ----  ----    --  ------------  -------- 1    2         3    4      5      6      7             81."-":文件类型 -    ##普通

Linux的文件/目录的权限

文件类型 权限 属主 属组 目录名/文件名drwx------ 2 alice girls 4096 9月 25 11:33 alicedrwx------ 2 rose girls 4096 9月 25 10:47 rosedrwx------ 2 tom boys 4096 9月 25 10:43 tom 文件类型: - 普通文件 d 目录 O(∩_∩)O~~文件/目录的权限:1.user 所有者(属主 owner 文件的创建人 u)2.group 所有者所在的组 g比如:useradd -

Linux基础(7)修改文件的属主,属组,权限

修改Linux下文件的属主,属组以及权限的命令有chown chmod chgrp umask 1.chown 修改文件的属主 chown [options] username file_name... -R 递归修改 如果file是目录的话 使用chown还可以同时修改用户的属主,属组 chown  username.grpname file_name 或者chown username:grpname file_name 2.chmod 修改文件的权限 chomod MODE file...

文件和目录权限chmod更改所有者和所属组chown,umask,隐藏权限lsattr/chattr

一.文件和目录权限chmod ls -l 可以查看当前目录下的文件 显示的9列内容(用空格划分列),他们有什么含义呢?   -rw-r--r-- 这个表示什么? 第一列的 - :表示这个文件是普通文件       d :表示该文件为目录       l :链接文件       b :块设备 权限 r:读.w:写. x:执行 r=4 w=2 x=1     (如:rwx=7 rw-=6 rw-r--r-- =644)  第一组 rw- 表示文件所有者的权限,r:读.w:写.     x:执行 r-

文件或目录的权限chmod,chown更改所有者和所属组,umask及隐藏权限

文件或目录的权限chmod -rwxr--r--. 1 root root 0 6月 8 20:22 2.txt 可读(r)可写(w)可执行(x),第一段是所有者,第二段是所属组,第三段是其他人 r=4,w=2,x=1.rwx=7,rw-=6, --x=1,rw-r--r--=644, rw-r-xr-x=655 chmod === change mode改变权限 如:rwx------=700 chmod 700 2.txt [[email protected] ~]# chmod 700 2

linux之权限之隐藏权限

linux权限之隐藏权限 大家都知道,在Linux系统中root用户是超级大"Boss",这样说的原因是没有他删除不了的文件,感觉"无法无天"那么今天我要跟大家分享的一个权限可以限制root用户删除指定权限. 首先说说,隐藏权限有什么作用,什么场景需要使用.隐藏权限的作用主要有: 1)任何用户不可以删除用户创建的指定文件,只可以查看 2)任何用户不可以删除用户创建的指定文件,可以查看且可以编辑指定文件. 有些人说哪里会用到此权限呢?/etc/resolv.conf

linux:文件及文件夹管理

http://blog.csdn.net/pipisorry/article/details/39854265 查看用户的信息 pika:~$id pikauid=1000(pika) gid=1000(pika) groups=1000(pika),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),108(lpadmin),124(sambashare),125(docker) 文件夹与路径 cd:变换目弽pwd:显示弼前目弽mkdir:建立一个新的文

ugo,ACL,3s及隐藏权限

ugo权限 实际上是三个权限的缩写:user , group  ,other chown  属主:属组  文件名 (更改属主及属组) chmod  -v  u+rwx  文件名  更改user用户的权限 chmod  -v  g+rwx  文件名  更改group组的权限 chmod  -v  o+rwx  文件名  更改其他人的权限 r:可读--4 w:可写--2 x:可执行--1 所以也可以用数字代替要修改的权限 chmod  -v    754   文件名 #属主有满权限,属组有读和执行权

攻城狮在路上(叁)Linux(十五)--- 文件与目录的默认权限与隐藏权限

一.文件默认权限:umask <==需要被减去的权限. 1.umask指的是当前用户在新建文件或者目录时的默认权限,如0022; 2.默认情况下,用户创建文件的最大权限为666; 创建目录的最大权限为777. 3.最终权限 = 最大权限 - umask; <== 此处注意并非是数值直接相减. 4.设置umask: umask 002; 5.由上述条件,自己判断用户新建文件或目录的最终权限. 二.文件的隐藏属性: chattr.lsattr , 隐藏属性对于系统安全有很大的帮助. chattr