내 컴퓨터에 처음으로 Linux를 설치했을 때 나는 sudo
루트 권한이 필요한 명령을 실행할 때마다 비밀번호를 추가하고 입력할 필요가 없었기 때문에 항상 루트를 사용하는 것을 좋아했습니다.
어느 날 디렉토리를 제거하고 싶어서 을 실행했는데 rm -rf /
시스템이 고장이 났습니다. Linux 설계자들이 왜 그렇게 위험한 명령을 금지하지 않았는지 궁금합니다.
답변1
왜 당신이 당신의 컴퓨터에서 당신이 원하는 무엇이든 할 수 있도록 허용해서는 안 됩니까? 으로 로그인하거나 root
사용하는 것은 sudo
기계에 "내가 뭘 하고 있는지 알아요"라고 말하는 것입니다. 사람들이 의심스러운 일을 하지 못하게 막는 것은 일반적으로 그들이 영리한 일을 하는 것도 막습니다.레이먼드 첸(Raymond Chen)이 표현한 것처럼.
게다가 사용자가 루트 디렉터리를 삭제하도록 허용하는 한 가지 좋은 이유는 OS와 파일 시스템을 완전히 지워 컴퓨터를 폐기하는 것입니다. (위험!일부 UEFI 시스템에서는 다음을 rm -rf /
수행할 수 있습니다 .물리적 기계도 벽돌로 만든다.) 또한 내부에서 수행하는 것이 합리적인 일입니다.chroot
교도소.
분명히 사람들은 실수로 명령을 너무 많이 실행하여 안전 기능이 추가되었습니다. 또한 제공되지 rm -rf /
않는 한 대부분의 시스템에서는 아무 작업도 수행하지 않습니다 .--no-preserve-root
안 돼요그걸 입력해도 돼실수로. 이는 또한 방어에 도움이 됩니다.서투르게 작성되었지만 의도는 좋은 쉘 스크립트.
답변2
요약:가장 간단한 대답은 다음과 같습니다. 왜 안 되겠습니까? 이는 단지 기능에 불과하며 수술 시스템이 제공하는 도구일 뿐입니다. 당신은 자신이 무엇을 하고 있는지 알면서 위험을 감수하고 이를 사용합니다.
설명
사용자로 루트를 사용하는 것은아주 나쁜 생각, 실행하는 모든 것이 높은 권한으로 실행되기 때문에 엄청난 보안 결함이 있습니다.
예를 들어 악성 프로그램을 다운로드했거나 컴퓨터에 설치된 소프트웨어에 심각한 버그가 있는 경우 파일은 물론 하드웨어까지 심각한 손상을 초래할 수 있습니다.
여러 번 작성하기에는 너무 게으르더라도 잠시 동안 사용한 다음 일반 권한 상태로 돌아갈 수 있는 sudo
와 같은 몇 가지 명령이 있습니다 . sudo -i
하지만 터미널 사용 경험이 더 많지 않다면 이 방법을 권장하지 않습니다.
그러나 이는 Linux나 개발자의 책임이 아닙니다. 실제로 @DanielB가 말했듯이,Windows에서도 이 기능이 허용됩니다.. 이를 수행할 수 있는 자유와 도구가 있지만 그렇다고 반드시 그래야 한다는 의미는 아닙니다.
rm
다음과 같이 루트 디렉터리에 접근하는 것을 방지하는 패키지가 있습니다 .안전-RM. 그런 일이 다시 일어날 위험이 있다고 생각한다면 좋은 선택이 될 수 있습니다. 의 매개변수
와 같은 다른 솔루션 및 해결 방법은 다음에서 논의됩니다.rm
--preserve-root
이것서버 오류 질문입니다.