首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何永久改变umask模式?

如何永久改变umask模式?
EN

Ask Ubuntu用户
提问于 2016-08-01 23:16:40
回答 3查看 37.7K关注 0票数 13

我已经读过几篇文章,比如,旧的一篇,如何改变umask模式,但仍然无法确定100%,我有Ubuntu14.04运行在Xenial内核中,默认umask 0002,我的目标是在整个系统中永久地设置0027 umask模式。我该怎么做呢?这样做最好的方法是什么?

EN

回答 3

Ask Ubuntu用户

回答已采纳

发布于 2016-08-02 00:15:35

谢谢你为我指明了正确的方向。

从这里开始,我认为简单的步骤是如何将umask模式设置为0027,只需在终端中运行:

代码语言:javascript
复制
sudo gedit /etc/login.defs

或者用nano,你更喜欢哪一个。

搜索线路:

代码语言:javascript
复制
Prefix these values with "0" to get octal, "0x" to get hexadecimal.

ERASECHAR   0177
KILLCHAR    025
UMASK       027

编辑最后一行引用UMASK,这将将umask设置为0007以生效,只需登出并返回登录。

请在上面的行上注意:如果USERGROUPS_ENAB设置为“是”,则将此UMASK默认value...used修改为组权限,例如022将变为002。

因此,要使umask 0027生效,请滚到线上:

代码语言:javascript
复制
USERGROUPS_ENAB yes

并将其改为:

代码语言:javascript
复制
USERGROUPS_ENAB no

好了。在您注销并重新登录后,在终端umask中运行,它将给您提供0027模式。

现在在终端中使用touch创建一个新文件:

代码语言:javascript
复制
touch testfile

现在检查权限:

代码语言:javascript
复制
stat -c %a ~/testfile

它应该给你640

更新

还有一个简单的方法:

代码语言:javascript
复制
nano ~/.bashrc

添加

代码语言:javascript
复制
#Set umask mode
umask 0027

关闭并保存,注销和登录。也应该为你工作。

票数 6
EN

Ask Ubuntu用户

发布于 2016-08-01 23:23:13

一个简单的man -k umask应该引导你阅读man pam_umask,whish说,部分原因是:

代码语言:javascript
复制
DESCRIPTION
pam_umask is a PAM module to set the file mode creation mask of the
current environment. The umask affects the default permissions assigned
to newly created files. 

它还说,

代码语言:javascript
复制
The PAM module tries to get the umask value from the following places
   in the following order:

   ·   umask= argument

   ·   umask= entry in the user's GECOS field

   ·   UMASK= entry from /etc/default/login

   ·   UMASK entry from /etc/login.defs (influenced by USERGROUPS_ENAB in
       /etc/login.defs)
票数 6
EN

Ask Ubuntu用户

发布于 2018-11-29 17:44:17

我使用小丑上面的答案来实现027的系统范围,但是我意识到当我使用USERGROUPS_ENAB no时,它需要更多的组管理。所以我觉得我找到了一个最好的答案,基本上:

  1. 确保安装了pam模块包;这使pam_umask模块可用。
  2. 确保/etc/pam.d/公共会话有一行表单会话可选pam_umask.so,以便启用pam_umask。
  3. 根据pam_umask手册页,默认umask是在登录时根据顺序检查以下每个位置来确定的:
    • 在/etc/panam.d/公共会话中设置的一个硬系统范围的默认设置。要这样设置它,请将上面提到的文件中的行替换为: session可选的pam_umask.so umask=027
    • 在/etc/passwd中的单个用户的GECOS字段中的一个条目覆盖该特定用户的软系统范围内的默认设置。使用表单的命令创建该条目:chfn
    • 在/etc/ UMASK=027 /默认/登录(您可能需要创建该文件)中的表单行设置了一个软系统范围的默认设置。
    • /etc/login.defs中的UMASK值。该值还用于其他内容(计算正在创建的新用户的主目录上的权限;有关详细信息,请参阅/etc/login.defs中的注释)。因此,最好避免依赖于此来设置常规登录的默认umask,将事情保持独立。

因此,现在我使用第一个选项(在/etc/pam.d/公共会话中设置了系统范围的默认设置),它运行得非常好。

祝你好运,朋友们:)

票数 4
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/805862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档