Linux文件系统的管理所有权和权限

发表于:2011-7-05 10:30

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:Ian Shields    来源:51Testing软件测试网采编

  在以前,UNIX 系统曾在文件上使用粘贴位在交换空间囤积可执行文件,避免重新加载。现代 Linux 内核忽略了粘贴位,如果它是设置给文件的。

  访问模式的总结

  表 3 总结了这里讨论的 3 种访问模式的符号和八进制表示。

表 3. 访问模式

访问模式 符号 八进制
suids with  u  4000
sgids with  g 2000
sticky t 1000

  将这些和早先的权限信息结合在一起,您可以看到对应 greg 的 lpi101 权限和 drwxrwsr-t 访问模式的完整的八进制表示是 3775。虽然 ls 命令不显示八进制权限,您可以使用 find 命令进行显示,如清单 12清单 12 所示。

  清单 12. 可打印的符号和八进制权限

[greg@echidna ~]$ find . -name lpi101 -printf "%M %m %f\n"
drwxrwsr-t 3775 lpi101

  不可变文件

  访问模式和权限提供了广泛的控制,限制了谁可以在文件和目录上做什么。但是,它们对有些事情也不能避免,如 root 用户对文件的无心删除。虽然这不在 LPI Topic 104.5 的范围内,但是在提供额外功能的文件系统上还是有些可用的附加属性。其中之一就是不可变 属性。设置完成后,即使是 root 用户也不能删除文件,直到属性解除。

  使用 lsattr 命令查看文件或者目录是否设置了不可变标识(或者任何其他属性)。要将一个文件设置为不可变,使用 chattr 命令和 -i 标识。

  清单 13清单 13 显示了用户 root 可以创建一个不可变文件,但是不能删除它,直到不可变标识被删除。

  清单 13. 不可变文件

[root@echidna ~]# touch keep.me
[root@echidna ~]# chattr +i keep.me
[root@echidna ~]# lsattr keep.me
----i--------e- keep.me
[root@echidna ~]# rm -f keep.me
rm: cannot remove `keep.me': Operation not permitted
[root@echidna ~]# chattr -i keep.me
[root@echidna ~]# rm -f keep.me

  变更不可变标识需要 root 授权,或者最少 CAP_LINUX_IMMUTABLE 功能。使文件不可变通常是安全或者入侵检测工作的一部分。见功能使用页面(man capabilities)了解更多信息。

  文件创建屏蔽

  创建一个新文件时,创建进程就会指明新文件的权限。通常,所需的模式是 0666,它使文件可由任何人读和写。目录默认为 0777。但是,这个宽松的创建会受到 umask 值的影响,这个值指明了用户不想自动授予新创建的文件或者目录什么权限。系统使用 umask 值来减少原始请求的权限。您可以使用 umask 查看 umask 设置,如清单 14清单 14 所示。

  清单 14. 显示八进制 umask

[ian@echidna ~]$ umask
0002

  请记得,umask 指定了那个权限不被授予。在 Linux 系统上,用户没有专用组的的情况下,umask 通常默认为 0022,它可以从新文件中删除组和其他写权限。用户有专用组的情况下(例如这些例子中使用的在 Fedora 系统上),umask 通常默认为 0002,它删除了其他用户的写权限。使用 -S 选项来从符号上显示 umask,以显示哪个权限被允许的形式。

  使用 umask 命令设置一个 unmask 并显示。所以,如果您想要保持文件更专有,并且不允许所有组或者其他人访问新创建的文件,就是可以使用 umask 值 0077。或者从符号上,使用 umask u=rwx,g=,o= 进行设置,如清单 15清单 14 所示。

65/6<123456>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号