这是我一直无法找到的大量信息,因此我们将不胜感激。
我的理解是这样。取以下文件:
-rw-r----- 1 root adm 69524 May 21 17:31 debug.1
用户phil
无法访问此文件:
phil@server:/var/log$ head -n 1 debug.1
cat: debug.1: Permission denied
如果phil
添加到adm
组中,则可以:
root@server:~# adduser phil adm
Adding user `phil' to group `adm' ...
Adding user phil to group adm
Done.
phil@server:/var/log$ head -n 1 debug.1
May 21 11:23:15 server kernel: [ 0.000000] DMI: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.7.5.1-0-g8936dbb-20141113_115728-nilsson.home.kraxel.org 04/01/2014
然而,如果一个进程开始,同时明确地设置user:group
到phil:phil
它无法读取该文件。流程开始如下:
nice -n 19 chroot --userspec phil:phil / sh -c "process"
如果该进程以开头phil:adm
,它可以读取文件:
nice -n 19 chroot --userspec phil:adm / sh -c "process"
所以问题确实是:
使用特定的用户/组组合运行进程有什么特殊之处,它会阻止进程访问该用户的补充组所拥有的文件,并且有什么办法可以解决?