일반 사용자 계정을 사용할 때 단일 sudo 명령을 실행하는 더 나은 솔루션을 찾고 계십니까?

일반 사용자 계정을 사용할 때 단일 sudo 명령을 실행하는 더 나은 솔루션을 찾고 계십니까?

그룹의 구성원이 아닌 일반 사용자 계정으로 로그인했습니다.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 파일을 편집하고 visudosudouser를 NOPASSWD로 설정하면 쉽게 제거할 수 있습니다. 이것은 더 일반적인 작업입니다. 비밀번호가 필요하지 않은 명령을 제한할 수도 있습니다. 이는 이러한 방식으로 몇 가지 명령만 실행하려는 경우 분명히 권장됩니다. 그러나 이 sudo 사용자를 매우 심각하게 다루지 않는 한 NOPASSWD 정책을 사용하는 것은 좋은 생각이 아닙니다. 일반적으로 말해서, 그것은 좋은 생각이 아닙니다.

비밀번호 프롬프트 없이 모든 명령을 실행할 수 있는 구성은 다음과 같습니다.

sudouser ALL= NOPASSWD: ALL

요점 - 왜 이 세 가지 계정 구성을 사용하는지 모르겠습니다. 이를 한쪽으로 설정하면 요청한 내용을 제공한다는 측면에서 sudo 사용자가 비밀번호를 묻는 메시지 없이 특정 명령을 실행할 수 있도록 허용하는 것이 가장 합리적인 경로입니다.

하지만 조심해야 합니다. 그러면 설정이 덜 안전해집니다.

여담이지만, sudo 사용자에 대해 SSH 키 기반 인증과 NOPASSWD를 모두 사용하여 지침 내에서 제로 인증 솔루션을 달성하는 것이 기술적으로 가능하므로 명령은 다음과 같습니다.

ssh -i .ssh/sudouser_id_rsa sudouser@localhost sudo whatever_i_like

그것은 분명히 불안전함을 넘어서는 것입니다. 그것은 단지 명백히 개방되어 있습니다. 말할 필요는 없지만 그렇게 하지 마세요.

관련 정보