如何为系统用户设置 umask?

sid*_*com 16 linux umask useradd

是否可以umask为系统用户设置(使用useradd --system username)?

Mik*_*kel 15

设置用户的 umask 有三种常用方法。

  1. 设置UMASK在/etc/login.defs
  2. 添加pam_umask.so到您的 PAM 配置中/etc/pam.d
  3. 在shell启动文件中设置,例如 /etc/profile

系统用户和普通用户在这方面没有区别。

但我假设您正在尝试使用自定义 umask 启动守护进程?

问题是:当用户登录时,上述所有选项都会发生。如果您正在运行守护程序,它永远不会登录。它由 init 启动,然后以 rootsetuid身份运行,或调用以您指定的系统用户身份运行.

您的主要选择是:

  1. 放入umask你的 init 脚本(做一个grep umask /etc/init.d/*例子)
  2. 配置 init 以使用自定义 umask 启动程序(systemd.exec upstart umask)
  3. 如果使用start-stop-daemon,传递umask 选项
  4. 修改程序本身调用umask函数或系统调用