文章目录

  • Linux文件与目录的默认权限与隐藏权限
    • 文件默认权限:umask
    • 文件隐藏属性
      • chattr(配置文件隐藏属性)
        • 使用案例
      • lsattr(显示文件隐藏属性)
        • 使用案例
    • 文件特殊权限:SUID,SGID,SBIT
      • SUID/SGID/SBIT权限设置

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

文件默认权限:umask

umask是一个Linux命令,用于设置新创建文件/目录权限的掩码。在Linux中,每个文件和目录都有一个权限掩码,用于控制文件/目录的读、写和执行权限。umask命令用于设置掩码,从而限制新创建文件/目录的权限。
umask的取值范围是0到777,每一位代表一种权限,分别为读、写和执行。umask的值会从默认的权限掩码中减去,得到新创建文件/目录的权限。
例如,如果umask的值为022,那么新创建的文件的权限掩码就是644(666减去022),新创建的目录的权限掩码就是755(777减去022)。
umask命令的语法为:

umask [-S] [mode]# 其中,-S选项用于以符号方式显示当前umask值
# mode参数用于设置umask值。如果不指定mode参数
# 则umask命令会显示当前umask值

例如,要将umask设置为022,可以执行以下命令:

umask 022

要以符号方式显示当前umask值,可以执行以下命令:

[root@localhost ~]# umask -S
u=rwx,g=rx,o=rx# 其中,u表示用户权限
# g表示组权限
# o表示其他用户权限
# r表示读权限
# w表示写权限
# x表示执行权限
# 这个输出结果表示当前umask值为002,即新创建的文件权限为664,新创建的目录权限为775。

文件隐藏属性

想不到吧linux还有隐藏属性,这些隐藏的属性确实对系统有很大帮助,尤其是在系统安全上面,非常重要。先强调的是,下面的chattr命令只能在 ext2、ext3、ext4的Linux传统文件系统上面完整生效,其他文件系统可能就无法完整的支持这个命令了,例如xfs仅支持部分参数而已,下面我们就来谈谈如何设置与检查这些隐藏的属性。

chattr(配置文件隐藏属性)

chttr [+-=] [ASacdistu]  [文件名或目录名]选项参数:+              # 添加属性
-              # 删除属性
=              # 设置属性(覆盖原有属性)
-A             # 当设置了A这个属性时,若你在存取此文件(或目录)时,它的存取时间atime将不会被修改,可避免I/O较慢的机器过度的读写磁盘。(目前建议使用文件系统挂载参数处理这个项目)
-S(大写)       # 一般文件是非同步写入磁盘的,如果加上S这个属性时,当你进行任何文件的修改,该修改会【同步】写入磁盘中
-a             # 只能添加文件,不能删除或修改文件,适用于需要保留文件的情况,如日志文件
-c             # 这个属性设置之后,将会自动的将此文件【压缩】,在读取的时候将自动解压缩,但是在存储的时候,将会先进行压缩然后再存储
-d             # 当dump程序被执行的时候,设置d属性将可是该文件(目录)不会被dump备份
-i             # - i属性:表示不可更改(immutable),即该文件或目录不能被修改、删除、重命名或链接;
-s(小写)        # 当文件设置了s属性时,如该文件被删除,他将会被完全的从硬盘删除,所以如果误删,完全无法恢复
-u              # 与s相反的,当使用u来配置文件时,如果该文件被删除,则数据内容其实还存在磁盘中,可以使用来恢复该文件

注意①:属性设置常见的是a与i的设置值,而且很多设置值必须要是root才能设置

注意②:xfs文件系统仅支持AadiS而已

使用案例

请尝试到/tmp下面建立文件,并加入i参数,尝试删除看看

[root@localhost tmp]# touch csqchattr.txt
[root@localhost tmp]# chattr +i csqchattr.txt
[root@localhost tmp]# rm -rf csqchattr.txt
rm: 无法删除"csqchattr.txt": 不允许的操作# 看到了吗?连root也没有办法删除这个文件,赶紧取消参数
[root@localhost tmp]# chattr -i csqchattr.txt

这个命令是很重要的,尤其是在系统的数据安全上面。由于这些属性是隐藏性质,所以需要以lsattr才能看到属性。

lsattr(显示文件隐藏属性)

lsattr [-adR] [文件名或目录名]
选项参数
-a        # 只能向文件中添加数据,不能修改或删除文件中已有的数据;
-d        # 如果指定的路径是目录,则只列出目录本身的属性信息,而不列出目录中的文件或子目录的属性信息;
-R        # 递归列出指定目录及其子目录下所有文件或目录的属性信息;

