macOS에서 실수로 파일을 삭제했습니다 sudoers
. 복구할 수 있는 방법이 있나요?
복원한 후에는 어떻게 모드 0440으로 설정하고 소유자를 로 설정합니까 root:wheel
?
답변1
귀하의 질문을 올바르게 이해했다면 현재 sudoer가 없고 sudo를 실행하려고 하는데 작동하지 않는 것입니다. 이 경우 sudo가 제대로 작동하도록 하려면 다음을 수행할 수 있습니다.
- 홈 폴더에 sudoers 파일을 만듭니다. 여기에서 기본 콘텐츠를 찾을 수 있습니다.Sudoers
- Finder에서 "/etc" 폴더를 엽니다("이동" -> "폴더로 이동...").
- 이제 Finder를 통해 홈 폴더의 sudoers 파일을 /etc 폴더로 복사하세요.
- 비밀번호를 묻는 메시지가 나타납니다.
- 올바른 비밀번호를 입력하시면 완료됩니다.
sudo가 제대로 실행되고 있는지 확인 cd /etc
하고 sudo vim sudoers
vim 편집기를 통해 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
시스템 기본 설정을 사용하여 루트를 활성화한 다음 루트로 로그인하면 /etc/sudoers를 만듭니다.
touch /etc/sudoers; chmod 440 /etc/sudoers
참고: 이 경우 명령은 루트로 실행되고 그룹 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 /
루트 권한으로 터미널에 들어가고 위 명령을 실행하여 설정할 수 있습니다./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'
좋아요! ! !