귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!{{소문자 제목}} == 개요 == 유닉스, 리눅스에서 관리자 권한을 사용하거나 획득할 때 사용하는 명령어들입니다. 시스템 관리, 소프트웨어 설치, 설정 변경 등 관리자 권한을 필요로 하는 작업을 수행할 때 사용됩니다. 이러한 명령어들은 시스템 보안에 직접적인 영향을 미치므로 신중하게 사용해야 합니다. == su == '''su'''(Substitute User)는 [[유닉스]]와 [[리눅스]]에서 사용되는 명령어로, 다른 사용자의 권한으로 쉘을 실행할 수 있게 해주는 도구입니다. 이 명령어를 통해 로그인된 사용자가 다른 사용자의 권한을 임시로 얻을 수 있습니다. === 역사 === '''su''' 명령어는 1971년 최초의 유닉스 버전에서부터 존재했던 핵심 시스템 도구 중 하나입니다. Dennis Ritchie와 Ken Thompson이 AT&T Bell 연구소에서 개발한 이 도구는, 초기에는 단순히 사용자를 전환하는 기능만을 제공했습니다. 이후 버클리 소프트웨어 배포판(BSD)에서 다양한 보안 기능과 옵션들이 추가되었습니다. === 상세 사용법 === su 명령어는 다양한 옵션과 함께 사용할 수 있습니다: * '''su''' - 기본적으로 root 사용자로 전환 * '''su username''' - 특정 사용자로 전환 * '''su -''' 또는 '''su -l''' - 로그인 쉘로 전환 (환경 변수 완전 초기화) * '''su -c 'command'''' - 특정 명령어를 다른 사용자 권한으로 실행 ==== 환경 변수 처리 ==== su 명령어는 사용자 전환 시 환경 변수를 다음과 같이 처리합니다: * '''su''' (옵션 없이): 현재 환경 변수 유지 * '''su -''': 새로운 사용자의 환경으로 완전히 전환 * '''su -p''': 현재 환경 변수를 유지하면서 전환 === 보안 고려사항 === su 명령어 사용 시 고려해야 할 주요 보안 사항들: * root 비밀번호 노출 위험 * 권한 남용 가능성 * 감사(audit) 추적의 어려움 * 사용자 전환 기록 관리의 중요성 === 로깅과 감사 === su 명령어의 사용은 시스템 로그에 기록됩니다: * /var/log/auth.log (데비안 계열) * /var/log/secure (레드햇 계열) * 로그에는 사용자 전환 시도, 성공/실패 여부가 기록됩니다 == sudo == '''sudo'''(SuperUser DO)는 관리자 권한이 필요한 명령을 실행할 수 있게 해주는 고급 권한 관리 도구입니다. 1980년대 뉴욕 대학교의 Bob Coggeshall과 Cliff Spencer가 개발했으며, 현재는 Todd Miller가 관리하고 있습니다. === 상세 아키텍처 === sudo는 다음과 같은 구조로 동작합니다: * '''sudoers 설정 파일''': /etc/sudoers에 권한 정책 저장 * '''플러그인 아키텍처''': 정책, 입출력, 감사 등을 처리하는 모듈식 구조 * '''PAM 통합''': 다양한 인증 메커니즘 지원 * '''명령어 별칭''': 자주 사용하는 명령어 그룹 정의 가능 === 고급 설정 옵션 === ==== sudoers 파일 구문 ==== <syntaxhighlight lang="text"> # 사용자 지정 user ALL=(ALL:ALL) ALL # 그룹 지정 %admin ALL=(ALL) ALL # 비밀번호 없이 실행 user ALL=(ALL) NOPASSWD: ALL # 특정 명령어만 허용 user ALL=(ALL) /bin/ls, /bin/cat </syntaxhighlight> ==== 환경 변수 제어 ==== sudo는 보안을 위해 기본적으로 대부분의 환경 변수를 초기화합니다. 다음 변수들은 예외적으로 유지됩니다: * TERM * PATH * HOME * MAIL * SHELL * LOGNAME * USER * USERNAME === 보안 기능 === sudo는 다양한 보안 기능을 제공합니다: * '''명령어 제한''': 사용자별로 실행 가능한 명령어 제한 * '''시간 제한''': 권한 부여의 유효 시간 설정 * '''감사 로깅''': 모든 명령어 실행 기록 * '''비밀번호 정책''': 다양한 인증 방식 지원 === 최신 개발 현황 === ==== sudo 2.0 개발 ==== 2023년부터 시작된 sudo 2.0 개발은 다음과 같은 주요 변화를 포함합니다: * 모듈식 아키텍처 강화 * 실시간 정책 업데이트 지원 * 클라우드 네이티브 환경 지원 강화 * 컨테이너 통합 기능 개선 === CVE-2023-28487 === 2023년에 발견된 취약점으로, 특정 조건에서 권한 상승이 가능한 문제가 있었습니다. 이 취약점은 버전 1.9.13p2에서 패치되었습니다. == doas == 자세한 내용은 [[doas]] 문서를 확인하세요! '''doas'''(do as) 명령어는 OpenBSD에서 개발된 sudo의 대안입니다. 2015년에 처음 도입되었으며, 더 단순하고 안전한 설계를 목표로 합니다. === 특징 === * 간단한 설정 파일 구조 * 작은 코드베이스 * 높은 보안성 * BSD 계열 시스템에서 널리 사용 === 설정 예시 === <syntaxhighlight lang="text"> # /etc/doas.conf permit persist keepenv :wheel permit nopass root as root </syntaxhighlight> == 기타 권한 관리 도구 == === PolicyKit === 데스크톱 환경에서 사용되는 권한 관리 시스템으로, 세밀한 권한 제어가 가능합니다. 자세한 내용은 [[PolicyKit]] 문서를 확인하세요! === SELinux === NSA에서 개발한 강력한 접근 제어 시스템으로, 시스템 전반의 보안을 강화합니다. 자세한 내용은 [[SELinux]] 문서를 확인하세요! == sudo in Rust == 2022년 12월에 시작된 {{깃허브/저장소|memorysafety|sudo-rs}} 프로젝트는 sudo를 [[Rust]]로 재구현하는 작업을 진행 중입니다. 2024년 현재 다음과 같은 진행 상황을 보이고 있습니다: === 주요 개발 현황 === * 기본적인 권한 상승 기능 구현 완료 * sudoers 파일 파서 구현 * PAM 인증 통합 * 기본적인 로깅 시스템 구현 === 향후 계획 === * 플러그인 시스템 구현 * 성능 최적화 * 보안 감사 및 인증 * 기존 sudo와의 완벽한 호환성 확보 === 이점 === * 메모리 안전성 보장 * 현대적인 에러 처리 * 향상된 동시성 처리 * 더 나은 유지보수성 == 설치 == === 데비안, 우분투 기반 === <syntaxhighlight lang="shell"> root@localhost:~# apt update root@localhost:~# apt install sudo </syntaxhighlight> === RHEL/CentOS/Fedora 기반 === <syntaxhighlight lang="shell"> root@localhost:~# dnf install sudo </syntaxhighlight> === Arch Linux === <syntaxhighlight lang="shell"> root@localhost:~# pacman -S sudo </syntaxhighlight> == 모범 사례 == === 보안 권장사항 === * 최소 권한 원칙 준수 * 정기적인 감사 로그 검토 * sudo 버전 최신화 유지 * 사용자별 권한 세분화 === 설정 예시 === ==== 기본적인 보안 설정 ==== <syntaxhighlight lang="text"> Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" Defaults logfile="/var/log/sudo.log" Defaults log_year Defaults passwd_tries=3 Defaults insults </syntaxhighlight> == 각주 == <!--분류--> [[분류:유닉스]] [[분류:리눅스]] [[분류:시스템 관리자 권한]] [[분류:보안]] [[분류:sudo]] [[분류:시스템 관리]] [[분류:권한 관리]] 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림) 이 문서에서 사용한 틀: 틀:깃허브/저장소 (편집) 틀:소문자 제목 (편집)