/etc/shadow 파일을 직접 편집하면 안되는 이유는 무엇입니까?

/etc/shadow 파일을 직접 편집하면 안되는 이유는 무엇입니까?

UNIX & Linux Stack Exchange에 대한 또 다른 답변마이클 D. 파커(Michael D. Parker)는 다음과 같이 썼습니다., 누군가가 이렇게 하는 것이 "안전하다"고 말하는 것에 대한 응답으로, 즉:

일반적으로 /etc/shadow 파일을 직접 편집하면 안 됩니다.

그래서:

왜 하고 싶어?안 돼요파일을 직접 편집하시겠습니까 /etc/shadow?

답변1

/etc/passwd, /etc/shadow, 또는 직접 편집하지 않고 대신 , 또는 을 /etc/group사용 하는 데는 여러 가지 이유가 있습니다 ./etc/gshadow/etc/sudoersvipwvigrvisudo

  • 구문 오류가 발생하면 더 이상 로그인할 수 없거나 루트가 될 수 없습니다. 파일을 수정하기 전에 온전성 검사를 수행하는 viXXX 도구를 사용하면 이러한 위험을 줄일 수 있습니다.
  • 파일을 동시에 편집하는 경우 마지막으로 저장한 사람이 이전 편집의 변경 사항을 덮어씁니다. 여기에는 관리자가 편집한 파일은 물론 사용자가 자신의 계정에 대해 무언가를 호출하거나 변경하여 수정된 passwd파일이 포함됩니다 chsh. chfn적절한 도구를 사용하면 동시 수정이 방지됩니다. 이는 대부분 사용자가 여러 명인 시스템에서 문제가 되지만, 사용자가 유일한 경우에는 문제가 적습니다.
  • 일부 시스템(대부분 또는 *BSD만)에서는 vipw여러 파일(예: /etc/passwd/etc/master.passwd)이 업데이트됩니다. 이것은 Linux에서는 작동하지 않습니다.
  • vipw백업( passwd-, shadow-, ...)을 자동으로 생성합니다. 이는 실수로 행을 삭제한 경우 유용할 수 있습니다. 다음 편집 전에 깨달아야 유용하므로 버전 관리와 백업을 대체할 수는 없지만, 실수를 빨리 깨달으면 좋습니다. visudo이러지 마세요.

할 수 있는파일을 직접 편집하세요. 실질적인 이점 없이 추가적인 위험만 감수하게 될 것입니다.

답변2

기본적으로 이 문제를 보는 두 가지 방법이 있습니다.

  1. 자신이 무엇을 하고 있는지 모를 수 있으므로 명시된 도구를 사용하지 않고 일부 파일을 편집하지 마십시오. 그러나 해당 도구는 더 잘 알고 항상 사용할 수 있으므로 괜찮습니다.

  2. login보다 현실적으로는 시스템의 모든 기능에 대한 기본 지식 으로 백업 복사본을 만들고 작업이 완료된 후 차이점을 비교할 수 있도록 생각하자마자 이를 분해하는 것이 좋습니다. 나중에 다른 방법으로 살펴보고 도구가 도움이 되지 않는다고 말할 때 기본적인 초기 프로세스는 그만한 가치가 있을 수 있습니다.

제가 어떤 것을 추천하는지 짐작하실 수 있을 것 같아요. 제가 말하려는 것은, 어떤 주제에 잠시라도 관심이 있다면 그 호기심을 활용하여 학습 과정에서 새로운 기술을 얻을 수 있다는 것입니다. 특히 이와 같은 파일은 shadow상당히 기본적인 형식이고 제가 아는 내용은 파일을 파괴한 후에야 알게 되었습니다.우연한- 이것은 제가 파일을 편집한 결과가 아닙니다.

대신, 패키지 관리 데이터베이스의 다른 오류로 인해 패키지 관리자가 백업을 저장하지 않고 이를 덮어쓰고 시스템의 모든 사용자가 생성된 후에 문제가 발생했습니다.카푸트. 더욱 무지하고 서투른 복구 시도는 다른 관련 파일에만 손상을 퍼뜨렸으며 얼마 지나지 않아 /etc단 하나의 텍스트 파일에서 대부분의 텍스트 파일을 복구해야 했습니다 .(예상보다 늦음)지원.

그렇게 해서 어느정도 자립이 가능한 상태라는 걸 확인하고 나서는 신중하고 꼼꼼하게 다시 하기로 마음 먹었어요. 다시. 몇 달 전의 일이지만, 오늘도 나는 login내 시스템에 있는 단일 로그 파일을 검사하여 문제의 원인을 진단하고 기본 편집기를 사용하여 해결할 수 있다고 확신합니다.(아마도 한두 번 살펴보세요 man 5 problem_file)영향을 받는 루트 파일 시스템에 대한 기본 액세스만 제공합니다. 구입하는 데 비용이 많이 들지 않습니다. 하루 중 대부분이 소요되었으며 관련 구성 파일은 디렉토리 전체에 분산되어 있습니다.(그리고 Linux PAM과 같은 일부는 /var/run/no_login다른 설치에서도 가능)- 하지만 해볼 가치는 있어요. 그리고 그것할 수 있다조금만 생각하면 더 저렴해요.

이야기의 교훈은 그럴 수 있다는 것이다.아니요shadowpasswd, , groups와 같은 미션 크리티컬 구성의 형식이 shells우리에게 너무 불투명해서 우리가 이해할 수 없는 방식과 이유로 작동할 수도 있고 작동하지 않을 수도 있는 특수 편집 도구를 사용해야 한다는 것은 좋은 일입니다. 간단한 효과를 얻으세요. 변화. 나는 그들이 우리와 다르게 무엇을 할지 정확히 이해하는 것이 적어도 시간을 투자할 가치가 있다고 생각합니다.

아마그러나 한 가지 좋은 점은 해당 파일을 편집하는 데 충분히 익숙해지면 파일을 생성하고 저장할 때 인쇄상의 오류 또는 간단한 구문 오류가 발생할 위험이 있으며 일부 도구를 사용하여 응용 프로그램에서 작업을 다시 확인할 수 있다는 것입니다. blas 편집자는 이전에 방법과 이유에 대해 배웠습니다.

답변3

대위법 - 현재 비밀번호를 모르거나 새 비밀번호를 할당하지 않은 채 한 서버에서 다른 서버로 사용자 로그인 세트를 복사해야 하는 경우 /etc/shadow를 직접 편집하여 해시 비밀번호 필드를 삽입해야 합니다. vipw에서는 필드를 터치할 수 없습니다. 단지 "*"일 뿐입니다.

업데이트: 또는 이 경우 "비밀번호를 해시"하기 위해 chpasswd -e를 사용하지만 이 작업은 컴퓨터에서만 직접 수행할 수 있습니다. 컴퓨터(예: 가상 머신)에 배포되지 않은 파일 세트로 작업하는 경우 직접 편집이 유일한 솔루션일 수 있습니다.

즉, 일반적으로 /etc/shadow를 직접 편집하지 않고 원하는 작업을 수행하는 도구가 있으므로 그것이 무엇인지 알아야 합니다.

답변4

이러한 파일을 편집해야 하는 또 다른 이유는 다른 시스템에서 부팅할 파일 시스템 이미지의 파일을 편집하고 부팅 후 해당 시스템을 디버그해야 하는 경우입니다. 예를 들어 디버그 실패 또는 복구 모드 중에 사용되는 MAAS 임시 파일 시스템입니다.

진심으로 말하지 않는 한 절대 말하지 마세요.

관련 정보