본문 바로가기

리눅스 리뷰

Linux에서 관리자 권한 부여 방법

728x90
반응형

 

Linux에서 관리자 권한을 부여하는 방법은 주로 sudo 명령어를 통해 사용자에게 특정 명령어를 실행할 수 있는 권한을 부여하는 방식입니다. 이 문서에서는 이를 수행하는 상세한 절차와 주의사항을 설명합니다.

1. sudo를 통한 관리자 권한 부여

sudo는 사용자가 루트(root) 권한으로 명령어를 실행할 수 있도록 허용하는 도구입니다. 특정 사용자 또는 그룹에 sudo 권한을 부여하려면 아래 단계를 따르세요.

1.1 사용자에게 sudo 권한 부여

  1. 루트 계정으로 로그인
    su -
    또는 sudo -i를 사용하여 루트 권한을 획득합니다.
  2. 사용자를 sudo 그룹에 추가대부분의 Linux 배포판(Ubuntu, Rocky Linux 등)에서는 sudo 또는 wheel 그룹에 속한 사용자가 관리자 권한을 가집니다.Rocky Linux 또는 CentOS에서는 wheel 그룹을 사용:참고: -a 옵션은 기존 그룹을 유지하면서 추가하는 역할을 합니다.
  3. usermod -aG wheel username
  4. usermod -aG sudo username
  5. 권한 확인변경 사항을 적용하려면 사용자가 로그아웃 후 다시 로그인해야 합니다. 이후 아래 명령어로 확인:또는 사용자가 sudo 명령어를 실행할 수 있는지 테스트:
  6. sudo -l
  7. groups username

1.2 sudoers 파일 직접 수정

더 세밀한 권한 관리가 필요할 경우, /etc/sudoers 파일을 편집하여 특정 사용자나 명령어에 대한 권한을 설정할 수 있습니다.

  1. sudoers 파일 안전하게 편집visudo 명령어를 사용하여 안전하게 파일을 편집:
  2. visudo
  3. 사용자 권한 추가파일 끝에 다음 줄을 추가하여 특정 사용자에게 모든 명령어 실행 권한 부여:비밀번호 입력 없이 sudo 실행 허용:
  4. username ALL=(ALL) NOPASSWD: ALL
  5. username ALL=(ALL) ALL
  6. 특정 명령어만 허용예: /usr/bin/systemctl 명령어만 실행 가능하도록 설정:
  7. username ALL=(ALL) NOPASSWD: /usr/bin/systemctl
  8. 변경 사항 저장visudo는 파일 문법을 자동으로 검사하므로 오류가 없으면 저장됩니다.

2. 루트 계정 직접 사용

루트 계정으로 직접 로그인하여 관리자 권한을 사용하는 방법입니다. 하지만 보안상 권장되지 않으며, 필요한 경우에만 사용하세요.

  1. 루트 계정 활성화일부 배포판에서는 루트 계정의 비밀번호가 기본적으로 설정되어 있지 않을 수 있습니다. 설정 방법:
  2. sudo passwd root
  3. 루트로 전환
    su -
    또는:
    sudo -i
  4. SSH를 통한 루트 로그인 허용 (선택 사항)/etc/ssh/sshd_config 파일에서 PermitRootLogin을 수정:변경 후 SSH 서비스 재시작:경고: 루트 SSH 로그인은 보안 위험이 크므로, 키 기반 인증과 함께 사용하거나 비활성화하는 것이 좋습니다.
  5. systemctl restart sshd
  6. PermitRootLogin yes

3. SELinux와의 상호작용 (Rocky Linux 등)

Rocky Linux와 같은 SELinux 활성화 배포판에서는 추가적인 권한 설정이 필요할 수 있습니다.

  • SELinux 상태 확인
    getenforce
  • sudo 명령어에 대한 SELinux 정책 확인SELinux가 sudo 명령어를 제한할 수 있으므로, 필요 시 정책 추가:
  • semanage permissive -a sudo_t

4. 권한 관리 모범 사례

  • 최소 권한 원칙: 필요한 사용자에게만 최소한의 권한을 부여하세요.
  • 비밀번호 보호: sudo 명령어 실행 시 비밀번호를 요구하도록 설정하여 보안을 강화하세요.
  • 로그 모니터링: /var/log/secure 또는 /var/log/auth.log를 확인하여 sudo 사용 내역을 모니터링하세요.
  • 루트 계정 최소화: 루트 계정 직접 사용 대신 sudo를 사용하세요.

5. 문제 해결

  • "user is not in the sudoers file" 오류사용자가 sudo 그룹에 없거나 sudoers 파일에 정의되지 않은 경우 발생. 위의 1.1 또는 1.2 단계를 따라 권한 추가.
  • SELinux 관련 오류journalctl -xe로 SELinux 관련 로그를 확인하고, 필요 시 정책 수정.
  • SSH 루트 로그인 실패sshd_config 설정과 방화벽 포트(기본 22번)를 확인하세요.

6. 추가 참고 자료

반응형