Linuxでシャットダウンおよび再起動コマンドを無効にする方法


shutdownコマンドは、Linuxシステムの電源を切る時間をスケジュールします。特定のオプションを指定して呼び出されたときに、マシンを停止、電源オフ、または再起動し、rebootがシステムに再起動を指示するために使用することもできます。

Ubuntu、Linux Mint、Mandrivaなどの特定のLinuxディストリビューションでは、デフォルトで、通常のユーザーとしてシステムを再起動/停止/シャットダウンすることができます。これは特にサーバーでは理想的な設定ではありません。特にシステム管理者にとっては心配する必要があります。

この記事では、Linuxの通常のユーザーに対してshutdownおよびrebootコマンドを無効にする方法を示します。

Linuxでシャットダウンおよび再起動コマンドを無効にする

/ etc/sudoersファイルを使用してshutdownおよびrebootコマンドを無効にする最も簡単な方法。ここでは、これらのコマンドの実行を許可されていないユーザー(tecmint)またはグループ(developers)を指定できます。

# vi /etc/sudoers

これらの行を[コマンドエイリアス]セクションに追加します。

Cmnd_Alias     SHUTDOWN = /sbin/shutdown,/sbin/reboot,/sbin/halt,/sbin/poweroff

# User privilege specification
tecmint   ALL=(ALL:ALL) ALL, !SHUTDOWN

# Allow members of group sudo to execute any command
%developers  ALL=(ALL:ALL) ALL,  !SHUTDOWN

次に、normailユーザー(tecmint)としてshutdownおよびrebootコマンドを実行してみます。

もう1つの方法は、rootを除くすべてのユーザーのshutdownおよびrebootコマンドの実行権限を削除することです。

# chmod o-x /sbin/shutdown
# chmod o-x /sbin/reboot

注:systemdでは、これらのファイル(/ sbin/shutdown、/ sbin/restart、/ sbin/Halt、/ sbin/poweroff)は/ bin/systemctlへのシンボリックリンクにすぎません。

# ls -l /sbin/shutdown
# ls -l /sbin/reboot
# ls -l /sbin/halt
# ls -l /sbin/poweroff

他のユーザーがこれらのコマンドを実行できないようにするには、上記で説明したように実行権限を削除するだけですが、これはsystemdでは効果的ではありません。 /bin/systemctl の実行権限を削除できます。つまり、rootを除く他のすべてのユーザーはsystemctlのみを実行します。

# chmod  o-x /bin/systemctl

また、次のガイドを読んで、SSHルートログインなどの特定の機能を無効にし、SSHアクセス、SELinux、Linuxの不要なサービスを制限する方法を学ぶこともできます。

  1. How to Enable and Disable Root Login in Ubuntu
  2. How to Disable SELinux Temporarily or Permanently in RHEL/CentOS 7/6
  3. Disable or Enable SSH Root Login and Limit SSH Access in Linux
  4. How to Stop and Disable Unwanted Services from Linux System

それでおしまい!この記事では、Linuxの通常のシステムユーザーに対してshutdownおよびrebootコマンドを無効にする方法を示しました。これを行う他の方法を知っていますか、コメントで私たちと共有してください。