FinalShell启用root权限不能修改文件下载和上存详细解决办法,一直等待
创建于:2025年3月5日
创建于:2025年3月5日
在使用 FinalShell 上传/下载系统文件时,最常见的问题是文件权限不足或FinalShell 文件管理器仍然以普通用户身份在进行 SFTP 传输,导致无法写入、修改或上传到系统目录(如 /etc)。下面给出一个比较完整的排查与解决思路,供参考:
如果你希望 直接以 root 用户登录 并通过 FinalShell 的内置 SFTP 功能来管理系统文件,需要先确保 SSH 配置里允许 root 登录。
编辑 SSH 配置文件:
bashsudo vi /etc/ssh/sshd_config
找到或添加以下配置项,并确保配置正确:
textPermitRootLogin yes PasswordAuthentication yes
- 若只想用密钥登录,可改成
PermitRootLogin prohibit-password
并配置好公钥;- 若你不打算让 root 直接用密码登录,可以跳过此步骤,改用“sudo提权方式”(后面会提到)。
重启 SSH 服务:
bashsudo systemctl restart sshd
在 FinalShell 上新建(或修改)会话,用户名填 root
,密码填 root 密码(或使用密钥)。连上后,FinalShell 的文件管理器就是以 root 身份在执行 SFTP 传输,这样能直接对 /etc
、/usr
等系统目录中的文件进行上传或修改。
有些服务器或云主机(如 Ubuntu 默认)会出于安全考虑禁用 root 登录,这时可以用普通用户(例如 ubuntu
)登录到 SSH,然后再在 FinalShell 内置文件管理器中启用 “sudo” 功能(若支持)或者手动在命令行中进行操作:
如果 FinalShell 的 SFTP 模块不支持自动提权,可以先把文件上传到普通用户可写的目录(例如 ~/
),然后再在终端执行 sudo mv
/sudo cp
命令挪到系统目录。举个例子:
config-obfs.json
先上传到 ~/
目录(普通用户有写权限)。这样就可以以 root 权限完成文件覆盖/修改。bashsudo cp ~/config-obfs.json /etc/shadowsocks-libev/config-obfs.json sudo chown root:root /etc/shadowsocks-libev/config-obfs.json
SSH 配置未允许 root 登录
root
登录,但 PermitRootLogin
未开启,FinalShell 文件管理器会连不上或被拒绝。/etc/ssh/sshd_config
并重启 sshd。FinalShell 文件管理器仍然是普通用户权限
sudo su
切到 root,文件管理器可能还是最开始连接时的普通用户身份,导致上传报错或卡在“等待”。传输速度卡住或网络中断
文件权限或 SELinux 问题
sudo setenforce 0
关闭或进行 SELinux 策略配置(仅在知道影响后再修改,以免带来安全风险)。尝试使用其他工具
比如 WinSCP、Xftp、或 FileZilla,手动配置成 root 登录(如果允许)或者使用 SFTP + “sudo -s”策略(部分工具支持 “sudo”/“scp -r” 等高级选项)。
查看系统日志
在服务器端查看 /var/log/auth.log
、/var/log/secure
或 /var/log/syslog
(视发行版而定),看是否有因为权限、SELinux 或者其它安全策略报错的信息。
对比测试
/etc/ssh/sshd_config
中 PermitRootLogin yes
,设置 root 密码后,直接用 root 登录 FinalShell,并用其内置文件管理器读写系统文件。sudo
提权。FinalShell 若支持“sudo SFTP”,可在高级设置中启用;若不支持,则先上传到普通用户目录,再用命令行 sudo cp
/sudo mv
放到系统路径。希望以上步骤能帮助你解决在 FinalShell 中使用 root 权限修改/上传系统文件时一直“等待”或无法写入的问题。若过程中还有报错信息,可将错误提示贴出来进一步排查。祝一切顺利!