状態を確認することさえfirewalld
必要なようですsudo
。このスクリプトをできるだけ低い権限で維持したいので、ユーザーが通常のユーザーのようにポートの状態を確認できることを願っています。必要に応じてアップグレードを要求できますsudo
。
sudo
RHELベースのシステムでこれを達成できますか、それともすべてを行う必要がありますか?
答え1
ビジュド
このコマンドを使用して開いているポートを確認するには、firewalld
管理者権限 sudo が必要です。
これは非常にきれいな方法ではありませんが、次のようにsudoers
ファイルを編集できます。
sudo visudo
これを追加し、USER
権限を付与するユーザー名に置き換えます。
<USER> ALL=(root) NOPASSWD: /usr/bin/firewall-cmd --list-ports
これにより、コマンドUSER
を実行する権限が付与されますfirewall-cmd --list-ports
。
システム構成を変更して権限を付与するときは注意してください。
ファイアウォールを使用して、CentOS7 で開いているポートのリストを表示します。
設定値
高い権限で実行されるスクリプトを生成できますsetuid
。
シェルスクリプトで setuid または setgid ビットを使用すると、解決されるよりも多くの問題、特にセキュリティ上の問題が発生する可能性があります。一部のシステム(Linuxなど)はシェルスクリプトでsetuidビットもサポートしていないため、setuidシェルスクリプトを生成するとセキュリティリスクに加えて不要な移植性の問題が発生します。
私のsetuid root bashシェルスクリプトが機能しないのはなぜですか?
どちらのソリューションも慎重に使用する必要があります!
セキュリティ上の理由から、ポートオープンの確認は、ユーザーまたは管理者権限を持つユーザーfirewalld
として最後に行うことをお勧めします。root