如何仅在 Centos / Linux 安装上创建具有特定 /dir/ 访问权限的 FTP 用户

如何仅在 Centos / Linux 安装上创建具有特定 /dir/ 访问权限的 FTP 用户

所以我使用的是 VPS - CentOS Linux 安装。我的服务器上有 vsFTPd。我目前可以通过 root 用户对服务器进行 SFTP 访问,但现在尝试创建一个新用户,仅对服务器上的特定目录进行 FTP 访问,我已完成以下操作:

1. mkdir /var/www/mydomain.com
2. mkdir /var/www/mydomain.com/html
3. useradd <-username>
4. passwd <-username>
5. chown –R <-username> /var/www/mydomain.com
5. groupadd <-groupname>
6. gpasswd -a <-username> <-groupname>
7. chgrp -R <-groupname> /var/www/mydomain.com
8. chmod -R g+rw /var/www/mydomain.com

我正在努力做的是创建用户只能访问 /var/www/mydomain.com- 我观察到用户正确登录到正确的文件夹,但是用户可以浏览“返回”到其他目录。我希望用户停留在特定文件夹中并且无法“浏览”回来

有任何想法吗?

我找到了有关 chrooting 的不同文章,但只是没有弄清楚如何在上面的步骤中使用它。

答案1

这很简单。

您必须在 vsftpd.conf 文件中添加以下选项

chroot_local_user=YES

配置文件内的文档是不言自明的:

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().

这意味着,用户只能访问您配置为用户主目录的文件夹。下面,我有一个用户密码条目的示例:

upload_ftp:x:1001:1001::/var/www/sites/:/bin/bash

使用以下命令设置用户的主目录

usermod -d /var/www/my.domain.example/ exampleuser

笔记:在我的示例中,该用户也是 Linux 内部某些计划任务的有效用户。如果您没有这个需求,请将用户的shell/sbin/nologin改为bash.

答案2

更改配置以包括之后chroot_local_user=YES

您可以更改用户的 shell,/usr/sbin/nologin以便在密码泄露时可以减轻一些风险(也设置主目录)。 shell/etc/shells也需要列出,否则身份验证将失败。

usermod -d /var/www/my.domain.example -s /usr/sbin/nologin exampleuser

-d, --home HOME_DIR 用户的新登录目录。如果给出 -m 选项,当前主目录的内容将被移动到新的主目录,如果该目录尚不存在,则创建新的主目录。

-s, --shell SHELL 用户新登录 shell 的名称。将此字段设置为空白会导致系统选择默认登录 shell。

https://security.appspot.com/vsftpd/FAQ.txt

答案3

以下是设置用户并仅允许用户通过 FTP(即无 SSH)访问以及限制对特定(用户主)目录的访问的步骤专业软件:

  1. 添加新用户:adduser newusername

  2. 设置密码:passwd newusername

  3. 将用户主目录从默认修改为新文件夹:

    usermod -d /target/directory username

  4. 编辑shells文件:并在末尾vi /etc/shells添加/dev/null

  5. 修改文件newusername中的条目passwd:在 之前vi /etc/passwd添加,使条目如下所示:/./newusername

    newusername:x:502:502::/home/ftp/./newusernamehomedirectory/:/dev/null

    步骤 4 和 5 的详细信息请参见此处:

  6. 编辑/etc/proftpd/proftpd.conf文件并取消注释该行DefaultRoot ~

答案4

将根文件夹权限设置为711使用您的根帐户。

相关内容