[From] https://blog.csdn.net/davidsky11/article/details/25424615

一个文件(或目录)拥有若干个属性,包括(r/w/x)等基本属性,以及是否为目录(d)与文件(-)或连接文件(l)等属性。此外,Linux还可以设置其他系统安全属性,使用chattr来设置,以lsattr来查看,最重要的是可以设置其不可修改的特性,即便是文件的拥有者都不能进行修改。这个属性相当重要,尤其是在安全机制方面(security)。

文件默认权限:umask

当建立一个新的文件或目录时,它的默认属性是与umask有关的。通常,umask就是指定当前用户在建立文件或目录时的属性默认值。那么,如何获知和设置umask呢?

查看方式有两种,一种是直接输入umask,可以看到数字类型的权限设置分数,一种是加入-S(Symbolic)参数,救护以符号类型的方式显示权限。

在默认权限的属性上,目录与文件是不一样的。由于我们不希望文件具有可执行权限,默认情况下,文件是不具有可执行(x)权限的。因此:

1. 若用户建立的是“文件”,则默认没有可执行(x)权限,及只有rw这两个权限,也就是最大为666,默认属性:-rw-rw-rw-;

2. 若用户建立的是“目录”,则由于x与是否可以进入此目录有关,因此默认所有权限均开放,即777,默认属性:drwxrwxrwx。

umask指定的是该默认值需要减掉的权限。因为r/w/x分别是4/2/1,也就是说,当要去掉写权限时,就输入2,要去掉读权限时,就输入4,要去掉读和写的权限时,就输入6。所以,上图中0022,就是group与others的属性被去掉了2,那么当用户:

1. 建立文件时:(-rw-rw-rw-) - (-----w--w-) è-rw-r--r--

2. 建立目录时:(drwxrwxrwx) - (d----w--w-) èdrwxr-x-r-x

如果我们仅仅想取消group的w权限,也就是说,我们希望编写出来的文件应该具有-rw-rw-r--权限,所有,umask应该是002才对。直接在umask后面输入002即可。

在默认情况下,root的umask会去掉比较多的属性,root的umask默认是022,这是基于安全的考虑。一般身份用户通常的umask为002,及保留同用户组的写入权限。

文件隐藏属性

文件有隐藏属性,隐藏属性对系统有很大的帮助,尤其是系统安全性(Security)方面。

1、chattr(设置文件隐藏属性)

这个属性设置上,比较常见的是a与i的设置值,而且狠毒设置值必须要root才能设置。

这个命令很重要,尤其是在系统的安全性方面。由于这些属性是隐藏的,所以需要用lsattr才能查看。最重要的是+i属性,它可以让一个文件无法被更改。如果是登陆文件,就更需要+a参数,使它可以增加但不能修改与删除原有数据。

2、lsattr(显示文件的隐藏属性)

使用chattr设置后,可以使用lsattr来查看隐藏属性。

文件特殊权限:SUID/SGID/StickyBit

1、Set UID

创建s与t权限,是为了让一般用户在执行某些程序的时候,能够暂时具有该程序拥有者的权限。例如,账号和密码的存放文件其实是/etc/passwd与/etc/shadow,它们的拥有者是root。在这个权限中,仅有root可以强制写入。一个普通用户webgod去更新自己的密码时,使用的就是/usr/bin/passwd程序,却可以更新成功,而/usr/bin/passwd的拥有者是root。那么,就是说webgod这个普通用户可以访问/etc/shadow密码文件。???这既是因为有s权限的帮助。当s权限在user的x时(注意下图的/usr/bin/passwd的相关属性),此处是-rwsr-xr-x,称为Set UID,简称SUID,这个UID表示User的ID,而User表示这个程序(/usr/bin/passwd)的拥有者(root)。所以,当webgod用户执行/sur/bin/passwd时,他就暂时获取文件拥有者root的权限。

注:SUID仅可用在二进制文件(binary file),而且对目录无效。

2、Set GID

如果s的权限是在用户组,那么就是Set GID,简称SGID。SGID可以用在两个方面:

1  文件:如果SGID设置在二进制文件上,无论用户是谁,在执行该程序的时候,它的有效用户组将会变成该程序的用户组所有者;

2  目录:如果SGID是设置在A目录上,则在该A目录内所建立的文件或目录的用户组,将会是此A目录的用户组。

3、Sticky Bit

SBit一般用于目录上,对文件的意义不大。SBit对目录的作用是:在具有SBit的目录下,用户若在该目录下具有w及x权限,则当用户在该目录下建立文件或目录时,只有文件拥有者与root才有权利删除。SBit可以理解为防删除位。如果希望用户能够添加文件但同时不能删除文件,则可以对文件使用SBit位。设置该位后,就算用户对该文件的父目录具有写权限,也不能删除文件。

