it-swarm-ja.com

Sudoを実行できません:「/ etc / sudoersはモード0740であり、0440である必要があります」

私は問題があります:

Macにrootパスワードがありません。管理者アカウントを持っているだけで、Sudoを使用して処理を実行できます。ここで、通常のユーザーを/etc/sudoersファイルにも追加したいと思いました。そのファイルへの書き込み(Sudoを使用した書き込みでも)ができなかったため、次のようにしました。

Sudo chmod u+w /etc/sudoers

それはうまくいった。しかし、それ以降、システムでSudoコマンドを実行できなくなりました。 /etc/sudoersのモードが間違っていると文句を言います。

$ Sudo touch /etc/sudoers 
Sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault

モードを0440に戻すことすらできないので、それは悪い冗談のように聞こえます。

$ Sudo chmod 0440 /etc/sudoers 
Sudo: /etc/sudoers is mode 0740, should be 0440
Segmentation fault

この状況を修正する方法はありますか? Sudoの能力を取り戻す必要があります。

4
dehmann

これは、ディスクユーティリティから「ディスクパーミッションの修復」を実行することが実際に保証されるまれなケースの1つである可能性があります。

それが機能しない場合は、@ slhckのシングルユーザーモードで起動するという提案に従って、修正してください。

  1. Command-Sを押しながら再起動してシングルユーザーモードに入ります。 Bluetoothキーボードを使用している場合は、ブートチャイムがトレーリングオフであるため、これを押す必要があることに注意してください。すぐに押すと、Bluetooth無線がリセットされ、キーボードが接続を失い、キー押下を通信しなくなります。遅すぎると、起動プロセスはマルチユーザー起動に移行します。

  2. 画面の指示に従って、ルートドライブを読み取り/書き込みで再マウントします。正常に再起動した場合は、おそらくfsckステップをスキップできます。したがって、おそらく次のように入力できます。

    mount -uw /

  3. /etc/sudoersの権限を修正します。シングルユーザーモードでは、すでにrootになっているため、これをSudoする必要はありません。

    chmod 0440 /etc/sudoers

  4. 次のように入力するだけで、再起動してシングルユーザーモードを終了します。

    reboot

7
Spiff

別のアプローチはAutomator.appを使用することです

次のようなものを含む新しいワークフローを作成します。

do Shell script "chmod 0440 /etc/sudoers" with administrator privileges

あなたがそれを実行するとき、それはあなたのパスワードを尋ね、そして(あなたが管理者であると仮定して)それはそれを修正するでしょう。

これは、親ディレクトリのアクセス許可を台無しにした場合にも機能します(たとえば、/ 755以外のものを作成する)。

3
jwilkins