コマンドpoweroff
またはreboot
を実行するには、スーパーユーザーである必要があります。とにかくこれを通常のユーザーとして実行できますか?再起動したり電源を切ったりするたびにSudo
にパスワードを入力したくありません。
/etc/sudoers
を変更して、adminグループに属するすべてのユーザーがパスワードを要求されることなく次のコマンドを実行できるようにしました。
Sudo halt
Sudo reboot
Sudo poweroff
次の行を/etc/sudoers
に追加するだけです
## Admin user group is allowed to execute halt and reboot
%admin ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
自分を管理者グループに追加します。
1人のユーザーだけがこれを実行できるようにする場合は、%admin
を削除して、次のようにusername
に置き換えます。
## user is allowed to execute halt and reboot
stormvirux ALL=NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
/etc/sudoers
の詳細については、man sudoers
または オンラインマンページ をご覧ください。
/etc/sudoers.d
の下に新しいファイルを作成して、必要に応じて名前を付け('shutdown'
という名前を付けて)、次の行を中に入れることもできます。
# Allows me to shutdown the system without a password
yourUserName ALL = NOPASSWD: /sbin/halt, /sbin/reboot, /sbin/poweroff
YOUR User Nameの「yourUserName」を変更し、使用するコマンドを追加または削除します。個人的には、shutdown
にのみ使用します。 sudoers.d
の下に特定のファイルを作成する主な違いの1つは、このファイルがシステムアップグレード後も存続することです
これは、setuidを使用してトリックで実現することもできます。彼らは時々setuid/setgidビットを無視するので、それがすべてのシステムで機能するかどうかはわかりません。
システム状態の変更を実行できるユーザーのグループを指定できます。私の場合はadm
でした。次に、適切なユーザーをこのグループに追加します。
gpasswd -a $USER adm
権限を指定します。
chmod 4550 /usr/bin/reboot
ls -l
outpusは次のようになります。
-r-sr-x--- 1 root adm 18928 Mar 13 2015 /usr/bin/reboot
その後、次のように入力できます。
reboot
最も簡単なソリューション:
Sudo echo $USER >> /etc/shutdown.allow
その後、次のいずれかのコマンドを使用できます。
shutdown -ah now // halt
shutdown -ar now // reboot
man shutdown によると、非rootで使用するための-aオプションがあります。
shutdown
が-a引数で呼び出された場合(これを/ etcのシャットダウンの呼び出しに追加してください)/inittab)、ファイル/ etc/shutdown.allowが存在するかどうかを確認します。次に、そのファイル内のログイン名を仮想コンソールにログインしているユーザーのリストと比較します...
Debian Linuxで動作します。また、/etc/shutdown.allow
には32のユーザー名の制限があります。