[Born2beroot] 1. sudo 설치 및 설정

Yejin Kim·2022년 3월 22일
0

42 cursus

목록 보기
1/20

Debian 설치 가이드
https://evergreen-reaper-848.notion.site/Install-Debian-0efdbc47bb3842feb2800705e0916db0

💡 sudo 란?

<superuser do> 에서 유래
유닉스 및 유닉스 계열 운영 체제에서, 다른 사용자의 보안 권한, 보통 슈퍼유저로서 프로그램을 구동할 수 있도록 하는 프로그램


⚙︎ sudo 설치

1. 명령어 su - 를 통해 root 계정으로 이동한다.

  • su는 substitute user의 줄임말
    현 사용자를 로그아웃하지 않고, 다른 사용자의 권한을 획득할 때 사용
  • '-'는 -l, --login 옵션과 동일한 명령어
    login 옵션을 이용하면 환경변수가 정리되고, 변경한 사용자 계정의 홈 디렉토리로 이동하게 된다.

2. sudo 설치 여부 확인 및 설치

dpkg -l sudo 로 sudo의 설치여부를 확인하고,
설치되어있지 않다면 apt install sudo 로 설치 진행

🔨 패키지 관리 툴

  • APT
    Advanced Packaging Tool, APT
    데비안 GNU/리눅스 계열 배포판에서 소프트웨어를 설치하고 제거하는 일을 함
    • apt
    • apt-get
  • dpkg
    데비안 패키지 관리 시스템의 기초가 되는 소프트웨어
    APT보다 낮은 수준에서 작업이 수행됨
    deb패키지(.deb)의 설치 삭제를 위해 사용됨
    보통 APT 명령만으로 충분하지만 시스템에 있는 특정 파일이 어떤 패키지에 포함되는 지 등의 확인 작업 수행하기 위해 필요
    • dpkg -l : 설치된 패키지 목록을 보여줌
    • dpkg -L [패키지명] : 특정 패키지에 설치된 모든 파일을 볼 수 있음
    • dpkg -s [패키지명] : 주어진 패키지의 상태를 봄
  • aptitude
    주요 패키지 작업 과정을 자동화하여 가능한 쉽게 작업할 수 있도록 한 high-level pakage manager

⚙︎ sudo 설정

sudo 설정은 sudoers 파일을 통해 진행

📁 sudoers 파일
sudo 명령어를 사용할 수 있는 계정을 관리하는 설정 파일
설정파일이므로 위치는 /etc 폴더 아래에 존재
기본적으로 /etc/sudoers 파일은 쓰기 권한이 없으므로 visudo를 통해 파일을 편집해야함

visudo를 입력하면 다음과 같은 화면이 나옴
서브젝트에서 요구한 대로 secure_path를 다음과 같이 수정한다

🔐secure_path
Secure Path는 sudo 명령을 실행할 때 사용하는 가상 쉘의 PATH 정보를 설정한다.
이를 풀어서 설명하자면 sudo 명령 실행 시 현재 계정의 쉘이 아닌 새로운 쉘을 생성하고 그 안에서 명령을 실행하는데, 이 명령을 찾을 경로를 나열한 환경 변수 PATH 값이 secure_path다!
sudo 명령을 실행하는 명령은 현재 계정의 쉘 환경도, 대신 실행하는 계정의 쉘 환경도 아닌 특별히 정의된 제 3의 쉘 환경으로 이는 샌드박스 형태로 실행된다 !
secure path 기능이 트로이목마 해킹 공격에 대한 1차적인 방어 기능을 한다.
즉, 사용자의 부주의로 인해 현재 계정의 PATH에 악의적 경로가 포함된 경우 sudo를 통해 전체 시스템이 해킹될 수 있는데 이를 방지할 수 있다.

그리고 Defaults를 요구사항에 맞게 다음과 같이 추가한다.

  • passwd_tries
    sudo인증 시 비밀번호가 틀렸을 때 제공하는 기회의 횟수 설정
  • badpass_message
    sudo 권한 사용 중 비밀번호가 틀렸을 때 나오는 오류 메세지 설정
  • log_input, log_output
    sudo 권한을 이용하여 수행한 명령어의 입출력을 모두 기록
  • iolog_dir
    log가 기록될 위치 설정
  • requiretty
    TTY모드에서만 실행될 수 있도록 설정

    TTY (teletypewriter)
    tty는 리눅스 디바이스 드라이브 중 콘솔이나 터미널을 의미
    현 프로젝트에서는 가상 환경의 터미널이라고 할 수 있음

모든 설정이 완료되면 ctrl + X를 누르면 다음과 같은 창이 뜬다.
해당 화면에서 Y 입력하고
File Name에서 .tmp를 지운 뒤 저장하면 끝 !

🌐 그룹 설정

groupadd <그룹명>

그룹을 추가한다.
위와 같이 user42라는 그룹을 추가할 수 있다.

usermod

명령어 usermod를 통해 사용자 계정에 관련된 다양한 정보를 변경할 수 있음.

usermod는 관리자, 즉 root 계정만이 사용할 수 있음.
이미 존재하는 사용자에 대해서 처리가 가능\

  • usermod -l <새로운계정> <기존계정>
    login의 약자인 -l 옵션
    로그인 아이디를 변경함.
    이 때, 홈 디렉터리 명도 바뀐 계정명에 맞게 변경해줘야 하므로 -d -m 옵션도 같이 사용해줘야 함
    d 옵션 : 사용자의 홈 디렉터리를 변경
    m 옵션 : 홈 디렉터리 변경 시 기존에 사용하던 파일 및 디렉터리를 옮겨줌
  • usermod -aG <그룹명> <사용자명>
    해당 그룹에 유저를 추가
    그룹이 여러 개인 경우, 공백없이 콤마(,)로 구분
    a 옵션은 G옵션과 같이 사용하는 옵션으로 기존의 2차 그룹 이외에 추가로 2차 그룹을 지정할 때 사용

    만약 a 옵션을 붙이지 않고 G만 사용시, gid그룹 제외하고 명령어에 없는 그룹에서는 탈퇴처리가 됨.
    a 옵션을 함께 쓰면 나머지 그룹에 대해서도 탈퇴처리하지 않음

  • usermod -g <그룹명> <사용자명>
    그룹이 primary group이 되도록 한다.

유저 추가하는 방법

  • adduser <사용자명>

유저 삭제하는 방법

  • deluser <사용자명>

그룹 추가하는 방법

  • addgroup <그룹명>

그룹 삭제하는 방법

  • delgroup <그룹명>

그룹 리스트 확인하는 방법

  • cat /etc/group
    group list가 출력됨
    최근 추가된 그룹일수록 마지막에 출력된다

lslogins : id 목록을 확인할 수 있음
id <유저명> : 해당 유저가 포함된 그룹들 정보를 출력


참고 사이트

profile
The World Is My Oyster 🌏

0개의 댓글