일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 티스토리챌린지
- 오블완
- kotlin coroutine
- Spring
- 정보처리기사 실기 기출문제
- kotlin querydsl
- PETERICA
- APM
- aws
- 코틀린 코루틴의 정석
- minikube
- 기록으로 실력을 쌓자
- AI
- Java
- mysql 튜닝
- 정보처리기사실기 기출문제
- 공부
- Kubernetes
- Elasticsearch
- CKA 기출문제
- Linux
- MySQL
- 정보처리기사 실기
- AWS EKS
- kotlin spring
- kotlin
- CloudWatch
- CKA
- Pinpoint
- IntelliJ
- Today
- Total
피터의 개발이야기
[Linux] sudo 명령어의 -E 옵션 알아보기 본문
ㅁ 들어가며
알면 쉽지만 모르면 어려운 것이 Linux 명령어이다. 보안상 권한이 막혀 고생했는데. 옵션 하나면 해결될 문제였다.
Linux에서 자주 사용되는 sudo 명령어의 -E 옵션에 대해 정리하였다.
ㅁ 트러블 내용
$ sudo dnf update
Rocky Linux 9 - BaseOS 0.0 B/s | 0 B 03:02
Errors during downloading metadata for repository 'baseos':
- Curl error (28): Timeout was reached for https://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=BaseOS-9 [Failed to connect to mirrors.rockylinux.org port 443: Connection timed out]
Error: Failed to download metadata for repo 'baseos': Cannot prepare internal mirrorlist: Curl error (28): Timeout was reached for https://mirrors.rockylinux.org/mirrorlist?arch=x86_64&repo=BaseOS-9 [Failed to connect to mirrors.rockylinux.org port 443: Connection timed out]
linux 명령이 이상하게 동작하지 않았다. 특정 단계에서 시간이 오래 걸리며 시간 초과 에러가 발생하였다. 그래서 Docker로 환경구성하여 세팅 테스트도 진행해 보았다. [Docker] Rocky Linux9 설치 및 실행방법 방법에는 문제가 없어 보였다.
해결 방법으로 프록시 서버를 통해 인터넷 접근이 가능한데, 그 설정은 https_proxy, http_proxy 환경 변수로 정의한다. 하지만 내가 간과한 부분은 환경 변수에 있었다.
sudo bash 명령은 환경 변수 유지 없이 root로 bash를 실행한다. 그러면 프록시 서버 정보인 세팅인 https_proxy, http_proxy 환경 변수가 누락되면서 접속이 되지 않는 문제가 발생한다.
ㅁ sudo -E 옵션이란?
sudo -E 옵션은 "preserve environment"의 약자로, 현재 사용자의 환경 변수를 유지한 채로 root 권한으로 명령을 실행할 수 있게 해준다.
ㅁ 왜 -E 옵션을 사용할까?
일반적으로 sudo를 사용하면 보안상의 이유로 대부분의 환경 변수가 초기화된다. 하지만 때로는 현재 사용자의 환경 변수를 유지한 채로 root 권한이 필요한 작업을 수행해야 할 때가 있다. 이럴 때 -E 옵션이 유용하다. 아니면 절대 할 수 없는 작업이 있다.
ㅁ 사용 예시
sudo -E command
이렇게 사용하면 현재 사용자의 환경 변수를 유지한 채로 command를 root 권한으로 실행할 수 있다.
ㅁ 주의사항
-E 옵션을 사용할 때는 보안에 주의해야 한다. 악의적인 환경 변수 설정이 root 권한으로 실행되는 것을 방지하기 위해, 꼭 필요한 경우에만 사용하는 것이 좋다.
ㅁ 마무리
sudo -E 옵션은 현재 사용자의 환경을 유지하면서 root 권한으로 명령을 실행해야 할 때 매우 유용한 도구이지만 보안을 위해 신중하게 사용해야 한다. 이상으로 sudo -E 옵션에 대한 설명을 마치겠습니다. 리눅스 시스템 관리에 도움이 되셨기를 바랍니다!
ㅁ 함께 보면 좋은 사이트
'Linux' 카테고리의 다른 글
[Linux] dig 명령어 사용법 총정리 (0) | 2024.10.17 |
---|---|
[Linux] 프로세스 백그라운드 실행방법: &, nohub (0) | 2024.10.15 |
traceroute 명령어 사용법 (2) | 2024.10.14 |
[Linux] ssh-keygen 명령어를 사용하여 SSH 키를 생성 (0) | 2024.07.31 |
[linux] find 사용법 (0) | 2024.04.13 |