シャットダウンへのアクセスを防止しながら再起動は防止するにはどうすればよいですか?

シャットダウンへのアクセスを防止しながら再起動は防止するにはどうすればよいですか?

Plex サーバーとして実行している Ubuntu PC があります。誰もコンピューターをシャットダウンできず、ユーザーがマシンを再起動することだけを許可するにはどうすればよいでしょうか。Windows では可能であることは知っていますが、Ubuntu でも可能かどうか疑問に思っています。

答え1

これを行う最も効果的な方法は、次のようにターゲットのパワーをマスクすることです。

sudo systemctl mask poweroff.target

これで、電源ボタンを押し続けたり、物理的にマシンの電源を切ったりしない限り、誰もマシンをシャットダウンできなくなります。

再起動はこのマスクの影響を受けません。


将来、メンテナンスやハードウェアの交換のためにマシンをシャットダウンする必要がある場合は、unmask次のターゲットを設定できます。

sudo systemctl unmask poweroff.target

答え2

管理者以外のユーザーに再起動の権限を与える必要がある場合は、sudoersファイルにエントリを追加することができますreboot(および/または、実行させたい内容によって異なります)。その後、 (および/または)systemctl rebootを実行できるようになります。sudo rebootsudo systemctl rebootこの回答は、彼らがそれ以外の方法でアクセスできないことを前提としていますsudo つまり、グループに属していない通常の非管理者ユーザーであるということですwheel

ファイルsudoersは にあります/etc/sudoersが、いけない直接編集するのではなく、 を使って編集するようにしてください。visudo編集するにはルート権限が必要なので、 を実行しますsudo visudovisudoコマンドは編集内容の構文を検証します。設定を壊したり、あなた自身将来的にルートアクセスを取得します。

次に、次のような行をsudoersファイルに追加します。

username ALL=(root): /usr/sbin/reboot
username ALL=(root): /usr/bin/systemctl reboot

usernameはユーザーのユーザー名(または%groupnameグループ)であり、パスはシステム上のコマンドへの実際のパスです( で確認してください。which例:which reboot)。

詳細については、man sudoersman sudo、 そしてman visudo

関連情報