우분투는 기본적으로 루트 계정을 비활성화하기 때문에 루트 쉘 액세스도 비활성화하지 않겠습니까?


12

루트 계정의 현재 기본값 /etc/passwdroot:x:0:0:root:/root:/bin/bash입니다.

왜 설정하지 root:x:0:0:root:/root:/usr/sbin/nologin않습니까?


7
당신이 할 수 있도록 sudo -i?
AlexP

12
"루트 계정 비활성화"는 약간 느슨한 설명입니다. 실제로 비활성화하는 것은 루트 계정의 비밀번호 기반 인증 입니다.
스틸 드라이버

1
@AlexP는 실제로 그것을 테스트했습니다. sudo -i는 / usr / sbin / nologin으로 설정된 루트에서 작동하지 않습니다.
loongyh 2016 년

답변:


19

이 경우 sudo한 번에 하나씩 만 명령을 실행할 수 있지만 루트 셸을 시작할 수는 없습니다. 루트 쉘은 여러 경우에 편리합니다. 예를 들어 여러 명령을 루트로 루트로 실행하려는 경우입니다.

특히 sudo -iAlexP가 지적했듯이 실행할 수 없습니다 . 보낸 사람 man sudo:

-i, --login    Run the shell specified by the target user's password database entry as a login shell.

7
하지 않습니다 sudo /bin/bash그렇게 일을?
Federico Poloni 2016 년

5
@FedericoPoloni sudo -s내가 생각하는 것과 비슷할 것입니다 (루트 쉘이지만 루트 로그인 쉘은 아닙니다 ). 그래도 좋은 지적입니다. 그리고 실제로 sudo -s루트의 쉘이있는 경우에도 작동하는 것 같습니다/usr/sbin/nologin
steeldriver

1
당신은 비활성화 할 수 있습니다 -i, -s, /bin/bash, 등 단지 명령의 화이트리스트를 허용함으로써에서의 sudoers 파일에 대한 설명서를 참조하십시오. 이것은 매우 세분화되어 예를 들어 사용자가 실행 /etc/init.d/someservice restart하지 않고 루트로 실행할 수 있습니다 /etc/init.d/someservice stop. 그러나 우분투 기본값은 암호를 설정하지 않고 root관리자가 sudo로 모든 것을 할 수있게하는 것입니다. 아마도 이론적 근거는 a) 둘 이상의 관리자 사용자이고 b) 관리자 사용자는 루트 계정에 대한 두 번째 비밀번호를 기억할 필요가 없습니다.
allo

8

Alberto Santini의 sudo 답변 외에도 또 다른 (훨씬 더 좋은) 답변이 있습니다. 루트 쉘이 쉘이 아닌 것으로 설정되면 단일 사용자 부팅이 작동하지 않습니다. sulogin비 확장 쉘 또는 완전히 깨진 쉘과 같은 것들 에 대한 복구가 있지만 쉘이 유효한 쉘로 보이지만 실제로는 쉘이 아닌 경우 작동하지 않습니다.

당신은 여전히 수 sudo에 직접 쉘을 지정하여 쉘을 얻을 sudo그것도 좋은 보호하지 그래서.

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