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 /etc하고 sudo vim sudoersvim 편집기를 통해 sudoers 파일을 볼 수 있어야 합니다. /etc의 모든 읽기/쓰기 작업에는 sudo 명령이 필요합니다.

sudoer 없이도 UI를 통해 /etc에서 작업을 수행할 수 있다는 점이 다소 놀랍다는 것을 알고 있습니다. 그러나 그것은 나를 위해 일했습니다 :)

답변2

sudo명령을 실행하려고 하는데 /etc/sudoers올바른 권한이 없다는 오류가 발생한다고 가정합니다.

이전에 계정 상태를 부여한 경우 AdminGUI를 통해 권한을 수정할 수 있습니다. Finder에서 "/etc" 폴더를 열고(이동->폴더로 이동...) sudoers파일 속성을 엽니다. 자물쇠를 클릭하세요. admin그룹 read/write, system사용자 read-only, wheel그룹 read-onlyeveryone그룹 에 부여됩니다 no access. 이제 권한이 올바릅니다.

그룹 에 자신을 추가하지 않은 경우 adminOSX를 다시 시작해야 그룹에 들어갈 수 있습니다.단일 사용자 모드그리고 명령을 실행합니다 chmod 0440 /etc/sudoers.

답변3

시스템 기본 설정을 사용하여 루트를 활성화한 다음 루트로 로그인하면 /etc/sudoers를 만듭니다.

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

참고: 이 경우 명령은 루트로 실행되고 그룹 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 /

루트 권한으로 터미널에 들어가고 위 명령을 실행하여 설정할 수 있습니다./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'

좋아요! ! !

관련 정보