我公司的 SFTP 服务器上的 /etc/pam.d/sshd 文件中有一个语法:
session optional pam_umask.so umask=444
我发现此命令会将所有 SFTP 客户端的上传文件权限从 644 更改为 222。是否可以使用此语法匹配用户?我只希望此命令在特定用户上传文件时有效,并为其余用户保留 644。
我对 Ubuntu 还很陌生,如能得到任何帮助我将不胜感激!
答案1
根据man pam_umask
(libpam-modules 版本 1.3.1-5ubuntu4.1)1:
The PAM module tries to get the umask value from the following places in the following order: · umask= entry in the user's GECOS field · umask= argument · UMASK= entry from /etc/default/login · UMASK entry from /etc/login.defs (influenced by USERGROUPS_ENAB in /etc/login.defs)
因此,应该可以在 GECOS 字段中为用户设置每个用户的 umask someuser
,例如使用
sudo chfn -o umask=0444 someuser
然后在文件中的条目umask=0022
中设置- 或者更好的是,完全省略那里,以便其他用户回到默认文件中指定的 umask。pam_umask
/etc/pam.d/sshd
umask=
笔记:
- 在早期版本中,顺序似乎有所不同,
umask=
配置文件中的参数优先级高于 GECOS 条目中的参数。