그룹의 구성원이 아닌 일반 사용자 계정으로 로그인했습니다.sudo그리고관리자. 다음 예제 명령을 실행하면 ..
su -c 'sudo some_command_that_needs_sudo' sudo-user
..비밀번호를 입력해야 합니다두 배. 처음으로 로그인한 경우sudo 사용자두 번째로 우리는 다음을 사용하여 루트 권한을 요청하기 때문에sudo.
비밀번호를 두 번 입력하지 못하게 하는 방법을 알고 있나요?
명심하세요..
- ..사용자 권한을 변경하고 싶지 않습니다.
- ..비밀번호를 한 번만 입력하고 싶습니다.
- ..간단한 단일 명령을 찾고 있습니다.
답변1
구성이 약간 비정상적입니다. 일반적으로 sudoers에 사용자 이름을 추가하고 필요한 경우 이 방식으로 실행할 수 있는 애플리케이션을 제한합니다. 자세한 내용을 모르면 제3의 계정을 도입해도 아무런 이점을 얻을 수 없습니다. 그것은 단지 더 많은 간접적인 방법을 소개할 뿐입니다. 이것이 바로 여러분이 지금 접하고 있는 것입니다.
처음 입력하는 비밀번호는 sudo-user가 됩니다. 이를 피할 수는 없습니다. 사용자를 전환하고 있는 것입니다. 다음은 사용하지 말아야 할 몇 가지 미친 해결 방법입니다.
- 로그인을 더 간단하게 하기 위해 사용자의 비밀번호를 빈 것으로 설정할 수 있지만 이는정신 이상의보안 위험. 이렇게 하지 마십시오.
expect
하드코드된 비밀번호를 사용하여 로그인을 자동화할 수 있습니다 . 이는 이전 제안보다 더 안전하지 않습니다. 이렇게 하지 마십시오.- SSH를 사용할 수 있습니다. sudo-user로 ssh 키를 생성하고 이를 사용자의 .ssh 디렉토리에 복사하고 사용자에 대해 권한을 부여한 다음 sudouser의 .ssh/authorized_keys에 추가한 다음 다음을 사용합니다
ssh -i .ssh/sudouser_id_rsa sudouser@localhost <command>
. 작동할 수도 있지만 미친 짓입니다.
두 번째 비밀번호는 sudoers 파일을 편집하고 visudo
sudouser를 NOPASSWD로 설정하면 쉽게 제거할 수 있습니다. 이것은 더 일반적인 작업입니다. 비밀번호가 필요하지 않은 명령을 제한할 수도 있습니다. 이는 이러한 방식으로 몇 가지 명령만 실행하려는 경우 분명히 권장됩니다. 그러나 이 sudo 사용자를 매우 심각하게 다루지 않는 한 NOPASSWD 정책을 사용하는 것은 좋은 생각이 아닙니다. 일반적으로 말해서, 그것은 좋은 생각이 아닙니다.
비밀번호 프롬프트 없이 모든 명령을 실행할 수 있는 구성은 다음과 같습니다.
sudouser ALL= NOPASSWD: ALL
요점 - 왜 이 세 가지 계정 구성을 사용하는지 모르겠습니다. 이를 한쪽으로 설정하면 요청한 내용을 제공한다는 측면에서 sudo 사용자가 비밀번호를 묻는 메시지 없이 특정 명령을 실행할 수 있도록 허용하는 것이 가장 합리적인 경로입니다.
하지만 조심해야 합니다. 그러면 설정이 덜 안전해집니다.
여담이지만, sudo 사용자에 대해 SSH 키 기반 인증과 NOPASSWD를 모두 사용하여 지침 내에서 제로 인증 솔루션을 달성하는 것이 기술적으로 가능하므로 명령은 다음과 같습니다.
ssh -i .ssh/sudouser_id_rsa sudouser@localhost sudo whatever_i_like
그것은 분명히 불안전함을 넘어서는 것입니다. 그것은 단지 명백히 개방되어 있습니다. 말할 필요는 없지만 그렇게 하지 마세요.