^ Beyond Linux(r) From Scratch (systemd Edition) - Version 12.1 ^^^
^ Chapter 4. Security ^^^
|[[.:stunnel-5.72|이전]] | [[.:04-Security|위로]] / [[.:index|처음으로]] | [[.:Tripwire-2.4.3.7|다음]]|
|stunnel-5.72 | Tripwire-2.4.3.7|
----
===== Sudo-1.9.15p5 =====
==== Sudo 소개 ====
Sudo 패키지를 사용하면 시스템 관리자가 특정 사용자(또는 사용자 그룹)에게 명령과 인수를 로깅하면서 일부(또는 모든) 명령을 루트 또는 다른 사용자로 실행할 수 있는 기능을 부여할 수 있습니다.
이 패키지는 LFS 12.1 플랫폼을 사용하여 빌드하고 제대로 작동하는 것으로 알려져 있습니다.
=== 패키지 정보 ===
* 다운로드(HTTP): [[https://www.sudo.ws/dist/sudo-1.9.15p5.tar.gz|sudo-1.9.15p5.tar.gz]]
* MD5 sum: 4166279cb188ecb6641c7a2ba5f68270
* 다운로드 크기: 5.1 MB
* 필요한 예상 디스크 공간: 53 MB (테스트용 18 MB 추가)
* 예상 빌드 시간: 0.2 SBU (병렬 처리=4, 테스트용 0.1 SBU 추가)
=== Sudo 종속성 ===
== 선택 사항 ==
* [[.:Linux-PAM-1.6.0]]
* [[.:MIT Kerberos V5-1.21.2]]
* [[.:OpenLDAP-2.6.7]]
* [[.:Mail Server Software|MTA (sendmail 명령 제공)]]
* [[LinuxFromScratch:RangeOverPackages:AFS]]
* [[LinuxFromScratch:RangeOverPackages:Libaudit]]
* [[LinuxFromScratch:RangeOverPackages:Opie]]
* [[LinuxFromScratch:RangeOverPackages:Sssd]]
==== Sudo 설치 ====
다음과 같이 Sudo를 설치하세요.
./configure --prefix=/usr \
--libexecdir=/usr/lib \
--with-secure-path \
--with-env-editor \
--docdir=/usr/share/doc/sudo-1.9.15p5 \
--with-passprompt="[sudo] password for %p: " &&
make
결과를 테스트하려면 다음과 같이 실행합니다. ''env LC_ALL=C make check |& tee make-check.log''. \\
''grep failed make-check.log''로 결과를 확인합니다.
이제 //''root''// 사용자로
make install
==== 명령 설명 ====
* //--libexecdir=/usr/lib//: 프로그램이 설치되는 위치를 지정합니다. 이 디렉터리에 있는 모든 것은 라이브러리이므로 ''/usr/libexec'' 대신 ''/usr/lib'' 아래에 속합니다.
* ''--with-secure-path'': ''/sbin'' 및 ''/usr/sbin'' 디렉터리를 ''sudo'' 사용시 ''PATH'' 환경 변수에 추가합니다.
* //--with-env-editor//: visudo에 환경 변수 EDITOR를 사용할 수 있도록 합니다.
* //--with-passprompt//: 암호 입력 프롬프트를 설정합니다. ''%p''는 비밀번호를 요청하는 사용자의 이름으로 확장됩니다.
* ''--without-pam'': Linux-PAM이 설치되어 있을 때 Linux-PAM 지원을 빌드하지 않습니다.
* ''--with-all-insults'': 이 스위치는 모든 sudo 비난 셋트를 포함합니다. 사용자가 잘못된 비밀번호를 입력하거나 /etc/sudoers에서 사용하도록 설정한 경우 비난 문구가 인쇄됩니다. 기본적으로 사용하도록 설정하려면 --with-insults를 사용합니다. 다른 스위치로 다양한 비난 세트를 선택할 수 있습니다.
**참고** \\
sudo의 ''configure'' 명령에는 많은 옵션이 있습니다. 전체 목록은 ''configure --help'' 출력에서 확인하세요.
==== sudo 설정하기 ====
=== 설정 파일 ===
/etc/sudoers
=== 설정 정보 ===
''sudoers'' 파일은 상당히 복잡할 수 있습니다. 이 파일은 별칭(기본적으로 변수)과 사용자 지정(누가 무엇을 실행할 수 있는지 지정)의 두 가지 항목으로 구성됩니다. 설치 시 어떤 사용자에게도 권한을 주지 않는 기본 구성이 설치됩니다.
몇 가지 일반적인 구성 변경 사항은 수퍼 유저의 경로를 설정하고 휠 그룹의 구성원이 자신의 자격 증명을 제공한 후 모든 명령을 실행할 수 있도록 하는 것입니다. 다음 명령을 사용하여 //''root''// 사용자로 /''etc/sudoers.d/00-sudo'' 구성 파일을 만듭니다:
cat > /etc/sudoers.d/00-sudo << "EOF"
Defaults secure_path="/usr/sbin:/usr/bin"
%wheel ALL=(ALL) ALL
EOF
**참고** \\
사용자가 한 명뿐인 매우 간단한 상황에서는 ''/etc/sudoers'' 파일을 직접 편집하는 것이 더 쉬울 수 있습니다. 이 경우 ''secure_path'' 항목이 필요하지 않을 수 있으며 ''sudo -E ...''를 사용하여 권한이 없는 사용자의 전체 환경을 권한이 있는 세션으로 가져올 수 있습니다.
''etc/sudoers.d'' 디렉터리의 파일은 문자 정렬 순서로 파싱됩니다. 추가된 파일의 항목이 이전 항목을 덮어쓰지 않도록 주의하세요.
자세한 내용은 ''man sudoers''를 참조하세요.
**참고** \\
Sudo 개발자는 ''**visudo**'' 프로그램을 사용하여 ''sudoers'' 파일을 편집할 것을 적극 권장합니다. 이렇게 하면 구문 분석 및 파일 권한과 같은 기본적인 건전성 검사를 통해 취약한 구성으로 이어질 수 있는 일부 실수를 방지할 수 있습니다.
시스템에 PAM이 설치되어 있는 경우 Sudo는 PAM을 지원하도록 빌드됩니다. 이 경우 //''root''// 사용자로 다음과 같이 PAM 설정 파일을 만드세요.
cat > /etc/pam.d/sudo << "EOF"
# Begin /etc/pam.d/sudo
# include the default auth settings
auth include system-auth
# include the default account settings
account include system-account
# Set default environment variables for the service user
session required pam_env.so
# include system session defaults
session include system-session
# End /etc/pam.d/sudo
EOF
chmod 644 /etc/pam.d/sudo
==== 내용 ====
* **설치된 프로그램:** \\ cvtsudoers, sudo, sudo_logsrvd, sudo_sendlog, sudoedit (symlink), sudoreplay, 및 visudo
* **설치된 라이브러리:** \\ audit_json.so, group_file.so, libsudo_util.so, sudoers.so, sudo_intercept.so, sudo_noexec.so, 및 system_group.so
* **설치된 디렉토리:** \\ /etc/sudoers.d, /usr/lib/sudo, /usr/share/doc/sudo-1.9.15p5, and /var/lib/sudo
=== 간략한 설명 ===
* **cvtsudoers** \\ sudoers 파일 형식을 변환합니다.
* **sudo** \\ ''/etc/sudoers'' 구성 파일에서 허용하는 다른 사용자로 명령을 실행합니다.
* **sudo_logsrvd** \\ sudo 이벤트 및 I/O 로그 서버입니다.
* **sudo_sendlog** \\ sudo I/O 로그를 로그 서버로 보냅니다.
* **sudoedit** \\ 다른 사용자로 편집기를 호출하는 ''-e'' 옵션을 암시하는 ''**sudo**''의 심볼릭 링크입니다.
* **sudoreplay** \\ sudo가 생성한 출력 로그를 재생하거나 나열하는 데 사용됩니다.
* **visudo** \\ 사용하면 ''sudoers'' 파일을 더 안전하게 편집할 수 있습니다.