1. sudo の概要
sudo を使用すると、root が通常のユーザーにないいくつかの権限を割り当てることができるため、一般のユーザーも root ユーザーの関連する権限を持つことができます (たとえば、sudo は特定のコマンドの実行権限を特定のユーザーに割り当てることができます) )。
sudo にとって重要なファイルの 1 つは /etc/sudoers であり、どのユーザーがどのような種類のコマンドを実行できるかは、主にこのファイルに割り当てられたユーザーのみが sudo を使用できるかどうかによって決まります。
sudo -l 列出该用户能执行的命令 sudo -u user 以指定用户来执行命令 sudo -k 清楚入场券上的时间,下次使用sudo还要输入密码 sudo -b 在后台执行命令
ターミナルに vim と入力して /etc/sudoers ファイルを開きます。
写真に示されている場所を見つけてください:
写真の赤いボックス内の内容は、後で私が追加したものです。www は、php を実行しているユーザーです。デフォルトの名前は、私が追加した環境によって異なります。 wwwのセントス。
phpの動作を確認できるユーザーは、以下のphpのWebページから入手できます。
<?php echo shell_exec("id -a"); ?>
各行に 3 つの ALL があり、2 番目の括弧内の ALL はターゲット ユーザーを表し、最後の ALL はユーザーを表します。 . 実行するコマンドの名前 (このユーザーに実行できるようにするコマンドを指定できます)。
NOPASSWD は、パスワードが必要ないことを意味します。 (便宜上、ブラウザ経由でプログラムにアクセスすると、パスワードを入力してフィードバックを待つという余分な手順が発生します。これは本当に面倒です。これにより、多くの手間が省けます。)
Ubuntu の場合Fedora などの場合は、変更する必要はありません。
Defaults env_reset をオンにするだけです (つまり、先頭の # 記号を削除します)。 php.ini 設定ファイルでセーフ モードがオンになっているかどうか
safe_mode = off 这样就可以了
php が Linux スクリプトを実行するために必要な関数はいくつありますか? 3 つあります (shell_exec()、system() など)。ここでは説明しません。詳細はここで説明していますので、system() 関数を使用します。
route.php<?php $ip=(string)$_POST["ip"]; system("su ./route.sh $ip",$status); if($status == 'true') { echo "设置成功"; } else { echo "设置失败"; } ?>
1.phpの実行シェルは実際にはApacheやNginxのユーザーによって実行され、php自体がユーザーを作成するわけではありません。
1. sudo の概要
sudo にとって重要なファイルの 1 つは /etc/sudoers で、どのユーザーがどのような種類のコマンドを実行できるかは、主にこのファイルに割り当てられたユーザーのみが sudo を使用できるかどうかによって決まります。
sudo -l 列出该用户能执行的命令 sudo -u user 以指定用户来执行命令 sudo -k 清楚入场券上的时间,下次使用sudo还要输入密码 sudo -b 在后台执行命令
写真に示されている場所を見つけてください:
写真の赤いボックス内の内容は、後で私が追加したものです。www は、php を実行しているユーザーです。デフォルトの名前は、私が追加した環境によって異なります。 wwwのセントス。
phpの動作を確認できるユーザーは、以下のphpのWebページから入手できます。
<?php echo shell_exec("id -a"); ?>
各行に 3 つの ALL があり、2 番目の括弧内の ALL はターゲット ユーザーを表し、最後の ALL はユーザーを表します。 . 実行するコマンドの名前 (このユーザーに実行できるようにするコマンドを指定できます)。
NOPASSWD は、パスワードが必要ないことを意味します。 (便宜上、ブラウザ経由でプログラムにアクセスすると、パスワードを入力してフィードバックを待つという余分な手順が発生します。これは本当に面倒です。これにより、多くの手間が省けます)
Ubuntuの場合Fedora などの場合は、変更する必要はありません。
Defaults env_reset をオンにするだけです (つまり、先頭の # 記号を削除します)。 php.ini 設定ファイルでセーフ モードがオンになっているかどうか
safe_mode = off 这样就可以了
php が Linux スクリプトを実行するために必要な関数はいくつありますか? 3 つあります (shell_exec()、system() など)。ここでは説明しません。詳細はここで説明していますので、system() 関数を使用します。
route.php<?php $ip=(string)$_POST["ip"]; system("su ./route.sh $ip",$status); if($status == 'true') { echo "设置成功"; } else { echo "设置失败"; } ?>
関連するおすすめ:
コアファイルを生成せずにシェルスクリプトを実行する問題をPHPがどのように解決するか
シェルスクリプトによるphp7のワンクリックインストールの例
以上がシェル スクリプトの権限の問題に関する PHP 分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。