これガラス魚アプリケーションサーバーは、アプリケーションサーバーを管理、起動、停止するスクリプトを提供します。 rootユーザーがこのスクリプトを実行できないように制限したいと思います。その理由は、一部の主要な開発者が権限のないユーザーとしてサーバーを管理するのを忘れてしまい、ルートとしてアプリケーションサーバーを再起動すると、アプリケーションサーバーをルート[*]として実行する必要があるためです。
ルートアクセス許可を避けることはオプションではありませんが、開発者はローカルコンピュータでこれを行うのに慣れているため、これを忘れてしまいます。asadmin
権限のないユーザーとして実行するようにスクリプトを変更するか、スクリプトがrootとして実行されるたびにエラーメッセージを表示するオプションがあります。
Bashシェルを使用してください。
[*]:ファイルの権限を変更しようとしましたが、rootが所有している多くのファイルを追跡してchmodedしましたが、アプリにまだ奇妙なエラーが発生し、再度rootとして実行する必要があります。
ベストアンサー1
他の答えと似ていますが、望む方向です。
if [[ $EUID -eq 0 ]]; then
echo "This script must NOT be run as root" 1>&2
exit 1
fi
あるいは、sudo
スクリプトでこのフラグを使用して-u
実行するユーザーを指定するために、権限のないユーザーとして強制することもできます。私はGlassfishを使用しませんが、ここに擬似スクリプトの生の例があります。
#!/bin/bash
if [ $1 == "start" ]; then
sudo -u nobody /usr/bin/glassfish
fi
ご理解ください。申し訳ありません。スクリプトがどのように見えるのか、権限のないユーザーの名前が何であるのかわかりません。