root以外のユーザーにrootアクセスを必要とするコマンドでスクリプトを実行させる最良の方法は?

シアーク

phpで実行されるスクリプトがあるので、www-dataユーザーとして実行されます。スクリプトは非常に単純で、基本的に、ホストファイルやインターフェイスファイルなどの事前に作成されたファイルを正しいディレクトリにコピーします。たぶん、いくつかの権限などを更新します。

新しいユーザーを作成し、必要なコマンドへのアクセスを許可するだけでvisudoうまくいくかもしれないと思いましたが、

  1. それでも、を実行しているユーザーに.shパスワードを要求し、
  2. 明らかに、テストユーザーにアクセス許可を与えるものではありません。

visudo(実行時にすべての許可が拒否されました./script.sh

test ALL=(ALL) NOPASSWD:ALL
test ALL=      NOPASSWD:ALL
test ALL=(ALL) NOPASSWD:/bin/cp,/bin/mv,/bin/nano,/bin/chown,/bin/mv

testユーザーをログインしている実際のユーザーに変更すると、機能します。

.shwww-data必要な権限を持つ別のユーザーとしてコマンドを実行しようとしているログイン/ユーザーによって実行されます

#!/bin/bash
sudo -H -u test cp test.txt /etc/test.txt
sudo -H -u test chown test /etc/test.txt
echo "ok"

www-dataユーザーがrootアクセス許可を必要とするスクリプトを実行できるようにするための最良の方法は何ですか?

HaukeLaging

sudoersあなたが示されている部分は意味がありません。

test ALL=(ALL) NOPASSWD:ALL
test ALL=      NOPASSWD:ALL
test ALL=(ALL) NOPASSWD:/bin/cp,/bin/mv,/bin/nano,/bin/chown,/bin/mv

これらの行の1つ、おそらく最後の行が必要です。

echo "ok"以前のコマンドの終了コードに関係なく実行することもあまり意味がありません。

あなたが示した限りsudo、ユーザーに対する権限はありませんwww-data

通常のシステムでsudo -H -u test cp test.txt /etc/test.txtは、ユーザーtestはでファイルを作成できないため、意味がありません/etcこれは、ターゲットファイルが存在し、ユーザー `testの書き込み権限がある場合にのみ機能します。

ただし、その方法で正常にsudo -H -u test chown test /etc/test.txt呼び出すchownことができる唯一のユーザーはrootであるため、意味がありません

解決

必要なのはこれだと思います。スクリプト

#!/bin/bash

cp ~test/test.txt /etc/test.txt &&
    chown test /etc/test.txt    &&
    echo 'ok' || echo 'failure'
  1. そのスクリプトを、によってのみ書き込み可能なパスに配置します root
  2. sudoこのような権限を作成します

    www-data ALL= NOPASSWD:/path/to/script.sh
    
  3. 次のwww-dataようにスクリプトを呼び出します

    sudo /path/to/script.sh
    

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

root権限で開始されたスクリプトでroot以外のユーザーとしてコマンドを実行するにはどうすればよいですか?

分類Dev

起動時にroot以外のユーザーとしてPythonスクリプトを実行する方法

分類Dev

root以外のユーザーからrootが必要なスクリプトを実行する

分類Dev

ComputeEngineの起動スクリプトをroot以外のユーザーとして実行することはできません

分類Dev

スクリプトをrootとして実行し、その中のいくつかのコマンドを特定のユーザーとして実行し、1つのコマンドだけをrootとして実行するにはどうすればよいですか?

分類Dev

rootとして実行されているシェルスクリプトからユーザーアカウントを入力してコマンドを実行するにはどうすればよいですか?

分類Dev

sudoers以外のユーザーがroot操作を実行するスクリプトを実行できるようにする方法

分類Dev

rootとして実行されているBASHスクリプト、別のユーザーとして実行されているコマンドをグループ化するための整然とした方法?

分類Dev

rootとして実行されるスクリプトは、通常のユーザーとして別のスクリプトを実行できますか?

分類Dev

特定のスクリプト/コマンドを実行すると、ユーザーとしてハングし、rootとしてOK

分類Dev

スクリプトにsudoコマンドがあるrootユーザーとしてbashスクリプトを実行します

分類Dev

rootユーザーと現在のユーザーとして同時にスクリプトを実行するにはどうすればよいですか?

分類Dev

rootユーザーと現在のユーザーとして同時にスクリプトを実行するにはどうすればよいですか?

分類Dev

rootとしてbashインストールスクリプトを実行する-通常のユーザーのファイルを処理する方法は?

分類Dev

実行中のPuppeteerスクリプトにデータとユーザーコマンドを送信する

分類Dev

パスワードを設定せずにインストールすると、ユーザー 'root' @ 'localhost'のMySQLアクセスが拒否されました

分類Dev

root以外のユーザーがログインしたときに、rootとしてスクリプトを実行します

分類Dev

initスクリプトで特定のユーザーとしてコマンドを実行するにはどうすればよいですか?

分類Dev

別のユーザーとしてスクリプトでコマンドを実行するにはどうすればよいですか?

分類Dev

root以外のユーザーにrootライブラリへのアクセスを許可するにはどうすればよいですか?

分類Dev

他のユーザーとしてスクリプトでコマンドを実行すると、実行までに10〜15秒かかります

分類Dev

rootに属するディレクトリ構造の所有権をbashスクリプトを実行している現在のユーザーに変更できるようにするには、スクリプトで何が必要ですか?

分類Dev

ヒアドキュメントを使用して別のユーザーとしてスクリプトでコマンドを実行する

分類Dev

root以外のユーザーに切り替えて、Pythonでコマンドを実行する

分類Dev

root以外のユーザー権限でdockerをビルドして、pipenvでPythonアプリケーションをセットアップする方法は?

分類Dev

root以外のユーザーにデバイスファイルへのアクセスを許可する方法

分類Dev

コマンドラインから実行するときに、スクリプトでbash関数をパラメーターとして作成するための最良の方法は何ですか?

分類Dev

スクリプトがrootでない場合にスクリプトの実行を停止する方法(および「rootとして実行されていません!終了しています...」とエコーします)

分類Dev

rootとしてコマンドを実行してから、シェルスクリプトでユーザーに切り替えます

Related 関連記事

  1. 1

    root権限で開始されたスクリプトでroot以外のユーザーとしてコマンドを実行するにはどうすればよいですか?

  2. 2

    起動時にroot以外のユーザーとしてPythonスクリプトを実行する方法

  3. 3

    root以外のユーザーからrootが必要なスクリプトを実行する

  4. 4

    ComputeEngineの起動スクリプトをroot以外のユーザーとして実行することはできません

  5. 5

    スクリプトをrootとして実行し、その中のいくつかのコマンドを特定のユーザーとして実行し、1つのコマンドだけをrootとして実行するにはどうすればよいですか?

  6. 6

    rootとして実行されているシェルスクリプトからユーザーアカウントを入力してコマンドを実行するにはどうすればよいですか?

  7. 7

    sudoers以外のユーザーがroot操作を実行するスクリプトを実行できるようにする方法

  8. 8

    rootとして実行されているBASHスクリプト、別のユーザーとして実行されているコマンドをグループ化するための整然とした方法?

  9. 9

    rootとして実行されるスクリプトは、通常のユーザーとして別のスクリプトを実行できますか?

  10. 10

    特定のスクリプト/コマンドを実行すると、ユーザーとしてハングし、rootとしてOK

  11. 11

    スクリプトにsudoコマンドがあるrootユーザーとしてbashスクリプトを実行します

  12. 12

    rootユーザーと現在のユーザーとして同時にスクリプトを実行するにはどうすればよいですか?

  13. 13

    rootユーザーと現在のユーザーとして同時にスクリプトを実行するにはどうすればよいですか?

  14. 14

    rootとしてbashインストールスクリプトを実行する-通常のユーザーのファイルを処理する方法は?

  15. 15

    実行中のPuppeteerスクリプトにデータとユーザーコマンドを送信する

  16. 16

    パスワードを設定せずにインストールすると、ユーザー 'root' @ 'localhost'のMySQLアクセスが拒否されました

  17. 17

    root以外のユーザーがログインしたときに、rootとしてスクリプトを実行します

  18. 18

    initスクリプトで特定のユーザーとしてコマンドを実行するにはどうすればよいですか?

  19. 19

    別のユーザーとしてスクリプトでコマンドを実行するにはどうすればよいですか?

  20. 20

    root以外のユーザーにrootライブラリへのアクセスを許可するにはどうすればよいですか?

  21. 21

    他のユーザーとしてスクリプトでコマンドを実行すると、実行までに10〜15秒かかります

  22. 22

    rootに属するディレクトリ構造の所有権をbashスクリプトを実行している現在のユーザーに変更できるようにするには、スクリプトで何が必要ですか?

  23. 23

    ヒアドキュメントを使用して別のユーザーとしてスクリプトでコマンドを実行する

  24. 24

    root以外のユーザーに切り替えて、Pythonでコマンドを実行する

  25. 25

    root以外のユーザー権限でdockerをビルドして、pipenvでPythonアプリケーションをセットアップする方法は?

  26. 26

    root以外のユーザーにデバイスファイルへのアクセスを許可する方法

  27. 27

    コマンドラインから実行するときに、スクリプトでbash関数をパラメーターとして作成するための最良の方法は何ですか?

  28. 28

    スクリプトがrootでない場合にスクリプトの実行を停止する方法(および「rootとして実行されていません!終了しています...」とエコーします)

  29. 29

    rootとしてコマンドを実行してから、シェルスクリプトでユーザーに切り替えます

ホットタグ

アーカイブ