WinSCP で一般ユーザで接続後に root に変更する

9月 4, 2026

WinSCP には接続後にユーザーを切り替える(su する)機能はありません。一般ユーザーで接続した状態から root 権限でファイルを扱う場合は、サーバー側の /etc/sudoers で SFTP サーバーをパスワードなしで実行できるようにし、WinSCP から sudo 経由で SFTP サーバーを起動する方法があります。以下は、その方法を調べたときの情報を整理したものです。

目次

WinSCP で接続後に root へ切り替えられるか(結論)

/etc/sudoersにsftp-serverをパスワード無しで実行できるようにして、rootユーザーにsuさせる方法しかないようです。

参考にした情報

sudoers を使う方法の概要(WinSCP 公式 FAQ より)

以下は WinSCP 公式 FAQ「How do I change user after login (e.g. su root)?」に記載されている方法の要約です(手元で実行確認した手順ではありません。詳細・最新の内容はリンク先を参照してください)。

  • WinSCP の「高度なサイト設定 → SFTP」で、SFTP サーバーのコマンドを sudo /bin/sftp-server のように指定する。
  • sftp-server の場所は環境によって異なるため、whereis sftp-server などで確認する。
  • サーバー側の /etc/sudoers で、対象ユーザーに NOPASSWD: /bin/sftp-server を許可する。
  • requiretty が有効な環境では、その調整が必要になる。
  • この方法は SFTP / SCP 向けであり、FTP では使えない。

root 権限で操作するときの注意点

  • NOPASSWD の対象は必要な sftp-server だけに限定する。
  • ALL=NOPASSWD: ALL のような広い許可にはしない。
  • この設定では、その接続ユーザーが SFTP 経由で root 権限相当のファイル操作を行えるようになる。接続アカウントや SSH 鍵の管理に注意する。

FAQ

Q. WinSCP で root 権限のファイルを編集したい

WinSCP 自体にユーザーを su で切り替える機能はありません。WinSCP から起動する SFTP サーバーを sudo 経由で実行することで、SFTP 経由で root 権限相当のファイル操作ができます(接続ユーザー自身が root に切り替わるわけではありません)。

Q. sudo を使うには何を設定すればいいか

サーバー側の /etc/sudoers で対象ユーザーに NOPASSWD: /bin/sftp-server を許可し、WinSCP 側の SFTP サーバーコマンドを sudo /bin/sftp-server に変更します。/bin/sftp-server のパスは環境依存のため、実際のパスに読み替えてください。

その他

Posted by iwadjp