관리 용으로 하나의 암호를 사용하고 시스템 로그인에 다른 암호를 사용하십시오


10

로그인 할 때 정상적인 사용을 위한 암호와 시스템 관리 및 sudo 액세스를 위한 다른 암호를 사용자에게 어떻게 제공 할 수 있습니까? 한 명의 사용자가 두 개의 암호를 갖기를 원합니다.


1
하나는 정상적인 사용과 다른 하나는 sudo를 사용할 수 있도록 두 개의 계정을 만드는 것입니다.
루이스 알바라도

아니요, 한 계정에서만 필요합니다
Varun Sridharan

왜 하나의 계정이어야합니까? sudo 액세스 권한이 있지만 별도의 홈 폴더가없는 별도의 계정을 만든 다음이 사용자를 일반 사용자와 동일한 그룹에 추가하고 동일한 홈 폴더를 사용하도록 설정하십시오sudo usermod -d /path/to/new/home
Warren Hill

@SVarun 나는 당신이 마지막으로 언급 한 이후 나에게 맞는 단계로 내 대답을 업데이트했습니다. 당신이 그것을 확인하고 그것이 당신을 위해 작동하는지 알려 주시겠습니까?
Aaron D

답변:


16

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 파일을 생성 할 때 사용한 새 비밀번호가 필요합니다. 파일을 업데이트하려면 유용한 도구를 다시 사용하십시오.


우분투에서 달리는 다른 방법이
있습니까?

답변을 업데이트했습니다.이 방법을 테스트했으며 귀하의 질문을 올바르게 이해하면 원하는 방법으로 수행합니다. 시도하십시오.
Aaron D

1
현상금 +50 @AaronD 귀하의 답변으로 내 질문이 해결되었습니다 . 감사!!!
로비 Wxyz

도움이 되셨 다니 다행입니다.
Aaron D

1

원래 질문에 대한 훨씬 간단한 해결책이 있으며 내가 실행하는 방법입니다.

  • 관리자가 아닌 사용자 하나 만들기
  • 관리자 생성

항상 관리자가 아닌 사용자로 로그인하고 관리자가 아닌 사용자가 "관리자"를 수행해야 할 때마다 다음을 수행하십시오.

fab-user@fab-ux:/media/Data/Temp
$ su - fab-root 
Password: 
fab-root@fab-ux:~
$ sudo smartctl --all /dev/sdc

예, 원하는 것은 아니지만 실제로 필요한 것입니다.

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