Linux/리눅스 시스템 관리

01-01-02 루트(root) 계정 관리

easyfly 2022. 2. 6. 08:00
반응형

루트(root) 계정 관리

루트 계정 설명

  1. 설명
    • 시스템 접근에 대한 제한을 받지 않고 완전한 권한을 갖는 사용자로서 수퍼유저라고 불린다. 루트 계정은 제한 없이 어떤 명령어든 사용할 수 있다. 보통 누구나 루트 계정을 갖는 것은 아니고 해당 시스템의 대표 관리자가 루트 계정을 보유한다.
  2. UID
    • 루트 계정의 UID는 0이다.

루트 계정 권한 획득 방법

  1. root 사용자로 로그인
    • 기본적으로 root 사용자는 로그인할 수 없도록 설정되어 있다. 아래와 같이 root의 패스워드를 설정하여 root로 로그인할 수 있다.
    • $ sudo passwd root
    • 루트 계정 비밀번호를 설정한 뒤 su 명령어를 사용하여 root 사용자로 전환하여 로그인할 수 있다. 'su' 명령어만 사용하면 root로 로그인만 되지만, 'su -'를 사용하면 root 사용자의 환경변수도 로드되면서 로그인된다.
    • root 사용자로 로그인되면 시스템의 제약 없이 어떤 작업도 가능하므로 보안에 유의해야 한다.
  2. root 사용자로 임시 전환
    • 일반 사용자이지만 명령어를 실행할 때마다 필요시 root 사용자의 권한으로 실행할 수 있다.
    • root 권한을 필요로 하는 명령어를 실행할 때마다 비밀번호를 입력해야 하고 해당 명령어가 종료되면 root 권한도 사라진다.
    • sudo 명령어로 root 권한으로 해당 명령어를 실행한다.
    • $ sudo cat /etc/passwd
  3. 현재 사용자를 root 사용자로 지정
    • root 사용자의 UID가 0이라는 점에 착안하여 /etc/passwd 파일에서 사용자의 UID를 0으로 수정하면 해당 사용자는 root 권한을 갖게 된다.

루트 계정 관리 방안

  1. root 사용자는 시스템의 초기 환경 설정 시에만 이용하고 SSH(secure shell)를 통해 root 사용자 로그인이 되지 않도록 설정해야 한다.
  2. 시스템상 root 계정은 유일해야 한다. /etc/passwd를 조사하여 UID가 0인 다른 사용자가 없도록 해야 한다.
  3. PAM(Pluggable Authentication Modules)를 통하여 root 사용자로 로그인할 수 없도록 설정한다.
  4. root 계정으로 부득이 로그인하더라도 환경변수 TMOUT를 설정하여 자동 로그아웃되도록 설정한다.
  5. root 계정으로 로그인하는 것은 지양하고 필요시 sudo 명령을 사용하여 명령어를 실행하는 것이 좋다.

루트 패스워드 분실 대응하기

  1. CentOS 6의 방법
    • GRUB Legacy의 부트 메뉴에 진입한다.
    • 커널 매개변수를 추가하기 위해 'a'를 입력한다.
    • 줄 끝에 'single'을 입력하고 엔터한다.
    • 단일 사용자 모드로 부팅하면 passwd 명령어로 비밀번호를 변경한다.
  2. CentOS 7의 방법
    • GRUB2 부트 메뉴에서 환경설정을 변경하기 위해 'e'를 입력한다.
    • 'linux16'의 옵션 중 'ro' 부분을 'rw'로 변경하고 'init=/sysroot/bin/sh'를 추가로 입력한다.
    • 'Ctrl+X'로 단일 사용자 모드로 부팅을 시도한다.
    • 시스템에 접근하기 위한 명령 입력한다.
      • :/# chroot /sysroot
    • root의 패스워드를 변경한다.
      • :/# passwd root
    • selinux 정보를 갱신한다.
      • :/# touch /.autorelabel
    • chroot를 종료한다.
      • :/# exit
    • 시스템을 재부팅한다.
      • :/# reboot
  3. ssh 서비스의 root 로그인 막기
    • sshd_config 파일을 root 권한으로 수정한다.
      • $ sudo vi /etc/ssh/sshd_config
    • 파일 내용 중 PermitRootLogin 항목을 'no'로 설정한다.(주석이 있다면 주석을 해제한다.)
    • sshd 서비스를 재시작한다.
      • $ sudo systemctl restart sshd 또는 sudo service sshd restart
반응형

'Linux > 리눅스 시스템 관리' 카테고리의 다른 글

01-01-06 사용자 환경설정 파일  (0) 2022.02.10
01-01-05 그룹 계정 관리  (0) 2022.02.09
01-01-04 사용자 계정 관리  (0) 2022.02.08
01-01-03 시스템 계정 관리  (0) 2022.02.07
01-01-01 사용자의 분류  (0) 2022.02.05