web-dev-qa-db-ja.com

通常のユーザーとしての電源オフまたは再起動

コマンドpoweroffまたはrebootを実行するには、スーパーユーザーである必要があります。とにかくこれを通常のユーザーとして実行できますか?再起動したり電源を切ったりするたびにSudoにパスワードを入力したくありません。

18
Stormvirux

/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または オンラインマンページ をご覧ください。

23
Raphael Ahrens

/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つは、このファイルがシステムアップグレード後も存続することです

4
Racu

これは、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
2
hurufu

最も簡単なソリューション:

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のユーザー名の制限があります。

1