我创建了一个用户用于通过 FTP 进行备份。我将主目录移动到已安装的驱动器,并授予用户rwx
使用 ACL 的权限。用户有一个外壳,用户有一个密码,但是当我通过 SSH 使用用户登录服务器时。我收到以下错误。
Could not chdir to home directory /mnt/NAS/nextcloud_data/linuxman/files/PUSCraft/Backups: Permission denied
-bash: /mnt/NAS/nextcloud_data/linuxman/files/PUSCraft/Backups/.bash_profile: Permission denied
文件夹权限如下:
drwxrws---+ 6 mcbackup mcbackup 4096 Jul 12 2020 Backups
这是 ACL 配置:
# file: Backups
# owner: mcbackup
# group: mcbackup
# flags: -s-
user::rwx
user:linuxman:rwx
user:mcbackup:rwx
user:1002:---
user:1003:---
user:1004:---
user:1005:rwx
user:1006:---
group::rw-
mask::rwx
other::---
default:user::rwx
default:user:linuxman:rwx
default:user:mcbackup:rwx
default:user:1002:---
default:user:1003:---
default:user:1004:---
default:user:1005:rwx
default:user:1006:---
default:group::rw-
default:mask::rwx
default:other::---
我不太了解 SELinux,但据我所知,我没有看到任何可能导致问题的布尔值。
有什么想法我在这里想念的吗?
更新:忘了提,有问题的用户是mcbackup
.
更新 1:我查看了默认主目录的 SELinux 上下文和内容,并将其添加到 mcbackup 的主文件夹
sudo chcon -r user_home_dir_t Backups
登录 SSH 时仍然出现相同的权限错误。
我为了访问给定目录中的文件,您需要对单个文件的适当访问(读取和/或写入,具体取决于您对它们执行的操作),并且至少还执行(也称为“搜索” ) 访问该目录及其路径上的所有目录。如果您至少没有对特定目录的执行访问权限,则无法触摸其中的任何内容(包括子目录)。(注意:您需要读取权限才能列出目录的内容,但如果您已经知道所需项目的名称,则不是严格需要的。)
在这种情况下,问题似乎是缺少对 /mnt 目录(以及其中的所有内容)的访问权限。这是相当不寻常的;我习惯于 /mnt 允许所有人读取和执行,如下所示:
...但是如果您出于某种原因希望将其锁定,则通过 ACL 授予访问权限就可以了。