如何让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:
- 用管理员账号SSH登录NAS终端,输入命令:
ssh admin@你的NAS_IP地址,输入管理员密码回车登录。 - 先备份原配置文件,以防改崩了能恢复:
cp /etc/passwd /etc/passwd.bak - 编辑用户配置文件,用nano更友好:
nano /etc/passwd - 找到你要开权限的普通用户行(比如用户名为
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 - 按
Ctrl+O保存,Ctrl+X退出nano编辑器。
第三步:配置SFTP权限(按需设置)
如果只是需要SFTP而不想让用户进SSH终端,可以做更严格的限制:
- 继续在管理员SSH终端里编辑SSH配置文件:
nano /etc/ssh/sshd_config - 找到
Subsystem sftp /usr/libexec/sftp-server这一行,确保前面没有#注释掉。 - 如果你想把用户限制在自己的/home目录,在文件末尾添加:
要是只针对单个用户,就把# 限制普通用户组只能用SFTP且仅访问自身目录 Match Group users ChrootDirectory /home/%u ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding noMatch Group users改成Match User 你的用户名。 - 保存退出后,重启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




