[Ubuntu] 1 - 패키지 업데이트와 사용자 관리

자몽·2025년 4월 15일
0

Linux

목록 보기
1/2
post-thumbnail

우분투를 공부하면서  단축된 단어들이 너무 많아 잘 기억이 나지 않거나 햇갈렸던 적이 잦았습니다.

익숙해지면 왜 이런 단어들을 사용했는지 이해가 가지만, 처음 사용하는 입장에서 cat, rm, ls 등등의 명령어나 옵션들이 어떤거지? 라는 의문을 갖게 합니다.

하지만 이는 unix의 철학이기도 한데요, unix 네이밍 철학의 원칙은 간결함, 일관성, 조합 가능성을 핵심으로 하기 때문에 사실 핵심적인 몇 가지의 단축된 단어들만 알고 있으면 이를 조합해 다른 네이밍 또한 어느정도 유추가 가능합니다.

따라서 이번에는 우분투의 기본 명령어를 정리하며, 단어들의 유래에 대해 알아보려고 합니다.

패키지 업데이트

sudo apt update

이 명령어는 시스템의 패키지 목록을 업데이트 하라는 뜻입니다.

여기서 sudo, apt는 모두 단축어인데요, 이를 풀이하자면 아래와 같습니다.

sudo: superuser do

apt: advanced package tool

이를 통해 "super user do advanced package tool update" = "슈퍼 유저가 패키지 툴을 업데이트한다" 라고 쉽게 이해할 수 있습니다.

sudo apt upgrade

이 명령어는 시스템의 패키지 목록을 바탕으로 실제 패키지들을 업그레이드 시키라는 뜻입니다.

유저 관리

유저 생성

유저를 생성하는 방법은 2가지가 있습니다.

방법 1(저수준 명령 - 최소한의 정보로 사용자만 등록)

유저 생성

sudo useradd -m testuser

유저 비밀번호 변경

유저 생성 명령이 저수준이였기 때문에, 비밀번호 세팅도 직접 해주어야 합니다.

sudo passwd testuser

방법 2(고수준 명령 - 기본적인 설정을 따라서 생성)

sudo adduser testuser

유저 삭제

sudo userdel [옵션] [사용자명]

단순히 사용자 계정만 제거되고, 홈 디렉토리 등을 직접 수동으로 제거해 주어야 합니다.

옵션 설명

아래 옵션들은 유저 외에도 다른 명령어에서 자주 사용되는 옵션입니다.

  • -r: -r 옵션은 remove의 약자로, 사용자 계정 뿐만이 아닌 그 사용자의 홈 디렉토리를 포함한 관련 파일을 시스템에서 제거해주는 옵션입니다.
  • -f: -f 옵션은 force의 약자로, 로그인 중이거나 프로세스가 있어도 삭제를 진행합니다.

유저 sudo 권한 확인 설정

생성한 유저의 sudo 권한을 확인하고 싶다면 아래 명령어 입력이 필요합니다.

sudo cat /etc/sudoers

sudoerssudo+users가 합쳐진 단어입니다.

catconcatenate의 약어이며, 여러 문자열이나 파일을 연결한다는 뜻을 가지고 있습니다.

연결하다의 뜻을 조금 더 확장하면, 파일들을 순서대로 출력 이라고도 생각할 수 있는데요,
따라서 해당 명령어를 통해 /etc/sudoers 파일의 내용을 출력한다고 이해할 수 있습니다.

출력된 파일 내용에서 가장 아래 부분으로 내려가보면 위 이미지와 같은 내용을 확인할 수 있습니다.

root ALL=(ALL:ALL) ALL<사용자> <호스트>= (<실행할\_사용자>:<실행할\_그룹>) <허용\_명령어>의 구조로
root 사용자에게 sudo를 통해 모든 명령을 실행할 수 있는 권한을 부여하는 설정입니다.

유저 확인하기

유저를 생성했다면, 과연 내가 제대로 유저를 생성했는지, 이전에 어떤 유저들을 생성했는지 확인하고 싶을 수도 있습니다.

이 때 유저 확인을 위해 사용자 계정 정보를 저장하는 파일에 접근할 수 있습니다.

sudo cat /etc/passwd

출력된 파일 내용에서 하단으로 내려가다 보면 앞서서 생성했던 유저들을 확인할 수 있습니다.

유저 변경하기

su [옵션] [사용자명]

suswitch user 의 뜻을 가지고 있습니다.
따라서 명령어를 해석하면, testuser로 유저를 변경하라. 라는 명령이 됩니다.

만약 -, -l, -login 중 하나의 옵션을 사용한다면 변경할 사용자의 환경에서 작업이 가능하도록, 완전한 사용자 변경에 사용됩니다.
만약 이 옵션이 붙어있지 않으면 사용자 권한만 잠시 빌려서 작업하는 용도로 사용됩니다.

유저 그룹 관리하기

리눅스에는 사용자 말고도 그룹 이라는 개념이 있습니다.

리눅스는 여러 사용자가 동시에 하나의 시스템을 사용하는 멀티유저 시스템이기 때문에,
각 유저별로 권한을 부여하고 관리하는 것은 비효율적입니다.

따라서 이러한 점을 보안하기 위해 '그룹'이라는 개념이 생겼습니다.
예시로 개발팀 전체가 하나의 프로젝트 디렉토리에 쓰기 권한을 가지려면, 그룹을 만들어서 권한을 공유하면 됩니다.

유저의 그룹은 아래 명령어를 통해 확인할 수 있습니다.

groups [사용자명]

groups testuser 명령어를 통해 testuser의 groups를 확인하면 testuser, users 가 기본적으로 존재하는 것을 확인할 수 있습니다.

사용자 계정 수정

아래 명령어를 통해 사용자의 계정을 수정할 수 있습니다.

sudo usermod [옵션] [사용자명]

usermoduser + modify로, 사용자 계정 수정이라는 의미를 가지고 있습니다.

사용자 그룹 변경은 이 명령어를 기반으로 많이 쓰이는데요,
보통은 sudo usermod -aG testuser와 같이 -aG 옵션을 함께 사용합니다.

aappend의 약어로 추가 모드라는 뜻이며,
Gsupplementary groups. 즉, 보조 그룹을 뜻합니다.

따라서 사용자의 보조 그룹에 지정된 그룹을 추가해라. 라는 뜻이 됩니다.(-G 만 사용하면 기존 보조 그룹이 덮어씌워집니다.)

여기서 기본 그룹과 보조 그룹을 설명하지 않고 넘어갔는데, 간단히 설명하자면
기본 그룹은 파일 생성 시 자동으로 소속되는 그룹이고(유저 생성 시 보통 사용자명과 동일한 그룹으로 1개 생겨남), 보조 그룹은 권한 공유나 접근 허용을 위해 사용됩니다.

profile
자몽의 기술 블로그. 꾸준하게 공부하기

0개의 댓글