简介:我对 Unix 系统还不太熟悉,有一台 Raspberry 3b+ 用作 Web 服务器。显然,我使用另一台计算机进行开发,并通过 sftp 传输文件。文件传输后总是遇到权限问题,我检查了我的 ftp 服务器 (proftpd) 是否存在问题 (umask),发现无论配置中的 umask 是什么,实际文件权限都不会发生变化,即使我将 umask 更改为 777 也没有变化。我得到了查看用户 umask 的提示,然后我继续研究,并找到了我认为是实际问题的东西。
问题:我目前使用的是标准“pi”用户。每当我在任何目录中创建文件时(无论是在 bash 中使用 touch 还是在文件管理器中使用右键单击 - 新建),它都会以 640 权限创建。
我检查了什么:
- umask 命令:显示 022,更改为 000 会导致文件以 660 权限创建
- /etc/profile:那里没有 umask(我也知道这是错误的地方,但是早期的搜索引导我到了那里)
- /etc/login.defs:umask 设置为 022
- /etc/pam.d/:任何文件中均未设置 umask
- .bashrc:没有设置 umask
有人能告诉我该怎么做才能创建具有 644 权限的文件吗?
如果我遗漏了一些明显的奖励,请解释一下我如何自己用谷歌搜索它,谢谢。
答案1
在 /etc/proftpd/proftpd.conf 中设置 Umask 022
Umask 022 022
第二个 022 用于目录。
答案2
检查其中一个父目录是否具有 ACL(访问控制列表)。如果是,则“ls -l”将显示“+”,如下所示:
drwxrwxr-x+ 2 ghp ghp 4096 Apr 26 19:23 .
检查ACL,是否有“默认”:
$ getfacl .
# file: .
# owner: ghp
# group: ghp
user::rwx
user:pi:rwx
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:group::rw-
default:other::---
答案3
我保证在看到这个之后就放弃:
您的问题不是由 proftpd 引起的,而是由 sftp-server 引起的。
您是否禁用了
Subsystem sftp /usr/lib/openssh/sftp-server
在 /etc/ssh/sshd_config 中?您可以使用 -u 选项设置 sftp-server 的 umask。