You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让QNAP NAS(运行QTS系统)的所有用户均可使用SSH/SFTP服务?

如何让QNAP NAS(运行QTS系统)的所有用户均可使用SSH/SFTP服务?

我太懂这种纠结了!QNAP默认把SSH/SFTP权限锁死在管理员组,出发点是安全,但实际场景里我们经常需要给普通用户开权限——比如让团队成员用SFTP传项目文件,总不能人人都给管理员权限吧?而且QTS那“过度保护”的尿性,改个设置都藏得深,下面是我亲测有效的解决步骤:

第一步:先开启基础SSH服务(没开的话先搞这个)

  • 登录QTS网页管理后台,找到「控制面板」→「网络与文件服务」→「Telnet/SSH」
  • 勾选「启用SSH服务」,建议把默认端口22改成其他数字(比如2222),降低暴力破解风险,点「应用」保存。

第二步:修改用户登录Shell配置(核心步骤)

QNAP默认给普通用户分配的是/sbin/nologin,直接堵死了SSH登录的路,得改成可登录的Shell:

  1. 用管理员账号SSH登录NAS终端,输入命令:ssh admin@你的NAS_IP地址,输入管理员密码回车登录。
  2. 先备份原配置文件,以防改崩了能恢复:cp /etc/passwd /etc/passwd.bak
  3. 编辑用户配置文件,用nano更友好:nano /etc/passwd
  4. 找到你要开权限的普通用户行(比如用户名为team_member),原内容大概是:
    team_member:x:1001:100::/home/team_member:/sbin/nologin
    
    把末尾的/sbin/nologin改成/bin/sh,修改后变成:
    team_member:x:1001:100::/home/team_member:/bin/sh
    
  5. Ctrl+O保存,Ctrl+X退出nano编辑器。

第三步:配置SFTP权限(按需设置)

如果只是需要SFTP而不想让用户进SSH终端,可以做更严格的限制:

  1. 继续在管理员SSH终端里编辑SSH配置文件:nano /etc/ssh/sshd_config
  2. 找到Subsystem sftp /usr/libexec/sftp-server这一行,确保前面没有#注释掉。
  3. 如果你想把用户限制在自己的/home目录,在文件末尾添加:
    # 限制普通用户组只能用SFTP且仅访问自身目录
    Match Group users
        ChrootDirectory /home/%u
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no
    
    要是只针对单个用户,就把Match Group users改成Match User 你的用户名
  4. 保存退出后,重启SSH服务生效:/etc/init.d/sshd restart

第四步:验证设置

  • 用普通用户账号测试SSH登录:ssh team_member@你的NAS_IP地址 -p 你改的端口号,输入密码后应该能顺利进入终端。
  • 用SFTP客户端(比如FileZilla)测试,输入NAS地址、端口、用户名密码,应该能正常访问指定目录。

注意事项

  • QTS系统更新后,/etc/passwd可能会被重置,更新后记得重新检查修改。
  • 给普通用户开权限后,一定要确保他们的密码足够复杂,避免被暴力破解。
  • 要是不需要SSH终端访问,只用SFTP的话,一定要加上ForceCommand internal-sftp,防止用户拿到终端权限。

备注:内容来源于stack exchange,提问作者Garo

火山引擎 最新活动