sftpコマンドは、リモートユーザーがリモートのsftp-server実行可能ファイルを選択し、オプションでそのようなプロセスでsudoにアップグレードできるようにするサブシステムオプション(-s)をサポートしています。
sftp -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" xxx.yyy.zzz.aaa
このコマンドは〜/ .ssh / configのsshクライアントオプションに従い、pubkeyおよびカスタムポートとユーザー設定の透過的な使用を許可します。
ただしsubsystem
、sftp固有であるように見えるため、構成ファイルで設定されておらず、sftpのコマンドラインオプションとして設定する必要があるようです。
ただし、一部のツールはsftp呼び出しをラップするため、サブシステムオプションを設定できず、ユーザーアクセスが停止します。
openssh sftpに対してこれを設定するために使用できるいくつかの構成オプションファイルはありますか?
gnome nautilusがファイルマネージャー統合のためにsftpを呼び出す方法に影響を与える構成ファイルはありますか?
ハックしているが機能する可能性のあるソリューションの更新は...
したがって、sftpがオプションに使用する明確な構成ファイルがないことが判明したため、汎用ラッパースクリプトを変更して、選択したホストにオプションを明示的に追加し、これをパスに追加しました。
#!/bin/bash
# Generic shell wrapper that performs an operation
OPERATION=/usr/bin/sftp
args=("$@")
#the final arg should contain a hostname of the form [user@]host[:path]
case "${args[@]: -1}" in
myserver.com)
exec $OPERATION -s "/usr/bin/sudo /usr/libexec/openssh/sftp-server" "$args"
;;
*)
exec $OPERATION "$args"
;;
esac
ただし、sudoersファイルによっては、通常sudoを実行するにはttyが必要なので、「-t」オプションをsshに渡して、何を推測する必要がありますか?ssh_configまたは〜/ .ssh / configファイルで機能する、文書化されているsshクライアントコマンドの構成オプションはありません。はは。
だから私はそれを提供する別のラッパースクリプトを書きます...
#!/bin/bash
# Generic shell wrapper that performs an operation
OPERATION=/usr/bin/ssh
args=("$@")
#locating the hostname is not so simple with ssh
exec $OPERATION -tt "$args"
ただし、sftpにハードコードされており、オプション "-S"で制御されているように見えるため、sftpが〜/ bin / sshラッパーファイルを使用できないようになりました。