linux – 为所有用户设置umask

我正在尝试将所有用户的默认umask设置为002,包括我的CentOS框上的root.

根据this和其他答案,这可以通过编辑/ etc / profile来实现.但是该文件顶部的评论说:

It’s NOT a good idea to change this file unless you know what you
are doing. It’s much better to create a custom.sh shell script in
/etc/profile.d/ to make custom changes to your environment,as this
will prevent the need for merging in future updates.

所以我继续创建了以下文件:
/etc/profile.d/myapp.sh
单行:

umask 002

现在,当我创建一个以root身份登录的文件时,该文件具有664权限,就像我希望的那样.但是我的Apache mod_wsgi应用程序创建的文件,或者用sudo创建的文件,仍默认为644权限……

$touch newfile(以root身份):
结果= 664(工程)

$sudo touch newfile:
结果= 644(不起作用)

Apache mod_wsgi app创建的文件:
结果= 644(不起作用)

Python的RotatingFileHandler创建的文件:
结果= 644(不起作用)

为什么会发生这种情况,如何在系统范围内确保664文件权限,无论创建文件的是什么?

解决方法

profile是shell的启动文件.在profile.d中设置umask 002可以为从登录shell启动其进程的所有用户设置它.

你的两个例子是不同的.对于Apache,您可以在启动http服务器的init.d脚本中设置umask.

对于使用sudo启动的进程,您可以在sudoers文件中使用umask选项.

相关文章

/etc/sysctl.conf这个目录主要是配置一些系统信息,/etc/sys...
1.作用 useradd或adduser命令用来建立用户帐号和创建用户的起...
它们都是多模式编辑器,不同的是vim 是vi的升级版本,它不仅...
不管是我们在安装软件还是监测软件的使用性能,我们都要随时...
装好Tomcat7后,发现除了本机能访问外界访问不了,岂有此理。...
修改防火墙配置需要修改 /etc/sysconfig/iptables 这个文件,...