Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限

除了基本r,w,x权限外,在Linux还可以设定其他系统隐藏属性,可以用chattr来设定,和lsattr来查看,但注意一点,CentOS 7.x当中利用xfs作为预设文件系统,但是xfs就没有支持所有的chattr的参数了。仅支持部分参数。

文件预设权限:umask

Umask是指定目前用户在建立文件或目录时候的权限默认值,可以获取和设定umask。

上面0022中的0代表的是特殊权限,下面再说,基本权限相关的是剩下的那三个数字022.

022的意思是刨除的意思,是用户组刨除0(也就是不刨除),而组或者其他人则刨除2(w),同时文件在创建的时候还默认刨除x属性,也就是比如022 对于其他人是刨除2(2),再加上默认的刨除x,则最后其他人的属性是 rwx - w - x = r,最后整理得到,022默认对应的文件属性是rw-r--r-- 就是上面的a.dat。

而相对于文件夹来说,没有默认刨除x的这个事,2对应的就是

Rwx - w = r-x。所以022对应的文件夹属性就是rwxr-xr-x 上面图中a.dir就是。

若使用者建立文件,则预设没有x权限,亦即只有rw这两个权限,也就是最大为666,预设权限如下:

-rw-rw-rw-

若是建立文件的话,则没有默认删除x权限的事。最大为777:

drwxrwxrwx

一定要注意,umask的默认权限是排除权限的意思。同时处理权限的时候一定不能直接做减法然后去看,因为文件里面有一个默认x排除的事。同时也不要想着,如果是文件的话就直接666-umask,文件夹就777-umask,如果umask里面有x的话,666-umask会出错。

下面是修改umask

文件隐藏属性

Chattr(配置文件隐藏属性)

下面是演示一下chattr 中的 -i,root自己也删除不了。

lsattr(显示文件隐藏属性)

增加和查询隐藏属性

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

看到S属性和T属性了吗?之前接触的都是rwx,而那个S T属性就是特殊文件权限。

Set UID

当s这个标志出现在文件拥有者的x权限上时,例如上面那个passwd这个文件权限的状态-rwsr-xr-x中的s,此时称为Set UID,简称SUID的特出选线,SUID权限对于文件特殊功能是:

Passwd是更改密码的程序,shadow里面存的是密码,当我们作为一个非root的普通用户的时候我们依然可以更改自己的密码,也就是说我们可以操作权限为 ---------- 1 root root 的这个shadow文件,原因是passwd这个程序(文件)中有SUID的特殊权限,当执行这个passwd的时候我们就获得了文件拥有者root的权限,所以可以对shadow进行操作,有点类似与windows的内核态切换。根据经验,这种权限切换的地方很容易出现漏洞的,其他windows是这样,Linux的话刚接触没几天,并不知道相关情况。慢慢玩后期再看。

当然因为cat没有s[SUID]权限,所以在飞root权限下无法通过cat来看shadow文件内容:

对于cat和passwd两个中的SUID权限比较,书上有这个图:

同时注意。SUID只能用在binary program上,不能用在shell script上面。

Set GID

当s标志在文件拥有者的x项目为SUID,当s在组群的x时则称为Set GID,SGID。

与SUID不同的是,SGID可以针对文件或目录来设定,如果是对文件来说,SGID有如下功能:

对于目录的话:

Sticky Bit,SBIT 目前只针对于目录有效。作用是:

当用户对于此目录具有w,x权限,亦即具有写入的权限时;

当用户在该目录下创建文件木偶目录,仅有自己与root才有权利删除该文件。

SUID/SGID/SBIT权限设定

4 SUID

2 SGID

1 SBIT

chmod ?---中问号就是可以设置特殊权限,后面的三个是之前提到的 u g o 的三个权限的 r w s权限设定。

设定之后如果出现大写的S T的话就是空,比如chmod 7666,这样后面666本身没有x属性,而特殊权限是建立在有x属性上的,所以就大写表示,大写表示不存在S T。

观察文件类型 file

总结:

鸟哥这章里还说了文件查找,明天单独列出来一个笔记来整理,不加在这里了。

