我有一个指向另一个用户目录的符号链接。该目录具有组写入权限,并且我已对该组执行了“newgrp”。在命令行上,我可以对该目录执行“touch”、“rm”、“mv”操作。但是,Thunderbird 不会使用“打印到文件”将文件放在那里(即使它表现得像正在使用进度条进行打印),并且 Files 不会为那里的文件显示“移至废纸篓”选项。Files 和 Thunderbird 等程序与命令行有何不同?
答案1
当我启动控制台会话时,我还没有对符号链接目录执行“newgrp”。在“newgrp”写入目录后,Thunderbird 从命令行启动。
解释:当您使用图形控制台登录时,将运行启动脚本(例如“bashrc”)。假设您没有“newgrp”命令。因此,您从菜单栏启动的任何图形应用程序都会继承该环境。当您打开终端应用程序时,它会启动一个新 shell,该 shell 也会继承该环境。在该终端中执行“newgrp”后,从该终端启动的任何应用程序都将继承该组,但原始环境不会改变。
解决方案:如果您为组设置了“s”权限位(chmod g+s),并且您的“groups”响应包括拥有该目录的组,那么当您写入目录时,它会保留其原始组,而不会尝试将其更改为您的主要组(“groups”列出的第一个组)。您无法更改不属于您的目录的组。