Eri*_*k J 5 shell selinux posix
这不是出于安全目的。
假设我想执行一个shell脚本,并尽最大努力的基础上,认为它没有留下任何副作用,除了之类的东西进程auditd记录,AVC报告,系统日志,等等。实际上,我想放弃所有的写入权限当前用户的整个 shell 会话。我对设置具有精心管理的文件权限的组和较低权限的用户不感兴趣。有哪些选择?
理想情况下,我想针对任何 posix shell,但我从 bash 开始,因为它是我最熟悉的。
通读 man bash,受限制的 shell看起来很有希望,但它们在错误的地方过于严格。例如,我仍然希望能够使用cd
并且它不会阻止诸如echo foo | tee /file
. 同样,bashset
选项也不够严格,因为它们也不会限制子进程的写入,例如(set -C; echo foo | tee /file)
无法完成我正在寻找的内容。
我还想避免使用overlayfs,因为我希望能够在单个 SSH 会话中进入/退出这种“只读”模式。
我得到的最接近的是将最大文件大小 ulimit 降为 0:
(ulimit -f 0; echo "blows up w/ signal SIGXFSZ" > file; ); echo $?
这似乎与我正在寻找的内容非常接近,并且可以在像dash
. 所以在上面的例子中,“文件”会被创建,但会是空的。
我觉得有一种方法可以将我与 SELinux 的用户会话限制在更严格的范围内,但可以使用指针来提供帮助。
还有其他选择吗?
我感兴趣的另一个选项是简单地监视进程中的任何 IO 写入。也许 cgroups 可以用于此,但我不熟悉它们。或者 systemd-run 也可能有用。
不是一个完整的答案,但也许是一个指向一个的指针......
也许类似Linux Diskquota 系统的东西可以工作,Debianquota
软件包描述:
Description-en: disk quota management tools
This package provides the standard set of utilities for manipulating
file system usage caps via the Linux Diskquota system. It can set hard
or soft limits with adjustable grace periods on block or inode usage for
users and groups. It allows users to check their quota status,
integrates with LDAP, and supports quotas on remote machines via NFS.
Run Code Online (Sandbox Code Playgroud)
一个粗略的轮廓是:
设置一个来宾系统或主目录,其中大部分内容都被写保护,然后
打开用户foobar的配额系统,设置为0
。
归档时间: |
|
查看次数: |
130 次 |
最近记录: |