加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 为所有用户设置umask

发布时间:2020-12-14 02:52:48 所属栏目:Linux 来源:网络整理
导读:我正在尝试将所有用户的默认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 bet
我正在尝试将所有用户的默认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选项.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读