将 sudo umask 设置为与调用它的用户分开

将 sudo umask 设置为与调用它的用户分开

问题:我将umask我的用户设置为 0077。现在我使用sudo而不是su当我需要超级用户访问权限时,问题是每当我使用sudo类似的东西执行软件安装时sudo pip3 install sympy,所有安装的软件都会获得由0077,意味着任何用户都无法访问所有这些库!

问题:如何让所有 sudo 调用的掩码为 0022,而我的用户调用的掩码为 0022?

笔记:我确实添加了该行Defaults umask = 0022sudo visudo但仍然不起作用。这就是所有要做的事情了吗?

我该如何设置我的umask:我已将行umask 0077添加到~/.bashrc~/.profile

答案1

这一点似乎被忽视了:

Defaults umask_override

它执行所要求的操作(请参阅sudoers 联机帮助页):

umask_override
如果设置,将按指定的方式sudo设置而不进行修改。这使得可以指定一个umasksudoers更宽容 umask在 sudoers 中比用户自己的权限更高umask,并且与历史行为相匹配。如果umask_override未设置,sudo将设置 umask 为用户的 umask 和 中指定的 umask 的并集sudoers。此标志默认关闭。如果设置,sudo即使没有 I/O 日志记录,也将在伪 pty 中运行命令。在 下运行的恶意程序sudo可能会分叉一个后台进程,该进程在主程序执行完毕后保留在用户的终端设备上。使用此选项将使这种情况不可能发生。此标志默认关闭。

相关内容