FreeBSD mount_nullfs / nullfs 导致操作不允许

FreeBSD mount_nullfs / nullfs 导致操作不允许

我使用 FreeBSD 作为本地 Web 服务器,并且想使用 SFTP 访问项目文件。我创建了一个用户,但我不希望用户能够在其主目录之上导航。

用户外壳:/usr/sbin/nologin

用户主页:/usr/home/username

我能够以用户身份建立 SFTP 连接,但我需要使项目文件可访问以进行操作。

项目文件位于/usr/local/www/nginx/projectname

根据相关问题的回答,我尝试了:

mount_nullfs /usr/local/www/nginx/projectname /usr/home/username

但这只会导致“不允许操作”。

我已经搜索了一段时间,无法确定为什么这不起作用。我怎样才能做到这一点?

编辑:

  • 尝试以 root 身份安装
  • 我能够将用户 chroot home 到项目目录
  • 应该提到这个服务器是 freenas 中的一个监狱,但是两个目录都在同一服务器中。

答案1

首先,我假设您sshd_config有以下内容:

Port 22

PermitRootLogin no
ChallengeResponseAuthentication no
UsePAM no

Subsystem       sftp    internal-sftp

Match Group sftp
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

其次,我假设您正在以普通用户身份进行 nullfs 挂载。通常不允许普通用户挂载文件系统。如果我尝试以 root 身份 - 它对我有用。

以 root 身份(sudosu)对其进行测试,以确认路径正确。然后将其添加到/etc/fstab

/usr/local/www/nginx/projectname       /usr/home/username     nullfs    rw     0      0

那应该足够了。

在这种情况下,允许普通用户安装任何东西是没有意义的。但这可以通过设置vfs.usermount=1/etc/sysctl.conf添加devfs规则(如果/dev/需要)来完成。

最后 - 如果您正在使用,ChrootDirectory您可以简单地将用户主页直接设置为/usr/local/www/nginx/projectname.使用 nullfs 的间接寻址可能会提供额外的安全层。但如果你相信你的sshd_config,那就足够了。

答案2

您必须修改监狱配置以允许在监狱内安装 nullfs。出于安全原因,监狱内通常不允许这样做。我建议反对。

您可以在主机系统上配置 nullfs 挂载(在 /etc/fstab 中),但对于 FreeNAS 来说这会更困难,因为它存储配置的方式。

相关内容