如何仅为特定用户提供对特定文件夹及其内容的访问权限?

我使用了
adduser <name>

创建了一个新用户andrew。现在我想给他仅有/var/www/sitename.com及其内容的读写权限。
我应该如何做到这一点?
我尝试了sudo chown andrew /var/www/sitename.com,但他仍然能够看到/var/www和其他目录下的所有文件和文件夹。

我已将这个问题标记为与此问题重复。虽然这个问题并不完全相同,但我认为答案基本相同。 - zwets
1个回答

将所有权更改为指定用户不会更改在passwd文件中指定的用户默认主目录。无论如何,您可以通过不同的方式实现这一点。但为了简化操作,请按照以下步骤在终端中进行操作:
首先,备份您的/etc/passwd文件,执行以下操作;
sudo cp /etc/passwd /etc/passwd.back

编辑完毕后,使用vi或nano打开文件,我更喜欢使用nano,因为它非常简单易用;
sudo EDITOR=nano vipw /etc/passwd

定位已创建的用户。假设用户是andrew,则应显示如下行;
andrew:x:1001:1001:andrew:/home/andrew:/bin/sh

/home/andrew替换为/var/www/sitename.com,然后按下CTRL+O保存文件,再按下CTRL+X退出。这将指向指定的目录。以该用户身份登录,并检查是否指向**/var/www/sitename.com,同时检查是否存在权限问题。如果权限问题仍然存在,则按照以下步骤将用户添加到www-data组中;
sudo adduser andrew www-data

编辑: 关于评论,我刚刚进行了快速搜索并找到了更多详细信息。好吧,你可以编辑位于/etc/目录下的vsftpd.conf文件。

sudo nano /etc/vsftpd.conf

取消注释(只需删除开头的#)以下行;
chroot_local_user=YES

注意:为了安全起见,在对配置文件进行任何更改之前,请先备份该文件。
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.back

来源:Ubuntu上的vsftpd.conf

希望对你有所帮助!


1它能用,但我仍然可以访问其他文件夹。 - Vladimir Stazhilov
1这是因为用户也属于www-data组。 - AzkerM
1@VovaStajilov,我做了一次快速搜索,并通过编辑添加了更多详细信息。希望能对你有所帮助。 - AzkerM