我正在尝试创建名为斯韦恰斯并授予他通过 SFTP 连接到现有目录及更深层次目录 (/usr/share/nginx/itsupply) 的权限。当前目录由 nginx 组内的 nginx 拥有。我如何授予新用户访问此目录的权限(而不禁用 nginx 对此目录的访问)?我尝试将新创建的用户添加到 nginx 组,但当我尝试使用凭据连接时,系统仍提示我输入密码(我猜用户仍然没有访问其主目录的权限)。
使用
cat /etc/passwd | grep svecias
给出了这个结果:
svecias:x:1001:995::/usr/share/nginx/itsupply:/usr/sbin/nologin
因此该用户的主目录已设置为所需目录。
在我之前
usermod -a -G nginx svecias
usermod -g nginx svecias
结果是:
svecias:x:1001:1001::/usr/share/nginx/itsupply:/usr/sbin/nologin
答案1
根据这个答案 /usr/sbin/nologin
将导致您的用户无法通过 SSH 登录。
此外,将用户添加到nginx
组将使其能够访问该组有权访问的任何文件夹,而不仅仅是/usr/share/nginx/itsupply
。此外,此用户创建的文件将归 svecias:nginx 所有。这可能没问题,但有时可能会造成麻烦。
在我的服务器中,我使用的解决方案是使用特定文件夹bindfs
并映射用户。这是我的fstab
:
/home/www /home/wwwbind fuse.bindfs map=www-data/cpd:@www-data/@cpd,create-with-perms=0770 0 0
cpd
这样,我使用仅具有 访问权限的用户登录/home/wwwbind
。任何修改都将反映到 ,/home/www
就像用户www-data
所做的一样。