로그인 할 때 정상적인 사용을 위한 암호와 시스템 관리 및 sudo 액세스를 위한 다른 암호를 사용자에게 어떻게 제공 할 수 있습니까? 한 명의 사용자가 두 개의 암호를 갖기를 원합니다.
sudo usermod -d /path/to/new/home
로그인 할 때 정상적인 사용을 위한 암호와 시스템 관리 및 sudo 액세스를 위한 다른 암호를 사용자에게 어떻게 제공 할 수 있습니까? 한 명의 사용자가 두 개의 암호를 갖기를 원합니다.
sudo usermod -d /path/to/new/home
답변:
sudo 서비스에 대한 PAM (Pluggable Authentication Module) 설정을 재정 의하여이를 수행 할 수 있습니다. 이 작업은 컴퓨터에 큰 위험을 초래합니다. 명령이 수행하는 작업을 이해하지 않는 한 복사 및 붙여 넣기 만하지 말고 항상 루트 터미널을 개방 테스트 테스트 테스트로 유지하십시오! -로그 아웃하기 전에 돌아가서 수정해야 할 경우를 대비하여.
PAM의 작동 방식에 대한 정보를 읽어 보시면 그것이 깨졌을 때 어떻게해야하는지 알 수 있습니다. 또한 권한을 올바르게 설정하지 않으면 솔루션이 암호에 대한 테이블 공격을 해시하기 쉬울 수 있으므로 대부분의 사용자는 다른 각도에서이 문제에 접근하는 것이 좋습니다 (관리를 위해 별도의 사용자 계정 만들기).
계속 진행하기로 결정한 경우 새 PAM 모듈을 설치해야합니다. pam_pwdfile은 인증에 구식 / etc / passwd 유형 파일을 사용하므로 서비스마다 다른 암호를 사용하는 데 좋습니다. 계정 인식 기능을 제공하지 않으므로 시스템에없는 사용자의 사용자 이름 / 암호 쌍을 만들 수 있습니다. sudo에 사용하기 때문에, sudo가 계정이 일반적인 방식으로 존재하는지 확인하도록하므로 중요하지 않습니다.
sudo apt-get install libpam-pwdfile
또한 편리한 htpasswd 파일 편집기를 가져 오는 것이 좋습니다. Benjamin Schweizer는 파이썬으로 편리한 편집기를 만들었습니다. http://benjamin-schweizer.de/htpasswd_editor.html 에서 가져 와서 종속 항목을 설치하십시오.
sudo apt-get install python-newt
도구를 사용하여 htpasswd 형식 파일을 생성하십시오 sudo python htpasswd_editor sudo.passwd
. sudo에 사용할 것과 동일한 사용자 이름을 사용하여 사용자 이름과 비밀번호를 입력하십시오 (사용할 각 사용자마다 하나씩). 안전한 곳으로 복사하십시오 (테스트 할 때 /etc/sudo.passwd에 넣으십시오) chmod 660 /etc/sudo.passwd
. 일반 사용자가 읽을 수 없도록하십시오 : 루트.
파일을 루트가 소유하고 다른 사용자가 읽을 수없는 파일인지 확인하십시오. 파일에 해시 된 비밀번호가 포함되어 있기 때문에이 취약점은 다른 사용자가 읽거나 쓸 수 있으면 보안을 심각하게 손상시킵니다. 이런 이유로 보안을 유지해야하는 컴퓨터에서는이 방법을 권장하지 않습니다.
마지막으로 /etc/pam.d/sudo
파일을 편집 하십시오. 다른 줄 위에 다음 줄을 추가하십시오 @include ...
.
auth required pam_pwdfile.so pwdfile /etc/sudo.passwd
마지막 인수를 생성 된 htpasswd 파일의 경로로 바꾸십시오. 다음 줄을 주석 처리 #@include common-auth
하여 새 인증 방법을 사용하고 있는지 확인하십시오.
주의 사항 - /etc/pam.d/sudo
루트 터미널에서 파일 을 편집해야합니다 . 테스트하지 않고 이것을 닫지 마십시오! 그렇게하면, 다시 로그인하지 못할 수 있으며 (무슨 내용이 있으면) 복구 디스크로 부팅하여 시스템을 복구해야합니다. 새 터미널을 열어서 로그 아웃하기 전에 테스트하고를 사용해보십시오 sudo
. 더 이상 일반 로그인 비밀번호로는 작동하지 않지만 passwd 파일을 생성 할 때 사용한 새 비밀번호가 필요합니다. 파일을 업데이트하려면 유용한 도구를 다시 사용하십시오.