본문 바로가기

리눅스

sudo 명령어

728x90

sudo 명령어

sudo는 리눅스와 유닉스 시스템에서 특정 명령어를 슈퍼유저(root) 권한으로 실행할 때 사용하는 명령어입니다. 슈퍼유저 권한은 시스템 전반적인 변경이나 관리 작업을 수행하기 위해 필요한 권한입니다. sudo를 사용하여 일시적으로 슈퍼유저 권한을 얻을 수 있으며, 이를 통해 보안과 시스템 안정성을 유지할 수 있습니다.

기본 사용법

sudo 명령어는 다음과 같이 사용합니다.

sudo 명령어

예를 들어, 파일을 root 권한으로 편집하려면 다음과 같이 사용할 수 있습니다.

sudo nano /etc/config.txt

사용 예시

  • 패스워드 입력
    • sudo를 사용할 때는 일반적으로 현재 사용자의 패스워드를 입력해야 합니다.
  • 특정 사용자로 실행
    • sudo를 사용하여 특정 사용자로 명령어를 실행할 수도 있습니다. -u 옵션을 사용합니다.
sudo -u 사용자명 명령어

 

  • 루트 셸 실행
    • sudo -i 명령어를 사용하여 루트 셸을 실행할 수 있습니다.
sudo -i

 

  • 특정 환경 변수 유지
    • sudo를 사용하여 특정 환경 변수를 유지하고 싶을 때는 -E 옵션을 사용합니다.
sudo -E 명령어

 

  • 권한 있는 디렉토리에서 파일 생성
    • 슈퍼유저 권한이 필요한 디렉토리에 파일을 생성하려면 sudo를 사용하여 실행합니다.
sudo echo "내용" > /etc/myfile.txt

 

위의 예시는 sudo 명령어의 사용법과 예시를 보여주는 것입니다. sudo는 시스템 관리 작업을 수행할 때 매우 유용한 도구이지만, 주의해서 사용해야 하며 필요한 경우에만 사용하는 것이 좋습니다.

 

$ sudo
bash: sudo: command not found

sudo: command not found 오류는 sudo 명령어가 현재 사용자의 환경 변수에 포함되어 있지 않거나 시스템에서 설치되지 않은 경우 발생할 수 있습니다. sudo 명령어는 보통 시스템 관리자나 특정 권한을 가진 사용자로 권한을 상승시키는 데 사용되는 중요한 명령어입니다. 이 오류를 해결하기 위해 다음과 같은 단계를 시도해볼 수 있습니다.

728x90

 

1. su 사용: sudo가 사용되지 않는 경우에는 su 명령어를 사용하여 root 사용자로 전환할 수 있습니다.

su -

이 명령은 root 사용자로 전환하며, 패스워드를 입력해야 합니다.

 

2. sudo 경로 확인: sudo 명령어가 설치되어 있는지 확인하고 경로를 확인합니다. 일반적으로 /usr/bin/sudo에 위치합니다.

which sudo

sudo 명령어가 설치되어 있지 않은 경우 시스템 패키지 관리자를 사용하여 설치할 수 있습니다.

 

3. sudo 설치: sudo 명령어가 시스템에 설치되어 있지 않은 경우, 시스템 패키지 관리자를 사용하여 설치할 수 있습니다. 패키지 관리자에 따라 설치 방법이 다를 수 있습니다.

  • CentOS/RHEL 계열
su -c "yum install sudo"
  • Ubuntu/Debian 계열
su -c "apt-get install sudo"

위의 방법 중 하나를 시도하여 sudo 명령어를 정상적으로 사용할 수 있도록 설정할 수 있습니다. 그러나 sudo 명령어가 시스템에서 필요한 중요한 보안 도구이므로 가능한 경우 설치하여 사용하는 것이 좋습니다.

 

  • sudo 설정 파일 확인
vim /etc/sudoers
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification

# User privilege specification
root ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now
  • sudo 설정 파일 편집
    • visudo 명령어로 파일 편집하면 문법체크까지 해준다.
    • user1 ALL=(ALL) NOPASSWD: ALL
visudo
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults specification

# User privilege specification
root ALL=(ALL) ALL

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now

user1 ALL=(ALL) NOPASSWD: ALL
  • user1 계정에 모든 권한을 부여하고 있다.
  • user1 계정으로 로그인 한다.
su - user1
sudo reboot

 

  • vagrant 사용자에게 루트 권한을 부여하므로 사용자 이름을 명시적으로 지정하는 방법
echo 'vagrant ALL=NOPASSWD: ALL' >> /etc/sudoers

 

728x90