我想/etc
从 winscp 编辑我的文件。
我在这台计算机上拥有管理员权限,我如何编辑文件并将它们从 Winscp 保存到需要sudo
在进行任何修改之前写入的文件夹中。
我想这样做是因为我讨厌在 Windows 机器上的终端中编辑文件,而 Winscp 提供了一个不错的编辑器,它通常更方便
谢谢,麻烦您了。
答案1
我如何编辑文件并将其从 Winscp 保存在需要在修改任何更改之前写入 sudo 的文件夹中。
鉴于此要求,您以具有 sudo 访问权限的非特权用户身份登录,因此没有直接的方法使用 winscp 连接来执行此操作。
您可以做的是使用密钥启用 root 的 SSH 访问,然后设置基于密钥的身份验证。要实现这一点,您需要PermitRootLogin without-password
在 中设置/etc/ssh/sshd_config
,然后使用您最喜欢的工具(可能是 puttygen.exe)生成密钥,并将公共组件放在 /root/.ssh/authorized_keys 中。如果您搜索此站点,您会发现很多有关基于密钥的身份验证的问题和答案。然后只需使用 winscp 以 root 帐户身份连接,您就可以根据需要编辑内容。
我要提醒您,如果您这样做,使用能够使用 UNIX 样式行尾创建文本文件的文本编辑器非常重要。记事本或写字板之类的东西会严重破坏您的配置文件。
在您建立系统进行备份之前,您甚至不应该考虑这样做,以防万一出现问题。
另外,我建议你使用类似 etckeeper 的工具,这样你的 /etc 目录就可以存储在版本控制系统中。如果你使用得当,这将允许你快速返回到以前的版本。
另一种方法可能更好,并且仍为您提供 GUI 文本编辑器,即在 Windows 上安装 X11 服务器,并在服务器上安装 GUI 编辑器(如 SciTE)。然后,您将启用 X11 转发功能通过 SSH 进行连接,然后启动 GUI 文本编辑器并编辑文件。(我的类似问题的答案可以在此处找到https://superuser.com/questions/134688/putty-external-text-editor/134694#134694)
答案2
虽然我强烈反对以这种方式编辑系统文件(您应该真正使用 ssh 客户端(例如 putty)登录,然后使用 vim、emacs、joe、nano 等编辑文件),但这似乎是可能的:
http://winscp.net/eng/docs/faq_su
对于某些文件(例如/etc/sudoers
、/etc/passwd
和/etc/shadow
),您实际上应该使用 和 之类的命令visudo
,vipw
而不是直接编辑这些文件。使用通过 WinSCP 启动的编辑器编辑这些文件会跳过这些命令提供的一些保护措施。
但真的不要这么做。不要为了系统文件这么做。
答案3
Cakemox 是正确的。但是,使用 ssh 连接来更改系统文件是可行的。您可以使用 putty 连接您的 ssh 服务器。
我使用 WinSCP 进行文件传输,使用 Putty 进行远程连接。
答案4
scp 编辑系统文件可能会很危险,比如说您的连接在发送 /etc/shadow 的过程中断开(不太可能),如果您无法物理访问机器或某种控制台访问权限,那么修复它将很麻烦!