macOSで誤ってsudoersファイルを削除しました。回復する方法はありますか?

macOSで誤ってsudoersファイルを削除しました。回復する方法はありますか?

macOSから誤ってファイルを削除しましたsudoers。回復する方法はありますか?

復元したら、どのようにモード0440に設定し、所有者をに設定しますかroot:wheel

答え1

あなたの質問を正しく理解していれば、現在sudoerがなく、sudoを実行しようとしても機能しません。この場合、sudoが正しく機能するようにするには、次のようにします。

  1. ホームフォルダにsudoersファイルを作成します。ここで基本コンテンツを見つけることができます。Sudoers
  2. Finderで「/ etc」フォルダを開きます(「移動」 - >「フォルダに移動...」)。
  3. Finderでホームフォルダのsudoersファイルを/ etcフォルダにコピーします。
  4. パスワードの入力を求められます。
  5. 正しいパスワードを入力してください。

sudoが正しく実行されていることを確認し、cd /etcvimsudo vim sudoersエディタを介してsudoersファイルを表示できるはずです。 / etcのすべての読み取り/書き込み操作にはsudoコマンドが必要です。

sudoerがなくてもUIを介して/ etcで作業を行うことができるということは少し驚くべきことです。しかし、それは私のために働いた:)

答え2

sudoコマンドを実行しようとして/etc/sudoers正しい権限がないというエラーが発生したとします。

以前にアカウントのステータスを付与した場合は、AdminGUI で権限を変更できます。 Finderで「/ etc」フォルダを開き(移動 - >フォルダに移動...)、sudoersファイルのプロパティを開きます。ロックをクリックしてください。adminグループread/writesystemユーザーread-onlywheelグループ、read-onlyおよびeveryoneグループに付与されますno access。これで権限が正しいです。

グループに自分自身を追加していない場合は、adminOSXを再起動してグループに入ることができます。シングルユーザーモードそしてコマンドを実行しますchmod 0440 /etc/sudoers

答え3

システム環境設定を使用してルートを有効にしてからrootとしてログインすると、/ etc / sudoersが作成されます。

touch /etc/sudoers; chmod 440 /etc/sudoers

注: この場合、コマンドは root として実行され、グループ ID は/etc0 なので、再生成した後、デフォルトで正しいユーザーとグループが所有する必要がありますが、何らかの理由でそうでない場合は、次のようにします。

chown root:wheel /etc/sudoers

生成されたら、/etc/sudoersvisudoを使用して次のコードを挿入します。

#
# Sample /etc/sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.

##
# Override built-in defaults
##
Defaults    env_reset
Defaults    env_keep += "BLOCKSIZE"
Defaults    env_keep += "COLORFGBG COLORTERM"
Defaults    env_keep += "__CF_USER_TEXT_ENCODING"
Defaults    env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"
Defaults    env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"
Defaults    env_keep += "LINES COLUMNS"
Defaults    env_keep += "LSCOLORS"
Defaults    env_keep += "SSH_AUTH_SOCK"
Defaults    env_keep += "TZ"
Defaults    env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"
Defaults    env_keep += "EDITOR VISUAL"
Defaults    env_keep += "HOME MAIL"

Defaults    lecture_file = "/etc/sudo_lecture"

##
# User alias specification
##
# User_Alias    FULLTIMERS = millert, mikef, dowdy

##
# Runas alias specification
##
# Runas_Alias   OP = root, operator

##
# Host alias specification
##
# Host_Alias    CUNETS = 128.138.0.0/255.255.0.0
# Host_Alias    CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
# Host_Alias    SERVERS = master, mail, www, ns
# Host_Alias    CDROM = orion, perseus, hercules

##
# Cmnd alias specification
##
# Cmnd_Alias    PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less

##
# User specification
##

# root and users in group admin can run anything on any machine as any user
root        ALL = (ALL) ALL
%admin      ALL = (ALL) ALL

## Read drop-in files from /private/etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /private/etc/sudoers.d

管理者でない場合は、システムをシングルユーザーモードで起動し(デバイスの電源を切り、起動時にcommand + sを押し続けることで実行できます)、次のことを実行できます。

mount -uw /

root権限で端末に入り、上記のコマンドを実行して設定できます。/etc/sudoers

注:シングルユーザーモードはIntel Macにのみ存在します。 M1 Macをお持ちの場合は、電源を入れながら電源キーを押し続けてリカバリモードに似たメニューにアクセスできますが、このメニューを使用するには管理者認証が必要です。

答え4

John Militerの答えで/tmp/sudoersファイルを作成し、tmm1コマンドのバリアントを実行しました。

osascript -e 'do shell script "cat /tmp/sudoers > /etc/sudoers; chown root:wheel /etc/sudoers" with administrator privileges'

いいね! ! !

関連情報