【问题标题】:Set UMASK value only for non root users [closed]仅为非 root 用户设置 UMASK 值[关闭]
【发布时间】:2020-04-06 17:30:45
【问题描述】:

我想将非 root 用户的 UMASK 值设置为 077,而对于 root 用户,它应该是 022。

我已将/etc/login.defs 中的 UMASK 值从 022 更改为 077。但这似乎也更改了我的 root 用户的 UMASK。有没有办法只能更改新创建的非 root 用户的 UMASK 值?

注意:我需要能够在脚本中执行此操作。

【问题讨论】:

标签: linux shell umask


【解决方案1】:

您可以将umask 022 放在根目录的.profile/.bashrc 中,并在/etc/login.defs 中默认使用077。

umask 内置 shell 使 umask 系统调用设置进程可继承umask 属性:在一个进程中设置的 umask 调用会影响该进程的所有后代(除非他们自己进行 umask 调用),因此要为“用户”设置umask,您需要在所有用户进程都从其下降的进程中调用umask(登录shell 和/或调用sudo 命令的shell)。

【讨论】:

  • 谢谢!我已经按照您的建议完成了并且有效。我发现实际问题是由于USERGROUPS_ENAB 设置为yes 而出现的。这使得077 -> 007.
猜你喜欢
  • 2015-08-25
  • 2011-04-22
  • 2010-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多