0

我正在编写一个 posix 恭维 shell 脚本,除其他外,它将克隆一个 git 存储库,然后在存储库中执行一个脚本(与存储库一起克隆)。

例如:

git clone git@github.com:torvalds/linux.git
cd linux
./Kconfig

这个想法是人们会用它来做好事,而不是做坏事,但你知道......所以我真的想阻止人们做这样的事情:

rm -rf /

剧本里面。
或者也许是稍微不那么邪恶的东西,比如:

rm -rf ../../

我是否可以以某种方式更改脚本的权限(在克隆之后),以便它只能修改克隆存储库中的内容?

4

1 回答 1

1

基本上,您的问题的答案是chroot命令,它允许您锁定目录中的进程,就好像它是根目录一样。chroot需要 root 权限才能设置,但也有替代实现,例如 has schrootfakechrootprootnot。因为所有文件系统访问(也可以读取)都受到限制,所以您需要将脚本需要在 chrooted 环境中运行所需的任何内容上交。如何方便地做到这一点取决于您的发行版。

这并不一定意味着它是完全安全的,因为它只提供文件系统隔离。

于 2016-02-13T11:34:41.407 回答