• Linux系统文件的隐藏属性


    linux系统的文件除了有普通rwx权限外还有一种隐藏权限,例如明明有权限删除某个文件却报错了。

    或者仅能为某个文件追加内容而不能减少内容,遇到这种很‘奇怪’的文件,就要怀疑是文件被设置隐藏权限了。

    实例:

    写入111到test.txt文件
    [root@localhost pub]# echo "111" >> test.txt
    
    成功删除test.txt文件,
    [root@localhost pub]# rm test.txt
    rm:是否删除普通文件 "test.txt"?y
    [root@localhost pub]# ls

    再次写入111到test.txt文件
    [root@localhost pub]# echo "111" >> test.txt

    添加仅允许追加的隐藏权限(无法删除或覆盖)
    [root@localhost pub]# chattr +a test.txt

    添加后查看隐藏属性的设置情况,在当前目录下执行命令lsattr
    [root@localhost pub]# lsattr
    -----a---------- ./test.txt

    再次尝试删除该文件,提示不允许删除
    [root@localhost pub]# rm -rf test.txt
    rm: 无法删除"test.txt": 不允许的操作

    向test.txt中添加内容222,并查看添加后的内容
    [root@localhost pub]# echo "222" >> test.txt
    [root@localhost pub]# cat test.txt
    111
    222

    vim编辑test.txt,尝试删除文件提示
    "test.txt" E212: 无法打开并写入文件
    请按 ENTER 或其它命令继续

    切换普通用户pentest,对test.txt继续添加文件,提示权限不够
    [root@localhost pub]# su - pentest
    上一次登录:五 9月  9 08:53:44 CST 2016pts/1 上
    [pentest@localhost ~]$ cd /pub/
    [pentest@localhost pub]$ echo "333" >> test.txt
    -bash: test.txt: 权限不够
    [pentest@localhost pub]$

    切回到root用户重新分配可写权限,此时需要注意重新给普通用户分配权限时要临时取消隐藏权限属性-a,
    否则会报错“不允许的操作”,设置后chmod的可写权限后再次将-a属性附上。
    [pentest@localhost pub]$ su - root
    密码:
    上一次登录:五 9月  9 08:54:11 CST 2016pts/1 上
    [root@localhost ~]# ll /pub/test.txt
    -rw-r--r--. 1 root root 8 9月   9 09:46 /pub/test.txt
    [root@localhost ~]# chmod 646 /pub/test.txt
    chmod: 更改"/pub/test.txt" 的权限: 不允许的操作
    [root@localhost ~]# chattr -a /pub/test.txt
    [root@localhost ~]# chmod 646 /pub/test.txt
    [root@localhost ~]# ll /pub/test.txt
    -rw-r--rw-. 1 root root 8 9月   9 09:46 /pub/test.txt
    [root@localhost ~]#chattr +a /pub/test.txt

    重新切换pentest,需要注意的是输出重定向的时候一定要用>>而不是>,
    因为>>是在原有文本后面继续添加,符合-a隐藏属性的要求。而>则是清除原有内容后
    再添加,这里面包含了删除的动作,所以会报错。
    [root@localhost pub]# su - pentest
    上一次登录:五 9月  9 09:52:20 CST 2016pts/1 上
    [pentest@localhost ~]$ echo "333" > /pub/test.txt
    -bash: /pub/test.txt: 不允许的操作
    [pentest@localhost ~]$ echo "333" >> /pub/test.txt
    [pentest@localhost ~]$ cat /pub/test.txt
    111
    222
    333
    [pentest@localhost ~]$
  • 相关阅读:
    Java自学笔记(21):【IO】数据流,标准输入输出
    makefile 学习笔记
    tensorflow 环境搭建
    matlab
    【转】MATLAB各种矩阵生成函数
    leetcode刷题收获
    leetcode 15. 3Sum
    STL 记录
    leetcode 服务器环境
    visual studio 2017 使用笔记
  • 原文地址:https://www.cnblogs.com/tdcqma/p/5855471.html
Copyright © 2020-2023  润新知