我尝试 chfn 更改用户的 umask 值,如下所示
sudo chfn -o umask=022 username
但我有这个错误
chfn: Office: '=' is not allowed
我还尝试了一次失败的转义 = 符号的尝试,如下所示
sudo chfn -o umask\=022 username
sudo chfn -o "umask=022 username"
如何使用此命令使用或转义等号?
谢谢
答案1
chfn
/etc/passwd
更改第四个字段(或同等字段)中的信息。那里的大部分数据仅用于显示目的,甚至被称为“用户名或评论字段”passwd(5)
手册页。
Debian 的手册页chfn(1)
但提到其中一部分用于“会计信息”。显然pam_umask.so
也读了它,我想这就是你想要的。手册页还提到了对等号的禁止:
这些字段不得包含任何冒号。除了其他字段,它们不应包含任何逗号或等号。
-o, --other OTHER
更改用户的其他 GECOS 信息。该字段用于存储其他应用程序使用的记帐信息,并且只能由超级用户更改。
看来chfn
您的 CentOS 上的 遵循不同的语法,并且没有提供更改“其他”部分的方法。在Debian上测试,结果chfn -o 'umask=022' username
是:
username:x:1000:1000:Full name,,,,umask=022:/home/username:/bin/bash
因此,缺少功能的解决方法chfn
是手动编辑文件(使用),并在注释字段中的第四个逗号后vipw
添加。umask=022
答案2
看看这个手册页:https://www.systutorials.com/docs/linux/man/1-chfn/
该-o
选项是设置办公室房间号码,所以我认为这是错误的,因为=
不是有效的号码。
有趣的是,在 ubuntu 16.04 上,该-o
选项用于设置 中的 GECOS 字段/etc/passwd
,这正是您想要做的,而不是设置办公室号码。
答案3
我通过修改bashrc达到同样的效果
vi ~/.bashrc
...
# User specific aliases and functions
umask 022
谢谢