SUDO 비밀번호와 다른 SSH / 로그인 비밀번호


9

GUI, 셸 또는 SSH를 통해 내 계정에 로그인 할 때 사용하는 암호와 다른 암호를 사용하여 사용자를 sudo 상태로 올리려고합니다. 이것이 가능한가?

편집 : 루트 암호를 설정하면 루트로 로그인 할 수 있기 때문에 좋은 방법이 아닙니다. 시스템 전체의 루트 암호보다는 사용자 별 sudo 암호를 선호합니다.


1
당신은 이것에 대해 자세히 설명 할 수 있습니까? 왜 이것을하고 싶습니까?
Doug Harris

1
나는 그 질문이 충분히 잘 설명되어 있다고 생각하지만, 목표는 길고 어려운 암호를 통해 로그인을 안전하게 한 다음 sudo 액세스를 위해 다른 암호를 사용하여 사용자 계정을 손상시키는 것이 자동으로 sudo 액세스를 제공하지 않는 것입니다.
Richard

rsa / dsa 키를 통해 sudo를 수행 할 수 있다고 들었습니다.이 암호는 원하는 암호를 가질 수 있습니다.
Rob

답변:


2

남자 sudoers에서 :

rootpw          If set, sudo will prompt for the root password instead of the
                password of the invoking user.  This flag is off by default.

runaspw         If set, sudo will prompt for the password of the user defined
                by the runas_default option (defaults to root) instead of the
                password of the invoking user.  This flag is off by default.

또는 ssh를 통한 비밀번호 기반 로그인을 완전히 금지 할 수 있습니다. 원격 로그인을 위해 암호문 암호화 키가 필요합니다. 그런 다음 sudo의 비밀번호를 자유롭게 사용할 수 있습니다. 관련 옵션은

남자 sshd_config에서

 PasswordAuthentication
         Specifies whether password authentication is allowed.  The default
         is “yes”.

도와 주셔서 감사합니다, Chas. 오웬스 귀하의 솔루션의 부작용으로 루트 계정에 암호가 있으므로 루트로 로그인 할 수 있기 때문에 문을 열지 않는 것이 좋습니다. 시스템 전체의 루트 암호보다는 사용자 별 sudo 암호를 선호합니다.
Richard

sshd_config에서도 루트 로그인을 비활성화 할 수 있습니다
Rob

1

sudoers man 대신 이것을 찾고 있습니까?

   targetpw        If set, sudo will prompt for the password of the user
                   specified by the -u option (defaults to root) instead of the
                   password of the invoking user. 

도움을 주셔서 감사합니다. johnshen64 귀하의 솔루션의 부작용으로 루트 계정에 암호가 있으므로 루트로 로그인 할 수 있기 때문에 문을 열지 않는 것이 좋습니다. 시스템 전체의 루트 암호보다는 사용자 별 sudo 암호를 선호합니다.
Richard

해당 사용자는 root 사용자 일 필요는 없으며, 지정하지 않으면 root로 기본 설정됩니다. 실험 해 볼 수 있는지 실험 해 볼 수 있습니다. 유닉스는 꽤 열려 있으며 여전히 작동하지 않는다면 래퍼 스크립트를 작성하거나 sudo (c를 알고 있다면)를 수정하여 원하는 것을 정확하게 수행 할 수도 있습니다.
johnshen64

@ johnshen64 모든 사용자에게 동일한 비밀번호가 사용된다는 사실에 반대합니다.
Chas. Owens

알지만 $ {USER} foradmin과 같이 각 사용자에 대해 관리자 사용자를 만들 수 있으므로 sudo를 여전히 사용자 지정 스크립트로 바꿔야하지만 사용자는 항상 -u $ {USER} foradmin을 지정해야합니다.
johnshen64

1

SSH를 통해 암호 로그온을 비활성화하고 암호를 추측하기 어려운 위치에서 공개 키 로그온을 허용하는 방법은 무엇입니까? 그러면 로컬 비밀번호가 더 짧아지고 sudo가 사용할 수 있습니다.

그 외에는 /etc/pam.d/sudo다른 (또는 추가) 모듈을 사용 하도록 구성 pam_dialpass해야합니다. 언뜻보기에 필요한 것을 허용 할 수 있습니다.

한 암호와 다른 암호를위한 LDAP 구성을 구성 할 수도 있습니다. 그것은 당신이 얼마나 많은 변화를주고 싶어하는지, 어떤 모듈을 사용할 수 있는지 등에 달려 있습니다.


도와 주셔서 감사합니다, 브람 첫 번째 제안은 키 파일을 전송할 준비가되지 않은 경우 공개 키 인증이 작동하지 않을 수 있다는 것을 저장하는 것입니다.
Richard

1

솔루션 1 : newgrp

유스 케이스를 해결하는 간단한 방법 :NOPASSWD은 그룹 및 그룹 passwd와 함께 사용 하는 것입니다.

sudoers에 줄을 추가하십시오 :

%rudo   ALL=(ALL:ALL) NOPASSWD:ALL

비밀번호로 보호 된 그룹을 작성하십시오.

groupadd rudo
gpasswd  rudo # Enter passwd

이제 권한이없는 사용자로 로그인하면 ( rudo그룹 에없는 것으로 가정 ) 그룹에 로그인 rudo하면 암호를 입력하라는 메시지가 표시됩니다.

login user
newgrp rudo

이제 sudo그룹에 로그인 한 상태에서 비밀번호없이 실행할 수 있습니다 .


해결 방법 2 : runaspw

더 나은, 아마도 더 안전한 방법이 사용을 할 수 있습니다 runaspw. 옵션 runaspw과 연결되어 runas_default있으므로 해당 옵션도 추가해야합니다.

이미 기본 %sudo그룹 항목 이 있다고 가정합니다 .

%sudo   ALL=(ALL:ALL) ALL

sudoers 파일에 다음 행을 추가하십시오.

Defaults:%sudo  runas_default=sudo
Defaults:%sudo  runaspw

이제 sudo비밀번호를 가진 새로운 사용자를 추가하십시오 :

useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo

이제 sudo 그룹 사용자에게 sudo 사용자의 암호를 입력하라는 메시지가 표시되지만 sudo 그룹의 사용자 만 sudo를 수행 할 수 있습니다 (위의 그룹 솔루션과 달리 그룹의 모든 사람 또는 그룹 passwd가있는 sudo가 가능).

사소한 문제는 이제 기본 runas 사용자 sudo이므로 root로 sudo하려면 root를 명시 적으로 지정해야합니다.

sudo -u root <cmd>

그러나 별칭 ( alias sudo='sudo -u root') 또는 간접 sudo 명령 을 정의하기에 충분합니다 .

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