SW/리눅스

Linux : Sudo 사용 방법, 예제, 명령어

얇은생각 2021. 10. 2. 07:30
반응형

sudo 명령을 사용하면 기본적으로 루트 사용자로 프로그램을 실행할 수 있습니다. 명령줄에서 많은 시간을 보내는 경우 sudo는 자주 사용하는 명령 중 하나입니다.

루트 암호를 모르는 개별 사용자에게 제한된 관리 권한을 부여할 수 있으므로 루트로 로그인하는 대신 sudo를 사용하는 것이 더 안전합니다.

sudo 명령을 사용하는 방법을 설명합니다.

 

 

Linux : Sudo 사용 방법, 예제, 명령어

 

 

Sudo를 설치(sudo 명령을 찾을 수 없음)

sudo 패키지는 대부분의 리눅스 배포에 미리 설치되어 있습니다.

시스템에 sudo 패키지가 설치되어 있는지 확인하려면 콘솔을 열고 sudo를 입력한 다음 Enter 키를 누릅니다. sudo를 설치한 경우 에서는 짧은 도움말 메시지를 표시합니다. 그렇지 않으면 sudo 명령과 같은 것을 찾을 수 없습니다.

sudo가 설치되어 있지 않으면 배포판의 패키지 관리자를 사용하여 쉽게 설치할 수 있습니다.

 

 

 

Ubuntu와 Debian에 Sudo를 설치

apt install sudo

 

 

 

CentOS와 Fedora에 Sudo를 설치

yum install sudo

 

 

 

Sudo에 사용자를 추가

기본적으로 sudo 액세스 권한을 부여하는 대부분의 Linux 배포판에서는 sudo 파일에 정의된 sudo 그룹에 사용자를 추가하는 것만으로 간단합니다. 이 그룹의 구성원은 루트로 모든 명령을 실행할 수 있습니다. 그룹 이름은 배포마다 다를 수 있습니다.

CentOS, Fedora와 같은 RedHat 기반 배포판에서는 sudo 그룹의 이름이 wheel입니다. 사용자를 그룹에 추가하려면 다음을 실행합니다.

usermod -aG wheel username

 

 

Debian, Ubuntu 및 그 파생 모델에서는 sudo 그룹의 구성원에게 sudo 액세스 권한이 부여됩니다.

usermod -aG sudo username

 

 

Ubuntu의 루트 사용자 계정은 기본적으로 보안상의 이유로 사용하지 않도록 설정되며, 사용자는 sudo를 사용하여 시스템 관리 작업을 수행하는 것이 좋습니다. Ubuntu 설치 관리자가 생성한 초기 사용자는 이미 sudo 그룹의 구성원이므로 Ubuntu를 실행하는 경우 로그인한 사용자에게 sudo 권한이 이미 부여되었을 수 있습니다.

특정 사용자가 특정 프로그램만 sudo로 실행하도록 허용하려면 사용자를 sudo 그룹에 추가하는 대신 사용자를 sudo 파일에 추가합니다.

예를 들어, 사용자가 mkdir 명령 assudo만 실행할 수 있도록 리눅스화하려면 다음을 입력합니다.

sudo visudo

 

 

다음 줄을 추가하십시오.

jjeongil  ALL=/bin/mkdir

 

 

대부분의 시스템에서 visudo 명령은 vim 텍스트 편집기를 사용하여 /etc/sudoers 파일을 엽니다. vim을 사용해 본 적이 없는 경우 파일을 저장하는 방법에 대한 기사를 확인하고 vim 편집기를 종료하십시오.

사용자가 암호를 입력하지 않고 sudo 명령을 실행하도록 허용할 수도 있습니다.

linuxize  ALL=(ALL) NOPASSWD: ALL

 

 

 

 

스도의 사용법

sudo 명령의 구문은 다음과 같습니다.

sudo OPTION.. COMMAND

 

 

sudo 명령에는 동작을 제어하는 많은 옵션이 있지만 일반적으로 옵션 없이 가장 기본적인 형태로 사용됩니다.

sudo를 사용하려면 명령 앞에 sudo를 붙이면 됩니다.

sudo command

 

 

여기서 command는 sudo를 사용할 명령입니다.

Sudo는 /etc/sudoers 파일을 읽고 호출하는 사용자에게 sudo assess가 부여되었는지 확인합니다. 세션에서 sudo를 처음 사용할 때 사용자 암호를 입력하라는 메시지가 표시되고 명령이 루트로 실행됩니다.

예를 들어 /root 디렉터리의 모든 파일을 나열하려면 다음을 사용합니다.

sudo ls /root

# [sudo] password for linuxize:
# .  ..  .bashrc	.cache	.config  .local  .profile

 

 

 

암호 시간 초과

기본적으로 sudo는 sudo가 비활성화된 후 5분 후에 암호를 다시 입력하라는 메시지를 표시합니다. sudoers 파일을 편집하여 기본 시간 초과를 변경할 수 있습니다. 

sudo visudo

 

 

아래 줄을 추가하여 기본 시간 초과를 설정합니다. 여기서 10은 분 단위로 지정된 시간 초과입니다.

Defaults  timestamp_timeout=10

 

 

특정 사용자에 대해서만 타임스탬프를 변경하려면 다음 줄을 추가하십시오. 여기서 user_name은 해당 사용자입니다.

Defaults:user_name timestamp_timeout=10

 

 

 

루트 이외의 사용자로 명령을 실행

sudo는 일반 사용자에게 루트 권한을 제공하기 위해서만 사용된다는 잘못된 인식이 있습니다. 실제로 sudo를 사용하여 명령을 임의의 사용자로 실행할 수 있습니다.

-u 옵션을 사용하면 명령을 지정된 사용자로 실행할 수 있습니다.

다음 예에서는 sudo를 사용하여 whoami 명령을 사용자 "리처드"로 실행하고 있습니다.

sudo -u richard whoami

# richard

 

 

whoami 명령은 다음 명령을 실행하는 사용자의 이름을 인쇄합니다.

 

 

 

Sudo와 함께 리디렉션하는 방법

사용자에게 쓰기 권한이 없는 파일로 명령 출력을 리디렉션하려고 하면 "Permission denied" 오류가 발생합니다.

sudo echo "test" > /root/file.txt

# bash: /root/file.txt: Permission denied

 

 

이 문제는 sudo로 지정된 사용자가 아니라 로그인한 사용자 아래에서 출력의 리디렉션이 수행되기 때문에 발생합니다. sudo 명령이 호출되기 전에 리디렉션이 수행됩니다.

한 가지 해결책은 sudosh -c를 사용하여 새 셸을 루트로 호출하는 것입니다.

sudo sh -c 'echo "test" > /root/file.txt'

 

 

또 다른 옵션은 아래와 같이 일반 사용자로서의 출력을 tee 명령에 파이프 방식으로 연결하는 것입니다.

echo "test" | sudo tee /root/file.txt

 

반응형