리눅스에서 비밀번호 없이 sudo를 실행하는 방법

sudoers 정책에 규칙을 추가하면 암호 없이 sudo를 실행할 수 있습니다 NOPASSWD. 하지만 모든 sudo 명령에 대한 암호 입력 프롬프트를 비활성화하는 대신, 필요한 관리자 명령만 실행하도록 허용하는 것이 가장 안전한 방법입니다.

설정을 변경하기 전에 이 설정이 어떤 역할을 하는지 기억하세요. 로그인한 계정을 장악한 사람은 누구나 추가 인증 절차 없이 허용된 명령어를 루트 권한으로 실행할 수 있습니다. sudoers 매뉴얼에서는 이 태그를 해당 명령어에 대한 인증을 제거하는 데 사용한다고 설명합니다 NOPASSWD.

sudo -s 명령어가 암호 없이 sudo 권한을 행사하는 방법이 아닌 이유는 무엇일까요?

기존의 명령어 실행 방식은 sudo -s실제로 암호 없이 sudo를 실행하는 것을 의미하지 않습니다. 해당 -s옵션은 sudo 권한으로 셸을 시작하지만, sudo 정책에 따라 먼저 인증을 요구할 수 있습니다. 또한, sudo가 일반적으로 인증 성공 시 짧은 시간 동안 캐시하기 때문에 추가 인증 프롬프트 없이 여러 명령어가 실행될 수 있습니다. 이는 영구적인 NOPASSWD규칙과는 다릅니다.

암호 없이 특정 sudo 명령어를 실행합니다.

이 예제는 사용자가 alex비밀번호 없이 Nginx를 재시작할 수 있도록 합니다. 사용자 이름, 명령 및 인수는 시스템에 맞는 값으로 바꾸십시오.

1. 사용자 이름과 명령 경로를 확인하세요.

다음 명령어를 일반 사용자 권한으로 실행하세요.

whoami
command -v systemctl

두 번째 명령은 오류를 반환할 수 있습니다 /usr/bin/systemctl. 시스템에서 보고하는 경로를 사용하십시오. sudoers 규칙은 명령을 전체 경로로 식별해야 합니다.

리눅스 터미널에서 whoami 명령어와 -v systemctl 명령어를 실행하여 사용자 이름과 전체 명령어 경로를 확인하는 화면입니다.
sudoers 규칙을 작성하기 전에 계정 이름과 명령의 전체 경로를 확인하십시오.

2. sudoers 전용 드롭인 파일을 생성합니다.

/etc/sudoers직접 편집하는 대신 visudo다음 경로에 있는 파일을 사용하세요 /etc/sudoers.d.

sudo visudo -f /etc/sudoers.d/alex-nopasswd

일반적으로 이 설정 단계에서는 암호를 입력해야 합니다. visudovisudo는 변경 사항을 적용하기 전에 구문을 검사하기 때문에 권장됩니다. 우분투 visudo 설명서에는visudo visudo가 편집 중에 파일을 잠그고 구문 분석 오류를 검사한다고 나와 있습니다 .

비밀번호 없이 sudo 설정을 구성하기 위해 sudo visudo 명령어를 사용하여 Linux 터미널에서 sudoers.d 파일을 엽니다.
visudo기본 정책 파일을 일반 텍스트 편집기로 편집하는 대신 별도의 sudoers 드롭인 파일을 엽니다 .

3. 필요한 가장 좁은 NOPASSWD 규칙을 추가합니다.

Nginx 재시작 예시의 경우, 다음을 추가하세요:

alex ALL=(root) NOPASSWD: /usr/bin/systemctl restart nginx

이 규칙은 지정된 인수를 사용하는 명령만 인증 없이 루트 권한으로 실행할 수 있도록 허용합니다. 여러 특정 명령을 허용하려면 명령 지정을 쉼표로 구분하십시오.

특정 사용자가 모든 sudo 명령 에 대해 인증 절차를 건너뛰도록 하려면 다음과 같은 일반적인 규칙을 따르십시오.

alex ALL=(ALL:ALL) NOPASSWD: ALL

이 방법은 보안성이 훨씬 떨어지며 워크스테이션이나 공유 시스템에서는 최선의 선택이 아닌 경우가 많습니다. 사용자 세션이 손상될 경우 무제한 루트 권한에 직접 접근할 수 있기 때문입니다.

나노 에디터에서 Nginx 재시작을 위한 sudoers NOPASSWD 규칙과 주석 처리된 무제한 예제를 보여줍니다.
명령별 규칙을 적용하는 것이 권한을 부여하는 것보다 더 안전합니다 NOPASSWD: ALL.

4. 규칙을 검증하고 테스트합니다.

편집기를 저장하고 종료한 후 전체 sudoers 정책을 확인하십시오.

sudo visudo -c

이 검사를 건너뛰지 마십시오. visudo문서에 따르면 sudoers 정책은 전체적으로 평가되므로 전체 구성을 확인하면 포함된 파일과 관련된 문제를 발견할 수 있습니다.

그런 다음 캐시된 sudo 자격 증명을 무효화하고 비대화형으로 테스트합니다.

sudo -k
sudo -n /usr/bin/systemctl restart nginx

이 -n옵션은 sudo 명령어에게 암호 입력 프롬프트를 표시하지 않도록 지시합니다. 규칙이 일치하면 암호를 묻지 않고 명령어가 실행됩니다. 인증이 여전히 필요한 경우, sudo는 입력을 기다리지 않고 오류와 함께 종료됩니다. 이 기능은 sudo -n암호 입력 프롬프트에서 절대 멈춰서는 안 되는 스크립트에 특히 유용합니다.

