macOSから誤ってファイルを削除しましたsudoers
。回復する方法はありますか?
復元したら、どのようにモード0440に設定し、所有者をに設定しますかroot:wheel
?
答え1
あなたの質問を正しく理解していれば、現在sudoerがなく、sudoを実行しようとしても機能しません。この場合、sudoが正しく機能するようにするには、次のようにします。
- ホームフォルダにsudoersファイルを作成します。ここで基本コンテンツを見つけることができます。Sudoers
- Finderで「/ etc」フォルダを開きます(「移動」 - >「フォルダに移動...」)。
- Finderでホームフォルダのsudoersファイルを/ etcフォルダにコピーします。
- パスワードの入力を求められます。
- 正しいパスワードを入力してください。
sudoが正しく実行されていることを確認し、cd /etc
vimsudo vim sudoers
エディタを介してsudoersファイルを表示できるはずです。 / etcのすべての読み取り/書き込み操作にはsudoコマンドが必要です。
sudoerがなくてもUIを介して/ etcで作業を行うことができるということは少し驚くべきことです。しかし、それは私のために働いた:)
答え2
sudo
コマンドを実行しようとして/etc/sudoers
正しい権限がないというエラーが発生したとします。
以前にアカウントのステータスを付与した場合は、Admin
GUI で権限を変更できます。 Finderで「/ etc」フォルダを開き(移動 - >フォルダに移動...)、sudoers
ファイルのプロパティを開きます。ロックをクリックしてください。admin
グループread/write
、system
ユーザーread-only
、wheel
グループ、read-only
およびeveryone
グループに付与されますno access
。これで権限が正しいです。
グループに自分自身を追加していない場合は、admin
OSXを再起動してグループに入ることができます。シングルユーザーモードそしてコマンドを実行しますchmod 0440 /etc/sudoers
。
答え3
システム環境設定を使用してルートを有効にしてからrootとしてログインすると、/ etc / sudoersが作成されます。
touch /etc/sudoers; chmod 440 /etc/sudoers
注: この場合、コマンドは root として実行され、グループ ID は/etc
0 なので、再生成した後、デフォルトで正しいユーザーとグループが所有する必要がありますが、何らかの理由でそうでない場合は、次のようにします。
chown root:wheel /etc/sudoers
生成されたら、/etc/sudoers
visudoを使用して次のコードを挿入します。
#
# 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'
いいね! ! !