web-dev-qa-db-ja.com

sudoersを変更しても効果はありません。基本的なUbuntuチュートリアルに従う

私は buntu sudoersチュートリアル に従っています。

これが私の正確な/etc/sudoersファイル(フォーマットが台無しになっていたため、コードブロックではなくスクリーンショット)。

sudoers file

deployerユーザーにパワーオフおよび再起動機能を提供する必要がある行に注意してください。 sudoersファイルは構文的には問題なく、問題はありません。

Sshセッションを終了し、再度ログインしました。

$ whoami => deployer $ reboot => reboot: Need to be root

何が問題なのでしょうか?

いくつかの考え

  • (Sudoで)再起動しようとしましたが、まだ効果がありません
  • 私のシェルはZSHです
  • 答えが得られたら、私は自分自身を蹴るだろうと予測しています。
2
David Tuite

使用している設定により、ユーザーはSudo rebootパスワードを入力せずにを実行できます。ただし、常にSudoを使用して実行する必要があります。特定のコマンドでは、パスワードなしのSudoを取得するのが最善です。

これは、システムの動作方法によるものです。通常のユーザーとしてrebootなどを実行しようとすると、次のメッセージが表示されます。

$ reboot
reboot: must be superuser.

これはSudoとは関係ありません。問題のコマンドは、ユーザーIDが1(スーパーユーザー)であるかどうかを確認し、そうでない場合は実行できません。 could userid 1として別のユーザーを持つようにシステムをセットアップしますが、それはrootのユーザー名を変更するだけで、理由もなく多くのトラブルになります(そして、あなたがしようとしていることをするのを助けませんとにかく)。

そのため、ユーザーIDが1のユーザーとして実際にログインしない限り、alwaysを使用して、Sudoを使用して特権コマンドを実行する必要があります。唯一の回避策は、シェルの構成ファイルにrebootのエイリアス(または関数、またはスクリプト)を作成することです(たとえば、~/.bashrc):

alias reboot='Sudo reboot'

そうすれば、_/etc/sudoersshutdownをすでにパスワードなしに設定しているので、実行することができます。

$ reboot

希望する結果が得られます。

2
terdon