使用案例

我们添加一些隐藏属性参数然后使用lsattr查询他

[root@localhost tmp]# chattr +diSa csq.txt
[root@localhost tmp]# lsattr csq.txt
--S-iad--------- csq.txt

总结:使用chattr设置后,可以利用lsattr来查看隐藏的属性。不过,这两个命令在使用上必须要特别小心,否则会造成很大困扰。

例如:某天你心情不错将 /etc/shadow 这个重要的密码记录文件设置位具有i属性,那么过滤若干条之后,你突然要新增用户,却一只无法增加,别怀疑,赶紧将i的属性去掉。

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

在Linux系统中,文件有三种特殊权限,分别是SUID、SGID和SBIT。这些权限可以控制文件的访问和删除权限
SUID权限表示当普通用户执行该文件时会以文件所有者的身份来运行该文件,这通常用于需要特殊权限才能运行的程序。

SGID权限表示一个目录中创建的文件的所属组将会与该目录的所属组相同,这通常用于多个用户需要共享文件的情况下,可以将文件和目录的所属组设置为相同的组,以便多个用户进行文件共享。

SBIT权限表示在一个目录中,只有文件的所有者、目录所有者或root用户才能够删除该文件,这通常用于公共的目录,以免其他用户误删其他用户的文件。

例如:

SUID权限可以用于passwd命令,只有root用户才能更改密码,而其他用户通过执行passwd命令可以以root用户的身份修改密码;

SGID权限可以用于多个用户需要共享一个目录下的文件,例如共享文件夹;

SBIT权限可以用于公共目录,如/tmp,以确保其他用户不能删除其他用户的文件。

SUID/SGID/SBIT权限设置

前面介绍过SUID与SGID的功能,那么如何配置文件使成为具有SUID与SGID的权限呢?现在你应该已经知道数字形成更改权限的方式为【三个数字】的组合,那么如果在这三个数字之前再加上一个数字的话,最前面的那个数字就代表这几个权限

  • 4为SUID
  • 2为SGID
  • 1为SBIT

注意:SUID不是用在目录上,SBIT不是用在文件上
以下内容均为实验案例

假设要将一个文件权限改为【-rwsr-xr-x】时,由于s在用户权限中,所以是SUID,因此,在原先的755之前还要加上4,也就是【chmod 4755 filename】来设置。

[root@localhost tmp]# touch csq                    # 创建一个测试的空文件
[root@localhost tmp]# chmod 4755 csq ; ls -l csq   # 加入具有SUID的权限
-rwsr-xr-x. 1 root root 0 4月   9 20:37 csq
[root@localhost tmp]# chmod 6755 csq ; ls -l csq   # 加入具有SUID/SGID的权限
-rwsr-sr-x. 1 root root 0 4月   9 20:37 csq
[root@localhost tmp]# chmod 1755 csq ; ls -l csq   # 加入SBIT的功能
-rwxr-xr-t. 1 root root 0 4月   9 20:37 csq
[root@localhost tmp]# chmod 7666 csq ; ls -l csq   # 具有空的SUID/SGID权限
-rwSrwSrwT. 1 root root 0 4月   9 20:37 csq

最后一个例子就要特别小心了。怎么会出现大写的S和T呢?不都是小写吗?因为s和t都是取代x这个的权限,但你有没有发现我们执行7666,也就是user,group以及others都没有x这个可执行标志(因为666),所以,这个S与T代表的就是空的。怎么说呢?SUID是表示该文件在执行的时候,具有文件拥有者的权限,但是文件的拥有者都无法执行了,哪来的权限给其他人使用?当然是空的

除了数字以外也可以用符号来出来 其中SUID为 u+s,而SGID为g+s,SBIT则是o+t,如下示例

[root@localhost tmp]# touch qsc
[root@localhost tmp]# chmod u=rwxs,go=x qsc ; ls -l qsc
-rws--x--x. 1 root root 0 4月   9 20:54 qsc
[root@localhost tmp]# chmod g+s,o+t qsc ; ls -l qsc
-rws--s--t. 1 root root 0 4月   9 20:54 qsc

本文参考《鸟哥的Linux私房菜》这本书

