왜`su`를 실행할 수 없습니까? (어떻게해야합니까?)


33

내가 발행하려고 할 때마다 나는 su이것을 얻는다 :

$ su  
Password:  
su: Sorry

말할 것도없이, 올바른 관리자 비밀번호를 입력하고 sudo있습니다. 내가 원하는 것은 sudo매번 들어갈 필요가 없습니다 .

답변:


34

MacOS X에서는 루트 사용자가 기본적으로 비활성화되어 있으므로 su작동하지 않습니다. 다른 사람들이 언급했듯이을 사용하는 것이 가장 좋습니다 sudo.

루트 사용자 활성화 해야하는 경우 Apple 기술 노트 : Mac OS X에서 "루트"사용자 활성화 및 사용을 참조하십시오 .


13
sudo su여전히 작동하므로 실제로 비활성화되어 있지 않습니다. 비밀번호가 없습니다.
가짜 이름

@FakeName 가장 재미있는 백도어입니다! 당신이 뛸 수 있다면 sudo su, 세상에서 무능화의 요점은 su무엇입니까?
Kolob Canyon

3
@KolobCanyon-요점은 실제로 "비활성화 su" 되지 않고 루트 로그인방지하는 것 입니다. 로 로그인을 허용하지 root않으면 여러 가지 보안 문제가 발생 하지 않습니다 . 할 수있는 사람을 허용하지 않음 sudosu어떤 바보의입니다. 기본적으로 su현재 사용자 ID를 변경하고 명령 (지정되지 않은 경우 쉘)을 실행합니다. 로 실행할 때와 같이 user-id가 이미 0 (루트) 인 경우 수행 sudo할 작업이 없으므로 셸만 실행합니다. 을 수행하여 비슷한 효과를 얻을 수 있습니다 sudo bash.
가짜 이름

1
@FakeName 여전히 혼란 스럽습니다. 루트로 로그인하고 'sudo su'를 실행하는 것의 차이점은 무엇입니까? 효과적으로 같은 수준이 아닌가?
Kolob Canyon

2
@KolobCanyon-아뇨. 기본적으로 login 을 비활성화 하면 로그인 프로세스에 취약성이있는 경우 해커가이를 사용하여 루트를 직접 가져올 수 없습니다. 기본적으로 필요한 루트 손상을 "로그인 손상"에서 "사용자 계정 + privesc에 대한 로그인 제한"으로 이동합니다. 기본적으로 심층 방어 기능으로 수행됩니다.
가짜 이름

14

두 가지 옵션이 있습니다. 첫 번째는 사용 sudo -s하는 것입니다. 이렇게하면 수퍼 유저 액세스 권한이 부여되지만 여전히 '자기 자신'으로 남아 있으므로 ~여전히 홈 디렉토리가됩니다. 또는을 사용 sudo su하여 Mac의 실제 루트 사용자로 쉘을 제공 할 수 있습니다 .


5
Apple Way (tm)는 sudo루트 셸로 전환하지 않고 상승 된 권한이 필요한 명령을 실행하는 데 사용 됩니다.
Ian C.

3
@Ian C.-아니요, 실제로 유닉스 방식입니다. Apple은 * nix 기반이기 때문에 그것을 사용합니다.
가짜 이름

@ 가짜 이름 : Apple은 사용자에게 루트 쉘을 말하거나 노출시키지 않기 위해 큰 고통을 겪습니다. 당신은 그들이 sudo정신을 극단으로 가져 갔다고 말할 수 있습니다 . 그러나 무엇이든 : 의미론. OS X에서 루트 쉘을 사용하지 마십시오
.

1
@Ian C-Apple은 * nix 디자이너들보다 훨씬 더 많은 것을하지 않으며, Apple은 그것에 대해 많이 이야기하지 않습니다. 두 경우 모두 리눅스와 같은 것만으로 쉽게 사용하는 방법을 알려줍니다. 그것이 더 널리 사용 된다면, 근본적인 아키텍처 차이를 나타내지 않습니다.
가짜 이름

1

예를 들어 CLI를 사용하여 파일을 이동하거나 git을 사용하는 경우 가장 좋은 해결책은 sudo -s명령 을 사용하는 것 입니다. 이 명령 후에 비밀번호를 계속해서 다시 입력 할 필요가 없습니다.


1

나는 당신이 이것을 "정상적인"사용자로 할 수 없다고 생각합니다 ...

관리자 권한이있는 다른 사용자 계정이있는 경우이 계정을 사용해야합니다

restricted user$ su
Password:(the root password here)
Sorry!

restricted user$ su - (an admin account here)
password:(the admin account password)
$ su - root
Password:(The root password here)
# -> You are root user now

1

현대적인 솔루션 : sudo -u

다른 용도로 실행하려면을 사용하십시오 sudo -u.

예를 들어, 실행하는 텍스트 편집기 와 같은 나노 :

sudo -u someuser nano

… 프롬프트가 표시되면 Mac 관리자 암호를 입력하십시오. 이 시점에서 사용자가 sudo아닌을 호출하는 것은 Mac 관리자 someuser사용자이므로 someuser비밀번호를 입력하지 마십시오 .

  • sudo 수퍼 유저 권한을 사용하여 무언가를 실행하는 것을 의미합니다.
  • -u "지정된 명령을이 지정된 사용자로 실행"을 의미합니다.
  • someuser 원하는 사용자 이름으로 바꿔야합니다.

시작 스크립트 실행을 포함하여 특정 사용자로 초기 로그인을 시뮬레이트하려면을 사용하십시오 -I.

sudo -u someuser -i nano

nano앱을 사용자로 실행 someuser하지만 해당 사용자 의 시작 스크립트를 실행 한 후에 만 ​​실행됩니다.

실행할 명령이나 앱을 지정하지 않으면 해당 사용자로 대화식 셸이 실행됩니다.

sudo -u someuser -i

오래된 학교: sudo su someuser

다른 접근 방식은 su명령을 sudo. 이 su명령은 "사용자 전환"을 의미합니다.

sudo su someuser

또는 사용자의 시작 스크립트 실행을 포함 시키려면 하이픈을 추가하십시오.

sudo su - someuser

root 사용자

root유닉스 관련 운영 체제 의 사용자는 무엇이든 할 수있는 절대적인 힘을 가지고 있습니다.

Apple은 rootmacOS 에서 계정 을 비활성화하여 보안 취약성 악용을 피하고 사용자가 직접 촬영 하지 못하도록 선택했습니다 . Apple 은 표준 사용자 계정 보다 많은 권한을 가지고 있지만 절대적인 권한은없는 관리자 사용자 계정 이라는 아이디어를 만들었습니다 . 자세한 내용은 이 Apple 지원 노트 를 참조하십시오 .root

필요하다면, 당신은 할 수 에이블 root맥 OS에서 사용자와 해당 사용자로 전환 한 후. 이다 강하게 낙담. 나는이 길을 절망적 인 최후의 수단으로 만 내려갈 것입니다.


macOS postgres에서 Postgres 데이터베이스 시스템을 실행 하는 사용자 의 상황에서 이에 대한 자세한 내용은 자매 사이트 인 DBA Stack Exchange 에서이 질문 을 참조하십시오 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.