在我的用户帐户中,我将设置umask
为022
with .bashrc
,但是无论我如何成为root ,我都希望root使用aumask
的值077
(例如,以root身份直接在tty上登录或使用sudo或su)。如果我以root用户身份登录tty,我会得到077
,所以很好。对于sudo
在/etc/sudoers
我设置
Defaults umask = 0022
Defaults umask_override
我得到了077
,所以又好了。对于su
/root/.bashrc中的,我可以设置
umask 022
我得到了umask
的077
,但我不相信这是做了正确的道路。
你如何设置umask
的su root
可能相关的是,我/etc/login.defs
有
UMASK 077
USERGROUPS_ENAB yes
这个答案是特定于bash的,其他shell具有类似的功能,但是由于提到了您的答案,因此.bashrc
我假设您使用的是Bash。
您遇到的是,外壳程序可以作为交互式外壳程序或登录外壳程序被调用。
bash -l
- 登录bash -i
- 交互的如果您在“邀请”部分的Bash手册页中查看,则会注意到以下2条评论:
登录
登录外壳是一个参数为零的第一个字符为-的外壳程序,或以--login选项开头的外壳程序。
交互的
交互式外壳程序是一个不带非选项参数且不带-c选项(其标准输入和错误均连接到终端(由isatty(3)确定))启动的外壳程序,或一个以-i选项启动的外壳程序。
如果bash是交互式的,则设置PS1并且$-包括i,从而允许shell脚本或启动文件测试此状态。
交互式和登录Shell按以下顺序读取配置文件。它首先执行此操作:
依次按以下顺序之一(以先找到的为准):
交互式外壳程序(不是登录外壳程序)读取其他配置文件~/.bashrc
。请注意,他们从不/etc/bashrc
直接读取配置文件。~/.bashrc
由于此节,他们通过文件读取了该文件:
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
为了使两种类型的Shell都可以读取,umask
您需要将其包括在上述两种类型的Shell调用都将读取的文件中,因此我将其放入/root/.bash_profile
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句