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. Python 第三方登录 实现QQ 微信 微博 登录

    本人写的AgentLogin,能快速返回QQ.微信.微博第三方用户名信息,主要用于快速登录 用 pip命令安装 pip install AgentLogin 用法 : 导入这个包 from Agent ...

  2. 不用任何框架,Java 就能实现定时任务的 3 种方法!

    是的,不用任何框架,用我们朴素的 Java 编程语言就能实现定时任务. 今天,栈长就介绍 3 种实现方法,教你如何使用 JDK 实现定时任务! 1. sleep 这也是我们最常用的 sleep 休眠大 ...

  3. 04-Spring自定义标签解析

    自定义标签的解析 这一篇主要说明自定义标签的解析流程,除了 bean.alias.import.beans之外的标签,都属于自定义标签的范围,自定义标签的解析需要命名空间配合, 获取对应的命名空间 根 ...

  4. asp.net core 实现支持自定义 Content-Type

    asp.net core 实现支持自定义 Content-Type Intro 我们最近有一个原本是内网的服务要上公网,在公网上有一层 Cloudflare 作为网站的公网流量提供者,CloudFla ...

  5. python torndb模块

    一.torndb概述 torndb是一个轻量级的基于MySQLdb封装的一个模块,其是tornado框架的一部分.其项目主页为:https://github.com/bdarnell/torndb . ...

  6. Hive相关的命令

    hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行. 其优点是学习成本低,可以通过 ...

  7. ASP.NET Core扩展库之实体映射

    在分层设计模式中,各层之间的数据通常通过数据传输对象(DTO)来进行数据的传递,而大多数情况下,各层数据的定义结构大同小异,如何在这些定义结构中相互转换,之前我们通过使用AutoMapper库,但Au ...

  8. 世界国省市区SQL语句(mysql)

    CREATE TABLE loctionall ( country VARCHAR(40) , provice VARCHAR(40) , city VARCHAR(40) , CONSTRAINT ...

  9. 2017-2018 ACM-ICPC Northern Eurasia(A.Archery Tournament)

    题目链接:https://vjudge.net/problem/Gym-101630A 题意: n个事件,t=1 代表增加一个圆心为(x,y),半径为 abs(y)的靶子,t=2,代表射击的坐标为(x ...

  10. 图片的黑魔法——GitHub 热点速览 v.21.13

    作者:HelloGitHub-小鱼干 图片的黑魔法并不是图片修复.旧照上色,而是将任意文件打包成图片的样子,上传到推特.看过去这张图片平平无奇,那么普通却深藏不露,工程师 DavidBuchanan ...