사용자와 그룹
리눅스에서 사용자와 그룹은 시스템 보안과 접근 제어의 중요한 요소이다. 리눅스는 다중 사용자 운영 체제로, 여러 사용자가 동시에 시스템에 접근할 수 있기 때문에 사용자와 그룹을 설정하여 각 사용자별로 권한을 제어할 수 있다.
슈퍼 유저(super user = root = system administrator)
리눅스에서 슈퍼유저(Superuser) 또는 루트(root) 권한은 시스템의 최상위 권한을 갖는 계정을 의미한다.
일반적으로 root 사용자라고 불리며, 이 계정은 모든 권한을 소유하여 시스템의 모든 파일, 디렉토리, 설정을 수정할 수 있다.
루트 권한은 관리자에게만 허용되는 권한으로, 시스템 유지 및 보수에 필수적이다.
<슈퍼유저(Superuser)란?>
슈퍼유저는 리눅스 시스템에서 모든 작업을 수행할 수 있는 최고 권한을 가진 사용자로, 일반적으로 root 계정이 이 역할을 담당한다.
시스템에서 발생하는 모든 제한을 무시할 수 있기 때문에, 파일 삭제, 시스템 설정 변경, 사용자 계정 생성 및 삭제, 네트워크 설정 변경, 소프트웨어 설치 등 다양한 작업을 수행할 수 있다.
슈퍼유저는 UID 0을 가지며, 이는 모든 시스템 리소스에 접근할 수 있는 특별한 사용자임을 의미한다.
<루트(root) 계정>
루트 계정은 리눅스 시스템에서 기본으로 제공되는 슈퍼유저 계정으로, 시스템 전체에 대해 전권을 행사할 수 있는 계정이다.
일반 사용자 계정과 달리, 루트 계정은 모든 파일을 읽고, 쓰고, 실행할 수 있으며, 이는 보안 측면에서 매우 중요한 역할을 한다.
루트 계정은 실수로 시스템을 손상시킬 위험이 크므로, 가능한 루트 권한이 필요한 작업 외에는 사용하지 않는 것이 권장된다.
<루트 권한으로의 접근 방법>
리눅스 시스템에서는 보안 강화와 실수 방지를 위해 일반 사용자로 시스템을 사용하고, 필요한 경우에만 일시적으로 루트 권한을 사용하는 방식이 일반적이다.
- sudo : 일반 사용자가 sudo 명령어를 사용하면, 일시적으로 루트 권한을 획득하여 필요한 작업을 수행할 수 있다. 이는 시스템 보안을 강화하고 실수를 줄이는 효과가 있다. 예를 들어, sudo apt update 명령어로 패키지 목록을 업데이트할 수 있다.
- su 명령어: su 명령어를 사용하면 현재 세션을 루트 사용자로 전환할 수 있다.
su
- su - : root 권한으로 전환할 뿐만 아니라, root 사용자의 환경 변수까지 모두 불러온다. 따라서 완전히 root 사용자로 로그인한 것과 동일한 환경이 제공된다.
su -
사용자(User)
사용자는 시스템에 로그인할 수 있는 개별 계정을 의미하며, 각 사용자는 고유한 사용자 ID(UID)를 가진다.
사용자는 파일과 프로세스를 생성하고, 소유하며, 이를 통해 권한을 제어할 수 있다. 예를 들어, 사용자 A가 생성한 파일은 기본적으로 사용자 A에게 소유권이 있으며, 다른 사용자는 접근 권한이 제한될 수 있다.
리눅스에서 사용자 관리를 위한 명령어로는 useradd, usermod, userdel 등이 있으며, 사용자 목록은 /etc/passwd 파일에서 확인할 수 있다.
사용자 관련 주요 파일
- /etc/passwd: 모든 사용자 정보가 포함된 파일이다. 각 사용자에 대한 사용자 이름, UID, 홈 디렉토리, 기본 셸 등의 정보가 담겨 있다.
- /etc/shadow: 사용자 비밀번호와 관련된 정보를 저장하는 파일이다. 패스워드는 암호화되어 있으며, 비밀번호의 만료 날짜와 같은 추가 정보도 포함된다.
사용자 추가
sudo adduser
위 명령어로 사용자를 추가할 수 있다.
사용자 전환
su 계정명
su - 계정명 # 사용자 전환은 물론 환경변수까지 전환
위 명령어로 사용자를 전환할 수 있다.
원래 계정으로 돌아가려면 exit 명령어를 입력하면 된다.
cat /etc/passwd
위 명령어로 사용자 정보를 확인해보면 아래와 같다.
사용자 제거
sudo deluser
위 명령어로 사용자를 제거할 수 있다.
그룹(Group)
그룹은 여러 사용자를 하나의 단위로 묶어 공통된 권한을 부여할 수 있는 기능을 제공한다. 그룹에 속한 사용자들은 해당 그룹의 권한을 공유할 수 있다.
그룹 ID(GID)는 각 그룹마다 고유하게 부여되며, 하나의 사용자에게 여러 그룹에 대한 접근 권한을 부여할 수 있다.
그룹을 사용하면 관리자가 여러 사용자에게 동시에 동일한 권한을 부여하거나 제거할 수 있어 권한 관리가 효율적이다.
리눅스에서 그룹 관리를 위한 명령어로는 groupadd, groupmod, groupdel 등이 있으며, 그룹 목록은 /etc/group 파일에서 확인할 수 있다.
새로운 그룹 추가
sudo addgroup 그룹명
사용자를 그룹에 추가
sudo usermod -aG 그룹명 사용자명
그룹 관련 주요 파일
- /etc/group: 시스템에 존재하는 모든 그룹 정보가 저장된 파일이다. 그룹 이름, GID, 그룹 멤버 등의 정보를 포함하고 있다.
파일 소유권
파일 소유권(Ownership)
리눅스에서 파일 소유권과 파일 권한은 파일 접근과 수정 권한을 제어하는 중요한 요소이다.
파일 소유권과 권한을 통해 시스템 내 파일과 디렉토리에 대한 접근을 통제하며, 보안을 강화할 수 있다.
리눅스 시스템의 파일은 다음 세 가지 소유권을 가진다.
- 소유자(Owner): 파일을 생성한 사용자로, 파일에 대한 기본 권한을 가진다.
- 그룹(Group): 파일 소유자와 같은 그룹에 속한 사용자를 나타낸다. 그룹에 속한 모든 사용자가 이 파일에 대한 지정된 권한을 가진다.
- 기타(Others): 소유자와 그룹에 속하지 않는 나머지 모든 사용자를 의미하며, 기타 사용자에게도 권한을 설정할 수 있다.
파일 권한(Permissions)
리눅스의 파일 권한은 읽기(read), 쓰기(write), 실행(execute) 세 가지 권한으로 구성된다.
각 권한은 파일의 소유자(owner), 그룹(group), 기타 사용자(others)에 대해 개별적으로 설정할 수 있다.
- - or d : 일반 파일일 경우 -로 표기되고, 디렉토리일 경우 d로 표시된다.
- 읽기 권한(r): 파일 내용을 읽을 수 있는 권한이다.
- 쓰기 권한(w): 파일 내용을 수정할 수 있는 권한이다. 디렉토리일 경우, 디렉토리 내 파일을 추가하거나 삭제할 수 있다.
- 실행 권한(x): 파일을 실행할 수 있는 권한이다. 스크립트나 실행 파일에 필요한 권한이며, 디렉토리일 경우 디렉토리 내부를 탐색할 수 있다.
파일 표기 권한은 아래와 같이 두 가지 방법으로 설정할 수 있다.
- 8진 표기법
- 의미 표기법(symbolic form)
8진 표기법
파일 권한이 777이라는 것은 소유자, 같은 그룹의 사용자, 기타 사용자에 대해 읽기, 쓰기, 실행권한이 모두 있다는 것이다.
chmod 777 [파일명]
위 명령어는 파일의 권한을 777로 바꾸는 명령어이다.
파일 권한이 644라는 것은 소유자는 읽기, 쓰기 권한이 있고, 같은 그룹의 사용자는 읽기, 기타 사용자 또한 읽기 권한만 있다는 것이다.
chmod 644 [파일명]
위 명령어는 파일의 권한을 644로 바꾸는 명령어이다.
chmod를 사용해서 해당 디렉토리 하위에 있는 모든 파일 및 디렉토리의 권한을 변경하고 싶다면 -r 옵션을 사용하면 된다.
예를 들어 오너(소유자)에게만 하위 디렉토리에 있는 것들을 읽기,쓰기,실행 권한을 주고 싶다면 아래와 같이 사용한다.
chmod 644 [파일명]
의미 표기법
8진 표기법과 달리 의미 표기법은 기존의 권한에 대해 상대적인 개념이다.
기존의 권한에 대해 특정 권한을 추가하거나 삭제한다는 측면에서 8진 표기법과 다르다.
- ugoa : 어떤 그룹에다가
- +-rwx : 어떤 권한을 넣을지 뺄지
chmod go+rx [파일명]
위 명령어는 기존 권한에 대해 읽기 및 실행 권한을 같은 그룹과 기타 사용자에 추가한다는 명령어이다.
'컴퓨터 구조 & 운영체제 > Linux' 카테고리의 다른 글
[Linux] 프로세스와 시그널 (0) | 2024.11.08 |
---|---|
[Linux] 스크립트 작성 및 실행 (0) | 2024.11.07 |
[Linux] 파일 시스템(File System) (3) | 2024.11.06 |
[Linux] 리눅스 쉘 기본 명령어 (3) | 2024.11.04 |
[Linux / Ubuntu] VMware Tools 수동 설치 (0) | 2024.03.28 |