私のサーバーにハードドライブをインストールした後、大きな問題が発生しました。すべてがうまく機能しましたが、テスト後にbashファイルからbashファイルを実行すると、インストール前にはうまくいきましたが、インストール後にrootモード権限が拒否されました。
ls -alt /var/www/test/bin/change-sys-hostname
-rwxrwx--- 1 www-data www-data
私のコードは次のとおりです。example.sh
/var/www/test/bin/change-sys-hostname $servername
結果:
permission denied
答え1
権限の拒否は、許可されていない操作を試みていることを意味します。お客様の質問には、許可されていないコンテンツを決定するために必要な基本的な情報がいくつかありません。
最初から始める:example.sh
このスクリプトをどのように実行しますか?のようにbash examle.sh
?のように./example.sh
?後者の場合:スクリプトを直接実行できる必要があります。このスクリプトを実行できますか?ls -l
これを確認するために使用します。
ちなみに、次の行でスクリプトを起動する必要があります。
#!/bin/bash
bashを使用して実行します。
2番目の注意:$server
設定する必要があります。これはシェル環境で設定できますが、確認する必要があります。ただし、$server
正しい値を設定しないと、他のエラーメッセージが表示されることがあります。$server
確実にするために値で応答することもできます。
次の記事:実行できますか/var/www/test/bin/change-sys-hostname
?このスクリプトはグループごとに実行できますwww-data
。あなたはそのグループに属していますか?グループセットにid
いることを確認してください。www-data
2つ目は、change-sys-hostname
内部でできないことがあるかどうかです。 change-sys-hostname
実行を許可する必要がある他のプログラムがあるかもしれません。特に、スクリプトはルートのみを書き込むことができるいくつかのファイルを書き込むことができます。だからsudo
必要かもしれません。
解決策を見つけるために取る必要があるいくつかの基本的な手順を見ました。このステップの多くの情報は問題に含まれておらず、進行状況を評価するために必要であることがわかります。