V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
SilentDepth
V2EX  ›  Linux

如何让 sftp 账号正常登录到 nfs mounted 目录的子目录?

  •  
  •   SilentDepth · 2017-12-27 20:12:21 +08:00 · 2879 次点击
    这是一个创建于 2304 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要做一个多节点共用的 SFTP 文件服务,于是就想着给这些节点挂载一个 NAS。CentOS 7 下安装了 nfs-utils,挂载到了一个目录,比方说 /mnt/nas。

    然后创建 sftp 专用账号,设定账户的主目录到 /mnt/nas/sftp,目录权限什么的也都设置好了。

    问题来了:用 sftp 账号登录服务器时,密码验证步骤通过后立刻 connection closed by remote host。然而用 root 登录时一切正常的。

    我折腾半天认为是权限问题,nas 目录的权限显示为 rwxrwxrwt。如果把 sftp 账号的主目录设置到 nas 以外的地方则一切正常。Linux 小白,实在不知道该怎么搞了。
    第 1 条附言  ·  2017-12-29 14:59:06 +08:00
    问题大概出在 Chroot 权限要求上。Chroot 要求上级目录必须是 755,而如果 mount 的目录( nas 目录)是 NFS 的根目录,其权限总是 777 且无法更改(至少我没找到可以执行的方案),不满足 Chroot 的权限要求。

    后来发现只是 NFS 根目录是这样子,子路径的权限并不特别,于是 mount 了其中的子目录顺利通过了 sftp 登录。虽然和预想的稍有偏差,但只是一级路径的问题并不重要,至少够实际使用。如果有人遇到了相同的问题希望这个主题能帮到忙。

    However 还是想知道怎么修改那个 rwxrwxrwt ……
    12 条回复    2017-12-30 10:24:35 +08:00
    jyf007
        1
    jyf007  
       2017-12-27 22:44:27 +08:00
    对不起,作为一个小白我想说这个权限是有问题的但是怎么设置我没有谱
    frank611
        2
    frank611  
       2017-12-27 22:47:17 +08:00 via Android
    需要 sftp 账号吗?我咋都没有用就可以访问了呢
    SilentDepth
        3
    SilentDepth  
    OP
       2017-12-27 23:23:22 +08:00
    @frank611 #2 要做 SFTP 服务,当然要创建一个 SFTP 账号。而实际上通过 SSH 登录也是 closed by remote host。
    SilentDepth
        4
    SilentDepth  
    OP
       2017-12-27 23:24:53 +08:00
    @jyf007 #1 mkdir 时 nas 的权限没什么特别,mount 之后就变成这样了,我猜是与 nfs 机制有关系,但不知如何调整。chmod o-t 会被提示 Operation not permitted。
    defunct9
        5
    defunct9  
       2017-12-28 07:16:31 +08:00 via iPhone
    这个问题其实很复杂。
    hzaugiser
        6
    hzaugiser  
       2017-12-28 10:25:59 +08:00
    SilentDepth
        7
    SilentDepth  
    OP
       2017-12-28 10:36:05 +08:00
    @hzaugiser #6 用了 Chroot,在 nas 目录外是正常的,但设定为 nas 目录内的子目录时,sftp 账号无法登录
    julyclyde
        8
    julyclyde  
       2017-12-28 14:01:14 +08:00
    sshd 服务器日志咋说?
    SilentDepth
        9
    SilentDepth  
    OP
       2017-12-28 14:35:42 +08:00
    @julyclyde #8
    fatal: bad ownership or modes for chroot directory component "/mnt/nas/" [postauth]
    所以果然是权限的问题,然而并不知道怎么设置这个权限
    SilentDepth
        10
    SilentDepth  
    OP
       2017-12-29 14:59:35 +08:00
    最终解决了实际问题,见附言 1
    Nioty
        11
    Nioty  
       2017-12-30 10:21:15 +08:00 via Android
    老哥以后出了问题第一反应应该是看日志 包括你来 v2 求助的时候 一定要带上日志 要不这样盲调谁也弄不明白
    SilentDepth
        12
    SilentDepth  
    OP
       2017-12-30 10:24:35 +08:00
    @Nioty #11 Linux 小白,并不知道日志在什么地方。我只是觉得这种需求应该不罕见,也许有人经历过,所以把关注点放在了阐述需求内容上。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2824 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 11:55 · PVG 19:55 · LAX 04:55 · JFK 07:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.