Linux-鸟菜-6-文件与目录的 默认权限、隐藏权、特殊权限的更多相关文章

  1. Linux学习之CentOS(九)-----文件与目录的默认权限与隐藏权限

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

  2. Linux学习之CentOS(八)----文件与目录的默认权限与隐藏权限(转)

    文件与目录的默认权限与隐藏权限 一个文件有若干个属性, 包括读写运行(r, w, x)等基本权限,及是否为目录 (d) 与文件 (-) 或者是连结档 (l) 等等的属性! 要修改属性的方法在前面也约略 ...

  3. linux下创建文件与目录时默认被赋予了什么样的权限?

    当我们创建一个新的文件或目录的时候,他的默认权限是什么? umask--指定当前使用者在创建文件或目录的时候默认的权限值 [root@iZ288fgkcpkZ default]# umask [roo ...

  4. linux系统下修改文件夹目录权限

    linux系统下修改文件夹目录权限 文件夹权限问题 Linux.Fedora.Ubuntu修改文件.文件夹权限的方法差不多.很多人开始接触Linux时都很头痛Linux的文件权限问题.这里告诉大家如何 ...

  5. Linux命令(20)linux服务器之间复制文件和目录

    linux的scp命令: scp就是secure copy的简写,用于在linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器. 有时我们需要获得远程服务器上 ...

  6. 在linux服务器之间复制文件和目录命令scp

    scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的.可能会稍微影响一下速度.当你服务器 ...

  7. Linux基础学习:文件与目录管理

    目录与路径 目录的相关操作 几个特殊的目录: . :表示当前目录 .. :表示上一层目录 - :表示前一个工作目录 ~ :表示当前用户所在的主文件夹 ~account :表示account用户所在的主 ...

  8. Linux常用命令之文件和目录处理命令

    目录 1.Linux命令的普遍语法格式 2.目录处理命令 一.显示目录文件命令:ls 二.创建目录命令:mkdir 三.切换目录命令:cd 四.shell内置命令和外部命令的区别 五.显示当前目录命令 ...

  9. Linux系列教程(四)——Linux常用命令之文件和目录处理命令

    这个系列教程的前面我们讲解了如何安装Linux系统,以及学习Linux系统的一些方法.那么从这篇博客开始,我们就正式进入Linux命令的学习.学习命令,首先要跟大家纠正的一点就是,我们不需要记住每一条 ...

  10. linux 权限管理命令chown、chgrp、umask、linux新建文件或目录的默认权限755

    chown /bin/chownchown [用户] [文件或目录] 改变文件或目录的所有者只有root可以改变文件或目录的所有者 root用户:mkdir /tmptouch /tmp/test.f ...

随机推荐

  1. 【老孟Flutter】Flutter 2的新功能

    老孟导读:昨天期待已久的 Flutter 2.0 终于发布了, Flutter Web和Null安全性趋于稳定,Flutter桌面安全性逐渐转向Beta版! 原文链接:https://medium.c ...

  2. 一文搞懂 this、apply、call、bind

    码文不易,转载请带上本文链接,感谢~ https://www.cnblogs.com/echoyya/p/14506269.html 目录 码文不易,转载请带上本文链接,感谢~ https://www ...

  3. POJ_2533 Longest Ordered Subsequence 【LIS】

    一.题目 Longest Ordered Subsequence 二.分析 动态规划里的经典问题.重在DP思维. 如果用最原始的DP思想做,状态转移方程为$DP[i] = max(DP[j] + 1) ...

  4. 制作API离线chm帮助文件教程

    当我们开发好一个通信库的时候,我们希望给这个通信库配备一个帮助文档,最好的方式,就是有一个离线的chm版本的API文档,这样别人在使用的时候,就可以清楚看到命名空间.类的结构,同时也能看到每个方法和属 ...

  5. Excel模板导出之动态导出

    说明 目前Magicodes.IE已支持Excel模板导出时使用JObject.Dictionary和ExpandoObject来进行动态导出,具体使用请看本篇教程. 本功能的想法.部分实现初步源于a ...

  6. 使用C# (.NET Core) 实现命令设计模式 (Command Pattern)

    本文的概念内容来自深入浅出设计模式一书. 项目需求 有这样一个可编程的新型遥控器, 它有7个可编程插槽, 每个插槽可连接不同的家用电器设备. 每个插槽对应两个按钮: 开, 关(ON, OFF). 此外 ...

  7. Linux 软链接link/ln -s

    在Linux中,链接分为软的和硬的,至于两者之间有什么差别,大家可以参考下https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-li ...

  8. 一文带大家彻底搞懂Hystrix!

    前言? Netflix Hystrix断路器是什么? Netflix Hystrix是SOA/微服务架构中提供服务隔离.熔断.降级机制的工具/框架.Netflix Hystrix是断路器的一种实现,用 ...

  9. EFCore3.1+编写自定义的EF.Functions扩展方法

    前言 本文主要是讲解EF Core3.0+ 如何实现自定义的数据库扩展函数 虽然EF.Functions 提供了很多数据库函数,但是并不全面.比如加密解密.. 这样的话 我们就需要自己扩展这些数据库函 ...

  10. Java(279-298)【异常、线程】

    1.异常的概念&异常的体系 异常,就是不正常的意思.在生活中:医生说,你的身体某个部位有异常,该部位和正常相比有点不同,该部位的功能将 受影响.在程序中的意思就是: 异常 :指的是程序在执行过 ...