4、SUID/SGID/SBIT权限设置

使用数字更改权限的方式为“3个数字”的组合,那么,如果在这3个数字之前加上一个数字,最前面的数字就表示这个几个属性的组合:4为SUID,2为SGID,1为Sticky Bit。

系统规定,如果本来在该位上有x,则这些特殊标志便是为小写字母(s/s/t),否则,显示为大写字母(S/S/T)。

[转] Linux中的默认权限与隐藏权限(文件、目录)的更多相关文章

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

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

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

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

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

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

  4. 如何在Linux中使用sFTP上传或下载文件与文件夹

    如何在Linux中使用sFTP上传或下载文件与文件夹 sFTP(安全文件传输程序)是一种安全的交互式文件传输程序,其工作方式与 FTP(文件传输协议)类似. 然而,sFTP 比 FTP 更安全;它通过 ...

  5. SecureCRT SSH Linux中不显示彩色 字体颜色、文件夹和文件显示的颜色区别开解决办法

    SecureCRT SSH Linux中不显示彩色 字体颜色.文件夹和文件显示的颜色区别开解决办法 实验环境: 刚开始我的情况是这样的:带颜色的显示不出来,然后还能看到,此处有内容,猜测是Secure ...

  6. Linux文件与目录的默认权限与隐藏权限 - umask, chattr, lsattr, SUID, SGID, SBIT, file

    文件默认权限:umask [root@www ~]# umask 0022 <==与一般权限有关的是后面三个数字! [root@www ~]# umask -S u=rwx,g=rx,o=rx ...

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

    一.文件默认权限:umask <==需要被减去的权限. 1.umask指的是当前用户在新建文件或者目录时的默认权限,如0022; 2.默认情况下,用户创建文件的最大权限为666; 创建目录的最大 ...

  8. 文件与目录的默认权限与隐藏权限【转vbird】

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

  9. linux文件的特殊权限及隐藏权限

    基础知识 相信大家应该都知道linux的文件基本权限,使用ls -l命令可以显示文件的基本权限,"-rwxrwxrwx.",第一位表示文件的属性(是文件-  ,目录d等),后面每隔 ...

随机推荐

  1. Spring Data JPA初使用 *****重要********

    Spring Data JPA初使用 我们都知道Spring是一个非常优秀的JavaEE整合框架,它尽可能的减少我们开发的工作量和难度. 在持久层的业务逻辑方面,Spring开源组织又给我们带来了同样 ...

  2. JavaScript 算法应用: 遍历DOM树的两种方式

    1 常见的DOM树结构: 2  DOM数遍历有两种方式: 3 广度优先代码: 4 深度优先遍历代码

  3. ettercap dns_spoof

    首先编辑网页,打开apache2服务器,编辑好etter.dns 然后开始ettercap -G 的操作 sniff选择好自己使用的网卡 scan hosts ,扫描完将目标和网关添加到目标一目标二 ...

  4. Hadoop(HDFS、YARN、HBase、Hive和Spark等)默认端口表

    端口 作用 9000 fs.defaultFS,如:hdfs://172.25.40.171:9000 9001 dfs.namenode.rpc-address,DataNode会连接这个端口 50 ...

  5. 编写高质量代码改善C#程序的157个建议——建议108:将类型标识为sealed

    建议108:将类型标识为sealed sealed能够阻止类型被其他类型继承.代码如下: sealed class SampleClass { } class OtherClass : SampleC ...

  6. HBase入门篇

    目录: 1-HBase的安装 2-Java操作HBase例子 3-HBase简单的优化技巧 4–存储 5(集群) -压力分载与失效转发 6 -白话MySQL(RDBMS)与HBase之间 7 -安全& ...

  7. redis内网无法连接的问题

    1.修改redis服务器的配置文件 vi redis.conf 注释以下绑定的主机地址 # bind 127.0.0.1 2.修改redis服务器的参数配置 修改redis的守护进程为no ,不启用 ...

  8. 一步一步教你如何制件 ZKEACMS 的扩展组件/插件

    前言 如果你还不知道ZKEACMS,不妨先了解一下. ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来 官方地址:http://www.zkea.net/zkeacms ...

  9. fatal: Authentication failed for又不弹出用户名和密码 解决办法

    各位,如果能弹出来,一定是你账号密码搞错了,就别继续看了.   image.png 切换命令行:   image.png 依然报错, 说到这个问题,又可以长篇大论了, 我使用的是tortoisegit ...

  10. 数据库管理工具navicat基本使用方法——以MySql为例

    mysq数据库管理工具navicat基本使用方法 https://www.cnblogs.com/neuedu/p/5876874.html