유틸리티

sudo 없이 shutdown이 가능한 이유

easyfly 2025. 3. 4. 14:21
반응형

일반적으로 shutdown 명령어는 root 권한이 필요하지만, 현재 easyfly 사용자가 직접 shutdown -h now를 실행할 수 있는 이유는 시스템의 특정 설정 또는 권한 관리 방식 때문입니다. 가능한 원인을 분석하면 다음과 같습니다.

일반사용자가 시스템 종료 명령 사용


🔍 1. sudo 없이 shutdown이 가능한 이유

✅ 1) sudo 권한 부여 (sudoers 설정)

  • 시스템 관리자가 sudoers 설정에서 특정 사용자(easyfly)에게 shutdown 명령을 실행할 수 있도록 허용했을 가능성이 높습니다.
  • sudo visudo 명령으로 설정 파일을 확인하면 다음과 같은 설정이 있을 수 있습니다.
easyfly ALL=(ALL) NOPASSWD: /sbin/shutdown
  • 위 설정이 있다면, easyfly 사용자는 비밀번호 입력 없이 shutdown 명령을 실행할 수 있습니다.

✅ 2) systemctl 정책에 의해 허용됨

  • 최신 Linux 배포판(Fedora, Rocky Linux, Ubuntu 등)에서는 systemd-logind 정책에 따라 특정 사용자가 shutdown을 실행할 수 있도록 허용됩니다.
  • logind.conf 설정을 확인하면 다음과 같이 특정 그룹 또는 사용자에게 shutdown 권한을 부여할 수 있습니다.
[Login]
HandlePowerKey=poweroff
  • 이 설정이 적용되면, GUI 또는 터미널에서 특정 사용자가 직접 시스템 종료할 수 있습니다.

✅ 3) shutdown 실행 파일의 권한 변경 (/sbin/shutdown이 일반 사용자에게 실행 권한이 있음)

  • /sbin/shutdown 명령어의 실행 권한이 일반 사용자에게 부여되었을 가능성이 있습니다.
ls -l /sbin/shutdown

출력 예시:

-rwxr-xr-x 1 root root 63536 Jan  1 12:34 /sbin/shutdown
  • 위와 같이 x(실행) 권한이 모든 사용자(others)에게 부여된 경우, 특정 시스템에서는 일반 사용자도 shutdown을 실행할 수 있습니다.

🔍 2. 특정 사용자만 shutdown 가능하게 설정하는 방법

현재 상태에서는 easyfly 사용자가 shutdown을 실행할 수 있지만, 이를 보안적으로 제한하려면 다음과 같이 설정을 변경할 수 있습니다.

🚫 방법 1: sudoers에서 권한 제거

sudo visudo
  • 다음과 같은 항목이 있다면 제거:
easyfly ALL=(ALL) NOPASSWD: /sbin/shutdown

🚫 방법 2: systemd-logind에서 제한

  • /etc/systemd/logind.conf 파일 수정:
[Login]
AllowShutdown=wheel
  • wheel 그룹에 속한 사용자만 shutdown 가능하도록 설정.

🚫 방법 3: chmod 명령으로 shutdown 실행 권한 제한

sudo chmod 750 /sbin/shutdown
  • shutdown을 root 및 특정 그룹 사용자만 실행 가능하게 설정.

📌 정리

현재 easyfly 사용자가 shutdown을 실행할 수 있는 이유는:

  1. sudoers 설정에서 허용 (가능성이 높음)
  2. systemd-logind 정책이 적용됨 (GUI 또는 일반 사용자도 종료 가능하도록 설정)
  3. shutdown 실행 파일의 권한이 변경됨 (일반 사용자 실행 허용됨)

🔹 보안 강화를 위해 특정 사용자만 shutdown을 실행할 수 있도록 제한할 수도 있음.