Mac에서 / etc / hosts를 제거 했으므로 이제는 sudo를 할 수 없습니다.


0

나는 sudo xxx를 실행할 수 없기 때문에 / etc / hosts를 숭고한 텍스트 내에서 편집하여 실수를했다고 생각합니다. 그것은 비밀 번호를 물어볼 것입니다, 그리고 일단 내가 입력 한 적이 해결되지 않습니다.

나는 / etc / hosts 파일을 편집하려고 시도했지만 항상 해결되지 않은 sudo가 필요했기 때문에 작동하지 않았습니다. 결국에는 파일을 지우지 만 sudo에 대한 액세스 권한이 없으면 다시 만들 수 없게되었습니다. 어떤 아이디어?


1
"암호 확인"이란 무엇을 의미합니까? - 호스트 파일은 이름 확인, 즉 호스트 이름을 IP 주소로 변환하는 데 사용됩니다. 암호를 풀지 마십시오. 문제를 해결하는 가장 쉬운 방법은 부팅하는 동안 Cmd-s를 눌러 Mac을 단일 사용자 모드로 재부팅하는 것입니다. 단일 사용자 모드에서 hosts 파일을 다시 만들 수 있습니다. 드라이브를 꺼내 다른 Mac에 연결하여 거기에서 파일을 재생성 할 수도 있습니다.
jksoegaard

가장 쉬운 방법은 백업에서 복원하는 것입니다.이 경우에는 OS를 다시 설치하십시오.
Mark

@jksoegaard "암호 해결"은 단지 암호를 입력하고 제출을 누르면 아무 일도 일어나지 않는다는 것을 나타냅니다. 그것은 무기한으로 매달린다. 나는 싱글 유저 모드 제안을 시도 할 것이다. 고마워!
Jeremy Smith

부팅 할 수 있습니다. 목표 디스크 모드 부팅하는 동안 T를 누르고 있습니다. 대상 디스크 모드에 들어가면 Thunderbolt, Firewire 또는 USB-C를 사용하여 Mac을 다른 컴퓨터에 연결하고 하드 드라이브의 파일을 편집 할 수 있습니다.
audiomason

답변:


1

/ etc / hosts 파일은 sudo를 실행할 수있는 능력과 관련이 없습니다. 이전 단계에서 sudoers 파일을 hose했을 것입니다.

문제를 해결하려면 복구 모드로 부팅하고 메뉴 바에서 터미널을 열고 & gt; 유용.

  • 운영 df 기본 시스템 볼륨의 이름을 가져옵니다.
  • 작업 디렉토리를 / Volumes / etc로 변경하십시오.

    cd /Volumes/Macintosh\ HD/etc #"Macintosh HD" is just an example name here
    
  • 예비 파일 hosts ~ orig 및 sudoers ~ orig (또는 기본적으로 / etc에 "backup"으로 존재할 수있는 유사한 이름으로 복사하십시오. ls!) :

    cp hosts~orig hosts
    cp -i sudoers~orig sudoers #enter yes here
    

    그들이 존재하지 않으면 hosts 파일을 만들고 sudoers 파일을 확인하십시오 :

    /Volumes/<name_of_main_volume>/usr/bin/nano /Volumes/<name_of_main_volume>/etc/hosts
    

    기본 호스트 파일의 내용은입니다.

    ##
    # Host Database
    #
    # localhost is used to configure the loopback interface
    # when the system is booting.  Do not change this entry.
    ##
    127.0.0.1   localhost
    255.255.255.255 broadcasthost
    ::1             localhost 
    

    POSIX 사용 권한은 root : wheel 644입니다. 다음과 같이 수정하십시오. chownchmod 필요하다면.

    / Volumes // usr / bin / nano / Volumes // etc / sudoers

    최소 (작게 타입!) 작업하는 sudoers 파일은 다음과 같습니다 :

    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"
    
    root        ALL = (ALL) ALL
    %admin      ALL = (ALL) ALL
    

    POSIX 권한은 root : wheel 440입니다. 다음과 같이 수정하십시오. chownchmod 필요하다면.

  • 다음을 입력하여 Mac을 재부팅하십시오.

    reboot
    

루트 볼륨을 마운트 한 후 단일 사용자 모드에서이 작업을 수행 할 수도 있습니다 RW .


sudo를 실행할 수있는 능력을 회복 한 후에는 Pacifist가있는 macOS 설치 프로그램이나 백업본에서 압축을 풀거나 직접 수정하십시오. visuso. 기본 내용은 다음과 같습니다.

#
# 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 wheel 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

당신은 "여분의 파일 호스트를 복사 ~ orig와 shudders ~ orig :", "예비 파일"은 어디서 오는가? 그들은 내 10.12.3 빌드에 존재하지 않습니다.
user3439894

그들은 내 macOS에 존재하지 않는다. 10.12.3 /etc 예배 규칙서.
user3439894

@ user3439894 당신 말이 맞아요. 두 파일이 내 설치에 존재한다는 이상한 우연한 일치
klanomath

@klanomath 현재의 깨끗한 설치에는 많은 것들이있다. ~orig~previous 파일.
Max Ried

0

일반적으로 일반 계정으로 부팅되는 동안 터미널에서 다음을 수행하십시오.

touch sudoers.ori hosts.ori
open -e sudoers.ori hosts.ori
  • 참고 :이 명령을 실행할 때 홈 디렉토리에 있다고 가정합니다.

에서 hosts.ori 파일을 복사 한 후 다음을 붙여 넣습니다.

##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
127.0.0.1   localhost
255.255.255.255 broadcasthost
::1             localhost

그런 다음 저장하고 닫습니다. hosts.ori 파일.

에서 sudoers.ori 파일을 복사 한 후 다음을 붙여 넣습니다.

#
# 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 wheel 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

그런 다음 저장하고 닫습니다. sudoers.ori 파일.

이제 터미널의 복구 HD 부팅에서 다음을 수행하십시오.

cd /Volumes/Macintosh\ HD/etc
cp /Volumes/Macintosh\ HD/Users/*/hosts.ori hosts
cp /Volumes/Macintosh\ HD/Users/*/sudoers.ori sudoers
chown root:wheel hosts
chown root:wheel sudoers
chmod 0644 hosts
chmod 440 sudoers
reboot
  • 노트 : Macintosh HD 어떤 이유로 든 변경 한 경우 명령 줄에서 적절히 변경하십시오.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.