スクリプトでsudosuを使用してコマンドを実行し、stdinとstdoutをリダイレクトします

isevcik

別のユーザーとしてコマンドを実行し、そのstdinに書き込み、そのstdoutから読み取る必要があります。新しいシェルを開くことによってのみ、別のユーザーとしてコマンドを実行できます。sudo su anotheruserしかし、新しく開いたシェルを使用すると、呼び出し元のstdinとstdoutが失われます。走ることはできませんsudo -u anotheruser -c command

stdin / stdoutリダイレクトに名前付きパイプを使用できることがわかったので、スクリプトを作成しました。

#!/usr/bin/env bash

mkfifo pipein
mkfifo pipeout

echo '/usr/lib/openssh/sftp-server 0<pipein >pipeout' | sudo su anotheruser

cat 0<&1 >pipein & cat <pipeout

wait

しかし、それは期待どおりに機能しません。スクリプトのstdinをコマンドのstdinにリダイレクトし、コマンドのstdoutをスクリプトのstdoutにリダイレクトしたいので、スクリプトを元のコマンドとしてシームレスに使用できます。

ここに

投稿に編集エラーがあるようです。sudo行に「&」がありません。スクリプトの後半でパイプに異なる名前を使用しています。これが私のために働く何かです:

#!/usr/bin/env bash
mkfifo pipein
mkfifo pipeout
echo '/usr/lib/openssh/sftp-server <pipein >pipeout' | sudo su anotheruser &
cat <pipeout &
cat >pipein
wait
rm -f pipein pipeout

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

パイプを使用してコマンドを実行し、stdoutとstderrを変数にリダイレクトするシェルスクリプト関数

分類Dev

cygwinを使用してcmdコマンドをネットで実行し、stdoutをリダイレクトする

分類Dev

引数とリダイレクトを使用してコマンドを実行するBashスクリプト

分類Dev

プロセスでコードを安全に実行し、マルチスレッドでstdoutをリダイレクトします。プロセス

分類Dev

gitコマンドの実行時に、stderrをstdoutにリダイレクトし、stdoutを/ dev / nullにリダイレクトします

分類Dev

プロセスstdinとstdoutをnetcatにリダイレクトします

分類Dev

リダイレクトコマンドの後にstdoutとstderrをリダイレクトします

分類Dev

コマンドラインを使用して、プロセスの開始後にSTDERR / STDOUTをリダイレクトしますか?

分類Dev

stdinとstdoutをリダイレクトしますか?

分類Dev

Pythonでリダイレクトを使用してbashコマンドを実行する

分類Dev

boost.processを使用してstdinとstdoutをリダイレクトする方法

分類Dev

SSH / Paramikoで別のシェルを使用してコマンド/スクリプトを実行します

分類Dev

PHPスクリプトを使用してコマンドラインでPHPファイルを実行する

分類Dev

変数パラメータ bash スクリプトを使用して、複数のディレクトリでコマンドを実行します

分類Dev

bashスクリプトを使用してリモートホストでコマンドを実行する方法

分類Dev

bashのコマンド間でアンパサンド(&)が使用されている場合、stdoutとstderrをリダイレクトします

分類Dev

Vimで、コマンドを実行し、stdoutを特定のバッファーにリダイレクトします

分類Dev

`find`と` xargs`を使用してシェルスクリプトで複数のコマンドを実行する

分類Dev

'expect'コマンドを使用して、スクリプトを実行しているSSHにリモートでパスワードを渡します

分類Dev

コマンドの「stdin」と「stdout」を出力にリダイレクトする方法

分類Dev

コマンドライン引数を使用してAnsibleプレイブックでPythonスクリプトを複数回実行する

分類Dev

角かっこで囲まれたbashコマンドを使用してstdoutをファイルにリダイレクトします

分類Dev

コマンドとしてbashスクリプトを実行する方法は?

分類Dev

golngのos / execを使用して、特定のディレクトリ内でコマンドを実行します

分類Dev

os.system を介して、スクリプトを引数として含む長い OS X コマンドを新しい行で実行します。

分類Dev

コマンドラインでPythonスクリプトを実行し、それに引数を送信します

分類Dev

出力リダイレクトを使用してスクリプトを実行すると、Sqliteモードエラーが発生します

分類Dev

PHP-コマンドラインスクリプトとしてWebスクリプトを実行しますか?

分類Dev

スクリプトからの引数を使用してPowerShellコマンドを実行します

Related 関連記事

  1. 1

    パイプを使用してコマンドを実行し、stdoutとstderrを変数にリダイレクトするシェルスクリプト関数

  2. 2

    cygwinを使用してcmdコマンドをネットで実行し、stdoutをリダイレクトする

  3. 3

    引数とリダイレクトを使用してコマンドを実行するBashスクリプト

  4. 4

    プロセスでコードを安全に実行し、マルチスレッドでstdoutをリダイレクトします。プロセス

  5. 5

    gitコマンドの実行時に、stderrをstdoutにリダイレクトし、stdoutを/ dev / nullにリダイレクトします

  6. 6

    プロセスstdinとstdoutをnetcatにリダイレクトします

  7. 7

    リダイレクトコマンドの後にstdoutとstderrをリダイレクトします

  8. 8

    コマンドラインを使用して、プロセスの開始後にSTDERR / STDOUTをリダイレクトしますか?

  9. 9

    stdinとstdoutをリダイレクトしますか?

  10. 10

    Pythonでリダイレクトを使用してbashコマンドを実行する

  11. 11

    boost.processを使用してstdinとstdoutをリダイレクトする方法

  12. 12

    SSH / Paramikoで別のシェルを使用してコマンド/スクリプトを実行します

  13. 13

    PHPスクリプトを使用してコマンドラインでPHPファイルを実行する

  14. 14

    変数パラメータ bash スクリプトを使用して、複数のディレクトリでコマンドを実行します

  15. 15

    bashスクリプトを使用してリモートホストでコマンドを実行する方法

  16. 16

    bashのコマンド間でアンパサンド(&)が使用されている場合、stdoutとstderrをリダイレクトします

  17. 17

    Vimで、コマンドを実行し、stdoutを特定のバッファーにリダイレクトします

  18. 18

    `find`と` xargs`を使用してシェルスクリプトで複数のコマンドを実行する

  19. 19

    'expect'コマンドを使用して、スクリプトを実行しているSSHにリモートでパスワードを渡します

  20. 20

    コマンドの「stdin」と「stdout」を出力にリダイレクトする方法

  21. 21

    コマンドライン引数を使用してAnsibleプレイブックでPythonスクリプトを複数回実行する

  22. 22

    角かっこで囲まれたbashコマンドを使用してstdoutをファイルにリダイレクトします

  23. 23

    コマンドとしてbashスクリプトを実行する方法は?

  24. 24

    golngのos / execを使用して、特定のディレクトリ内でコマンドを実行します

  25. 25

    os.system を介して、スクリプトを引数として含む長い OS X コマンドを新しい行で実行します。

  26. 26

    コマンドラインでPythonスクリプトを実行し、それに引数を送信します

  27. 27

    出力リダイレクトを使用してスクリプトを実行すると、Sqliteモードエラーが発生します

  28. 28

    PHP-コマンドラインスクリプトとしてWebスクリプトを実行しますか?

  29. 29

    スクリプトからの引数を使用してPowerShellコマンドを実行します

ホットタグ

アーカイブ