Linux文件与目录的默认权限与隐藏权限(chattr,lsattr)相关推荐

  1. linux如何建立隐藏目录,【Linux】文件与目录的默认权限与隐藏权限

    01. 文件默认权限:umask 文件的权限可以使用chmod来改变,但是我们默认创建文件的权限是什么?那就是与umask这个有关了.下来我们学习这个指令 1.1 简单使用umask [root@iZ ...

  2. Linux 删除权限 umask,linux中的umask控制文件或目录的默认权限

    umask命令可以控制着创建文件或目录时指定给文件或目录的默认权限.它使用八进制表示法表示从文件模式属性中删除一个位掩码.使用不带任何参数的umask命令,查看当前掩码值.一般都是0002或0022. ...

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

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

  4. 鸟哥Linux私房菜基础学习篇 第二部分 Linux 文件、目录与磁盘格式_Linux文件权限与 目录配置_Linux文件与目录管理...

    2019独角兽企业重金招聘Python工程师标准>>> 1.相对路径相对某目录比较灵活方便(如安软件时候指定目录),绝对路径一般不会因为环境变化而产生错误. 2.目录变化时的切换 - ...

  5. Linux 文件和目录的属性及权限

    一.权限位说明 Linux 文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件属主(Owner)的读.写.执行,用户组(Group)的读.写.执行以及(Other)其它用户的读.写. ...

  6. linux文件赋予755权限,Linux文件和目录的777、755、644权限解释

    Linux文件和目录的权限 1.文件权限 在linux系统中,文件或目录的权限可以分为3种: r:4 读 w:2 写 x:1  执行(运行) -:对应数值0 数字 4 .2 和 1表示读.写.执行权限 ...

  7. linux 临时 目录权限,linux文件和目录权限的设置

    linux文件和目录权限的设置 修改文件权限 如果想改变文件或目录的权限,可以使用chmod命令,改变文件或目录的权限有两种方法:助记法和八进制法. ·助记法: 语法: 使用u(user).g(gro ...

  8. linux系统管理学习笔记之八---linux文件与目录的管理及权限

    linux系统管理学习笔记之八---linux文件与目录的管理及权限 2010-01-05 09:00:49 标签:权限 管理 文件目录 linx [推送到技术圈] 版权声明:原创作品,允许转载,转载 ...

  9. Linux文件和目录的属性及权限

    Linux文件和目录的属性及权限讲解 文字解释: 第一列:inode索引节点 第二列:文件类型及权限 第三列:硬链接个数 第四列:文件或目录所属的用户(属主) 第五列:文件或目录所属的用户所归属的组( ...

最新文章

  1. Unity NetWork
  2. 第7章 PCA与梯度上升法
  3. Docker-compose 安装配置 Nginx PHP MySQL Laravel
  4. 操作系统内存管理——分区、页式、段式管理
  5. 【抓包工具】Fiddler(详细介绍)
  6. aop在项目中的实际运用_mypy在实际项目中的应用
  7. 金三银四产品人跳槽指南:这9本书帮你搞定升职加薪
  8. html按钮绑定点击事件无效,jquery添加的html元素按钮为何不执行类样式绑定的click事件...
  9. 计算机专业学硕复试未来规划,【图片】2020考研,老学长教你如何规划!【计算机考研吧】_百度贴吧...
  10. 百度前端学院-基础学院-第二课
  11. python 嵌入式数据库_Pysqlite下载 Pysqlite for Windows v2.6.3(嵌入式数据库python api 接口) 下载-脚本之家...
  12. springMvc--接受日期类型参数处理
  13. GPS之家论坛最新地图下载精选 汇集论坛精华 不断更新中(2013 3 30)
  14. 最新SSD固态硬盘颗粒QLC、SLC、MLC、TLC详解
  15. 酒店客房管理系统源代码 java_《宾馆客房管理系统》JAVA源代码
  16. 漫画:从今天开始,我不再买书了!
  17. 长序列测序数据分析的机遇与挑战
  18. 软考高级 真题 2016年上半年 信息系统项目管理师 案例分析
  19. matlab使用记录--app designer清理图窗、获取当前时间
  20. 语法-07-复合词,接尾词

热门文章

  1. 网站空间服务器100m,网站100m空间
  2. 商科转码之路 | 算法岗寒假实习面经
  3. win10平板模式_Win10自带的4种隐藏模式,可让你的电脑至少好用3倍,收藏!
  4. Edge Blocker(微软edge浏览器禁用工具)绿色单文件版V1.7 | 怎么关闭edge浏览器 | 能将win10浏览器edge换成ie浏览器
  5. 封闭类(Sealed Classes)
  6. 模糊数学——模糊关系求解
  7. 哈姆雷特的机器人可以合体吗_饥荒哈姆雷特机器人wx-78怎么样 机器人wx-78人物属性详解...
  8. Python 计算KDJ指标
  9. 解决VMware Taking ownership of this virtual machine failed
  10. python opencv如何读取透明png图片以及如何编辑透明度