若要运行某些测试,我希望取消对文件夹的写入权限。这是一个最小的例子:
$ mkdir test
$ chmod a-w test
$ touch test/test || printf '%s\n' "write permissions successfully revoked"
touch: cannot touch 'test/test': Permission denied
write permissions successfully revoked但是,如果我使用fakeroot运行它,这是行不通的:
$ fakeroot sh
# mkdir test
# chmod a-w test
# touch test/test || printf '%s\n' "write permissions successfully revoked"
# ls test
test有关为什么不能工作的解释,请参见下面的问题,例如:与更改的权限有关
然而,我的问题是:我怎样才能避开这一切呢?我可以暂时禁用chmod命令的fakeroot吗?或者我可以让fakeroot的许可更改永久不变吗?
发布于 2020-04-20 18:08:50
fakeroot正在使用一个LD_PRELOAD黑客来加载一个小型共享库,该库覆盖了一些库函数,如chmod(2)、chown(2)等。有关详细信息,请参阅ld.so(8)手册(这个站点上还有很多示例)。
只要运行LD_PRELOAD环境变量未设置或设置为空字符串的命令,就不会加载该库:
$ fakeroot sh
$ chown root:root fo.c
$ LD_PRELOAD= chown root:root fo.c
chown: changing ownership of 'fo.c': Operation not permittedhttps://unix.stackexchange.com/questions/581376
复制相似问题