私はLinuxで権限を設定する方法を知っていると思いました。私は明らかにそうは思わない。
「web3」というユーザーがいます。このユーザーは、CPannelなどのサーバー管理アプリケーションであるISPConfigによって自動的に作成されます。
サーバーに「Drush」というアプリケーションもインストールしました。 rootとしてログインした状態で「Drush」をインストールしました。アプリケーションは次の場所にあります。
/root/.composer/vendor/drush/drush/drush
ファイルとそのインクルードフォルダには、次の権限があります。
-rwxr-xr-x 1 root root
drwxr-xr-x 9 root root
このファイルは誰もが読み取りと実行を許可するので、「web3」ユーザーとしてログインし、上記のアプリケーションを実行しようとするたびに次のエラーメッセージが表示されるのはなぜですか?
/root/.composer/vendor/drush/drush/drush: Permission denied
以前もこの問題がありましたが、問題のあるユーザーにsudoフルroot権限を与えました。ローカル開発環境ではこれは大きな問題ではありません。私は今私専用のサーバーを管理していますが、この大きなハンマーソリューションは機能しません。
私は何が間違っていましたか?
助けてくれてありがとう!
ベストアンサー1
/root/
ルートのホームディレクトリです。権限は、/root/
ルート以外の誰もその下のディレクトリツリー全体をナビゲートするのを防ぐために700が望ましいです。
ディレクトリツリーの上位レベルの権限は、root以外のユーザーとしてバイナリを実行するのを防ぎます。
何でもインストールするのは/root/
一般的ではありません。通常、複数のユーザーが使用する実行コードを/opt/
別のディレクトリにインストールします。
これが2つの主な「間違い」です。コードをインストールするためのより良い場所を見つけて、コードを使用したいユーザーがフルパスにアクセスできることを確認する必要があります。
最後に、他の人が指摘したように、インストールを完了するには通常ルートが必要ですが、結果ファイルは必ず必要な場合にのみルートが所有する必要があります。ほとんどの場合、特定のユーザー(www-dataユーザーやoracleユーザーなど)が作成され、コードが破損した場合にインプレッションが制限されます。あなたのアプリケーションについてはわかりませんが、web3ユーザーとしてインストールするか、rootとしてインストールした後で、この操作のために特別に作成された権限のないユーザーに権限を変更することをお勧めします。
一時的な方法で/root/
問題を解決するために権限を開こうとする衝動を抑制する必要があります。sudo
問題は、実行可能なコードをルートのホームディレクトリにインストールしないでください。