다음 명령문은 sudoers 매뉴얼 초기에 나타나며 "SUDO_USER 환경 변수"를 참조하지만 매뉴얼에는 정의되어 있지 않습니다.
sudo가 루트로 실행되고 SUDO_USER 환경 변수가 설정된 경우 sudoers 정책은 해당 값을 사용하여 실제 사용자가 누구인지 확인합니다. 사용자는 루트 셸이 호출된 경우에도 이를 사용하여 sudo를 통해 명령을 기록할 수 있습니다. 또한 sudo-run 스크립트나 프로그램에서 호출되는 경우에도 -e 옵션을 여전히 유용하게 사용할 수 있습니다. 그러나 sudoers 조회는 여전히 SUDO_USER에 지정된 사용자가 아닌 루트에 대해 수행됩니다.
이 전체 단락은 여전히 나에게 매우 이해하기 어렵습니다. 어떤 설명이라도 주시면 대단히 감사하겠습니다. 예를 들어, sudoers 정책이 SUDO_USER 환경 변수를 사용하여 사용자가 실제로 누구인지 확인한다는 것은 무엇을 의미하며, 사용자가 이를 사용하여 명령을 기록할 수 있다는 것은 무엇을 의미합니까?
이 문장도 이해하기 어렵습니다.
사용자는 루트 셸이 호출된 경우에도 이를 사용하여 sudo를 통해 명령을 기록할 수 있습니다.
답변1
SUDO_USER
에 기록됨man sudo
(아니요 sudoers
):
SUDO_USER Set to the login name of the user who invoked sudo.
즉, 실행하면 sudo sh -c 'echo $SUDO_USER'
효과를 얻을 수 있는 우회적인 방법입니다 whoami
.
sudo
사용자가 이를 통해 명령을 실행(또는 실행하려고 시도)할 때 기록됩니다. journalctl /usr/bin/sudo
귀하의 시스템에 대해 또는 이에 상응하는 것을 사용하여 나열 할 수 있습니다 . 각 호출에 대한 사용자 이름과 명령이 나열됩니다.
sudo
1) 루트로 실행하고 2) 세트로 실행하는 경우 SUDO_USER
로그 항목 SUDO_USER
에 "root" 대신 사용자 이름 태그가 지정됩니다. 이를 통해 (협력하는) 사용자는 제한되지 않은 환경에 있더라도 후손을 위해 실행하는 명령을 기록할 수 있습니다. 루트 권한 없이 명령을 실행할 수 있으므로 sudo
루트 권한으로 실행하면(설정을 통해 비활성화되지 않는 한) 항상 성공합니다 .root_sudo
이것이 일어날 수 있는 두 가지 주요 방법이 있습니다. 첫 번째는 명백 sudo bash
하거나 이에 상응하는 것, 사물을 기록하려는 욕구입니다. 또 다른 사용 사례는 사용자를 대신하여 수행하는 실제 작업을 기록할 수 있는 스크립트입니다. 이는 보안 문제가 아닌 정보 행위입니다.
sudo -e
man sudo
파일 편집을 위해 사용되며 안전한 편집 동작 에도 설명되어 있는 다양한 보안 정책 세트를 사용합니다 . 사람들은 때때로 이러한 기능을 사용하기 위해 루트로 로그인하여 이를 사용하며 SUDO_USER
위와 동일한 상호 작용을 합니다.