Linux 터미널에서 visudo -c 명령어로 sudo 권한을 검증하고, 캐시된 자격 증명을 삭제하고, sudo -n 명령어로 NOPASSWD 명령을 테스트하는 방법입니다.
정책을 검증하고, 캐시된 자격 증명을 삭제한 다음, sudo -n해당 명령을 사용하여 더 이상 암호가 필요하지 않은지 확인합니다.

암호 없는 sudo 문제 해결

  • 명령어가 여전히 암호를 요구합니다. 사용자 이름, 명령 경로 및 인수가 sudoers 항목과 정확히 일치하는지 확인하십시오.
  • 해당 명령은 허용되지 않습니다.sudo -l 계정에 할당된 권한을 확인하려면 실행하세요 .
  • 드롭인 파일이 무시되는 것 같습니다. 간단한 파일 이름(예: .)을 사용하세요 alex-nopasswd. 일부 sudoers 설정은 /etc/sudoers.d파일 이름에 점(.)이 포함되거나 백업 스타일 접미사로 끝나는 파일을 무시합니다.
  • 변경 사항을 되돌려야 합니다. 드롭인을 다시 열고 sudo visudo -f /etc/sudoers.d/alex-nopasswd, 규칙을 제거하거나 범위를 좁힌 다음 저장하고 sudo visudo -c다시 실행하세요.

모범 사례

sudo 명령어를 암호 없이 사용하려면 엄격하게 제어되는 서비스 작업이나 자동화 작업과 같이 구체적인 필요가 있을 때만 사용하십시오. NOPASSWD: ALL가능한 한 정확한 명령 경로와 인수를 사용하고, sudo 명령어 사용을 피하며, sudoers 규칙은 작업에 필요한 최소한의 요소만 포함하도록 유지하십시오. 이렇게 하면 sudo의 보안 기능을 대부분 유지하면서도 정말 필요한 경우에만 암호 입력 창을 제거할 수 있습니다.

댓글 남기기

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

손실된 파티션과 하드 디스크 데이터를 안전하게 복구하는 방법

TestDisk와 PhotoRec을 사용하여 손실된 파티션과 파일을 복구하는 방법을 알아보세요. 원본 드라이브를 보호하고 안전하게 스캔한 다음 복구된 데이터를 다른 디스크에 저장하세요.

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

리눅스 데스크톱에서 QR 코드를 스캔하는 방법

웹캠이나 이미지 파일을 사용하여 CoBang으로 Linux에서 QR 코드를 스캔하세요. Flatpak 카메라 접근 관련 설치 옵션, 설정 단계 및 문제 해결 방법을 참조하세요.

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하는 방법

Cameractrls를 사용하여 Linux에서 웹캠 설정을 변경하세요. 노출, 색상, 깜빡임 감소 및 기타 지원되는 제어 기능을 조정하고 호환되는 비디오 모드를 확인하세요.

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하는 방법: Toolbox, Tar.gz, Snap 및 AUR

Linux에 PhpStorm을 설치하려면 JetBrains Toolbox 또는 독립 실행형 tar.gz 아카이브를 사용하세요. Snap 및 Arch AUR 옵션도 제공됩니다. Java는 이미 포함되어 있습니다.

리눅스에 Cisco Packet Tracer를 설치하는 방법

리눅스에 Cisco Packet Tracer를 설치하는 방법

Cisco Packet Tracer 9.0.1 for Ubuntu 64비트 버전을 다운로드하고, APT를 사용하여 DEB 패키지를 설치한 다음, 터미널에서 라이선스에 동의하고 로그인하여 실습을 시작하십시오.

XFCE 4에서 듀얼 패널을 설정하는 방법

XFCE 4에서 듀얼 패널을 설정하는 방법

각 디스플레이마다 별도의 XFCE 4 패널을 생성하고, 두 번째 패널을 올바른 출력에 할당하고, 위치와 크기를 조정한 다음, 필요한 실행기와 상태 항목을 추가합니다.

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

리눅스에서 CD-ROM을 ISO 파일로 백업하는 방법

GNOME Disks 또는 dd 명령어를 사용하여 Linux에서 CD-ROM ISO 파일을 생성합니다. 광학 드라이브를 식별하고, 복사 과정을 모니터링하고, 이미지 유효성을 검사하고, 손상된 디스크나 오디오 디스크에 다른 도구가 필요한 경우를 알 수 있습니다.

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

리눅스에서 GIMP를 사용하여 이미지를 잘라내는 방법

GIMP를 사용하여 Linux에서 사진 배경 제거하기: 피사체를 따라 그리고, 선택한 배경을 삭제하고, 투명도를 유지한 다음, 재사용 가능한 PNG 파일로 내보낼 수 있습니다.

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear 무료 다운로드: 공식 설치 가이드

FlightGear를 공식 사이트에서 무료로 다운로드하세요. Windows, macOS, Linux 패키지를 비교하고, 데이터 파일을 설치한 후 첫 비행을 시작하세요.

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

Google Tasks 데스크톱 애플리케이션: 컴퓨터에서 사용하는 방법

브라우저에서 Google Tasks를 열거나, Chrome 바로가기 또는 앱 스타일 실행을 추가하고, 캘린더 및 Gmail을 통해 날짜별 할 일을 관리하세요.