루트가 아닌 사용자로 로그인하고 write 을 하면 sudo passwd -d root
루트 로그인이 비활성화됩니다. 즉, 다른 사용자로 로그인하여 su
루트로 전환하려면(또는 그냥 계속 사용 sudo
) 사용해야 합니다.
그러나 이 작업을 시도했을 때 루트 로그인이 비활성화되지는 않았지만 비밀번호 요구 사항만 제거되어 누구나 내 컴퓨터의 루트에 액세스할 수 있게 되었습니다(아주 나쁜).
나에게 사용하라고 지시한 책은 sudo passwd -d root
CentOS 6.5용으로 쓰여졌다. 내 버전은 7.2입니다. 이것이 최근 변경 사항입니까, 아니면 제가 뭔가 잘못 이해한 것입니까?
답변1
로컬 사용자는 항상 루트 권한을 사용하여 단일 사용자 모드로 시스템을 로드할 수 있으므로 로컬 PC에서 루트 로그인을 제한할 필요가 없습니다. SSH를 통한 루트 로그인을 차단해야 하는 경우 /etc/ssh/sshd_config에서 다음을 추가하여 수행할 수 있습니다. PermitRootLogin no
답변2
루트 로그인을 방지하는 가장 쉬운 방법은 에서 루트의 비밀번호를 나타내는 암호화된 문자열을 손상시키는 것입니다 /etc/shadow
. 일반 라인은 /etc/shadow
다음과 같습니다.
- 사용자 이름 : 귀하의 로그인 이름입니다.
- 비밀번호 : 암호화된 비밀번호입니다. 비밀번호는 특수문자/숫자 등을 포함하여 6~8자 이상이어야 합니다.
- 마지막 비밀번호 변경(마지막 변경) : 비밀번호가 마지막으로 변경된 1970년 1월 1일 이후의 일수
- 최소 : 비밀번호 변경에 필요한 최소 일수, 즉 사용자가 비밀번호를 변경할 수 있을 때까지 남은 일수
- 최대 : 비밀번호가 유효한 최대 일수(사용자가 비밀번호를 강제로 변경한 후)
- 경고: 비밀번호가 만료되기 전까지 사용자에게 비밀번호를 변경해야 한다는 경고가 표시되는 일수입니다.
- 비활성 : 비밀번호가 만료된 후 계정이 비활성화된 일수
- 만료: 계정이 비활성화된 1970년 1월 1일 이후의 날짜입니다. 즉, 로그인을 더 이상 사용할 수 없는 날짜를 지정하는 절대 날짜입니다.
(여기에서 인용) !를 추가할 수 있습니다. (느낌표)는 루트 줄의 비밀번호 섹션에 있는 해시 함수에서 생성되지 않으므로 /etc/shadow
가능한 모든 비밀번호를 사용하여 로그인하는 것을 방지합니다. 이제 루트에 대한 비밀번호 로그인 방법을 종료했으므로 어느 누구도 루트로 로그인할 수 없습니다.비밀번호를 사용하여. (다른 로그인 방법도 있을 수 있습니다.)
이를 수행하는 보다 안전한 방법은 usermod
유틸리티를 사용하는 것입니다. sudo usermod -L root 이렇게 하면 문제가 발생하는 것을 방지할 수 있습니다. 자세한 usermod
사용법은 을 참조하세요 usermod(8)
.
루트로 로그인하려면 해당 항목을 제거하십시오! 그러면 모든 것이 괜찮을 것입니다.
답변3
usermod -L
이전 답변은 루트를 차단 하거나 passwd -l
비밀번호 필드를 효과적으로 설정하는 것에 대한 내 의견을 선택했지만 귀하의 곤경을 설명하지 않습니다.
왜 책에서 으로 삭제하면 접근이 불가능하다고 되어 있는지 생각해 보았습니다 passwd -d
. -d를 사용하여 비밀번호를 공백으로 설정하면 루트가 아닌 모든 사용자가 루트 계정에 액세스하는 것을 방지합니다.떨어져서, 루트가 아닌 사용자는 비밀번호가 없는 다른 계정으로 이동할 수 없기 때문입니다. 요즘 ssh도 기본적으로 루트를 차단하므로 루트 계정은 원격 사용자 및 루트가 아닌 사용자의 관점에서 효과적으로 차단됩니다. (예를 들어 루트로 작업하는 유일한 방법은 sudo입니다)
그럼에도 불구하고 책에서는 로컬 콘솔의 모든 사용자가 비밀번호 없이 루트로 로그인할 수 있다고 언급해야 합니다. 오늘날 대부분의 콘솔은 가상 환경의 콘솔에서 일반 사용자의 손이 닿지 않는 반면, 루트 비밀번호를 제어하는 방법을 갖는 것은 항상 합리적입니다.
보다 합리적인 정책은 usermod -L
또는 를 사용하여 루트를 차단하는 것이지만 passwd -L
합리적인 사용자 정책을 설정하고 테스트하기 전에는 차단하지 않습니다.
makepasswd
대안은 긴급 상황(예: 단일 부팅 또는 누군가가 실수로 sudo를 망친 경우)을 위해 아무도 알 수 없도록 정기적으로 변경되는 매우 안전한 루트 비밀번호를 설정하는 것입니다(예: 무작위로 생성하여 봉투에 보관). 그러면 실제로 루트 비밀번호가 유용할 수 있습니다. 이렇게 하면 sudo를 통한 권한 있는 작업이 시행됩니다. 그렇지 않으면 루트가 잠긴 상태에서 대안은 가상 또는 실제 CD나 펜을 통해 부팅하는 것입니다.