Han*_*off 62 linux system umask
我在一个运行Linux(Debian和Ubuntu)的实验室工作.用户名和组名由NIS和yp处理.我们有一些普通用户,每个人都可以访问运行实验,然后我们每个人都拥有自己的用户,此外还有一个我们都是其成员的公共组.
如何使/home/
用户/组对共享驱动器(NFS)上的所有文件和目录进行读/写(/可执行)?基本上我想要的是
chmod -R 664 /home
chgrp -R commongroup /home
Run Code Online (Sandbox Code Playgroud)
或者等价的umask 0002
.
但是运行上述命令只能修复文件夹中的当前文件,而umask仅适用于单个用户,并且必须在每次用户登录时运行,即.在.bashrc
文件中(这将通过gnome用于更改模式吗?).是否有系统范围的命令或设置可用于确保我们的commongroup对公共文件具有写入权限?
eph*_*ent 95
Debian和Ubuntu都附带了pam_umask.这允许您配置umask /etc/login.defs
并让它们应用于系统范围,无论用户如何登录.
要启用它,您可能需要在/etc/pam.d/common-session
阅读中添加一行
session optional pam_umask.so
Run Code Online (Sandbox Code Playgroud)
或者它可能已经启用.然后编辑/etc/login.defs
并将UMASK
行更改为
UMASK 002
Run Code Online (Sandbox Code Playgroud)
(默认为022
).
请注意,用户仍然可以超越的umask在自己~/.profile
或~/.bashrc
或相似的,但(至少在新Debian和Ubuntu的安装)不应该有umask的任何压倒一切的/etc/profile
或/etc/bash.bashrc
.(如果有,只需删除它们.)
Yit*_*itz 23
首先,确保pam-modules
已安装包.这使pam_umask
模块可用.然后确保/etc/pam.d/common-session
有一行表格
session optional pam_umask.so
Run Code Online (Sandbox Code Playgroud)
这样pam_umask
就可以了.
现在,根据pam_umask
手册页,通过按顺序检查以下每个位置,在登录时确定默认的umask:
设置了硬系统范围的默认设置/etc/pam.d/common-session
.要以这种方式设置,请使用以下方法替换上述文件中的行:
session optional pam_umask.so umask=002
Run Code Online (Sandbox Code Playgroud)单个用户的GECOS字段中的条目将/etc/passwd
覆盖该特定用户的软系统范围默认值.使用以下形式的命令创建该条目:
chfn --other='umask=002' username
Run Code Online (Sandbox Code Playgroud)表单UMASK=002
中的一行/etc/default/login
(您可能需要创建该文件)设置软系统范围的默认值.
UMASK
来自的价值/etc/login.defs
.该值还用于其他内容(计算正在创建的新用户的主目录的权限; /etc/login.defs
有关详细信息,请参阅注释).所以最好不要依赖它来设置常规登录的默认umask,以保持分离.
因此,在您的情况下,/etc/default/login
如果您希望可以覆盖单个用户的设置,或者/etc/pam.d/common-session
如果您希望它对所有用户都相同,则应将其设置为如上所述.
请注意,即使使用硬默认设置,用户仍可以umask
使用umask
shell提示符或.profile
脚本中的命令手动覆盖默认值.
另请注意,传统的Unix设置此默认设置的方法是添加umask
命令/etc/profile
,并且仍然可以使用.但是在Ubuntu上配置这样的东西不是推荐的方法,因为使用脚本和GUI很难可靠地管理.
请注意,不幸的是,这已停止为已转换为启动的任何应用程序工作systemd --user
.
归档时间: |
|
查看次数: |
70211 次 |
最近记录: |