LINUX(리눅스)

리눅스 사용자 권한 관리

코드라니(CODERANY) 2024. 11. 26. 19:50

리눅스에서 사용자 및 권한 관리는 시스템 보안과 데이터 보호를 위한 중요한 요소입니다.

 

목차

  • 사용자 및 그룹 생성
  • 파일 권한 설정
  •  `sudo` 및 `su` 명령어

 


1. 사용자 및 그룹 생성

리눅스 시스템에서는 여러 사용자가 동시에 작업할 수 있으며, 각 사용자는 서로 다른 권한과 역할을 가질 수 있습니다. 

사용자는 시스템의 자원에 접근하기 위해 필요하며, 그룹은 이러한 사용자들을 효율적으로 관리하는 방법을 제공합니다.

1.1. 사용자 생성
리눅스에서 사용자를 생성하기 위해 `useradd` 명령어를 사용합니다. 이 명령어는 새로운 사용자 계정을 생성하고, 기본 설정을 구성합니다.

sudo useradd -m username  # 새로운 사용자 생성 및 홈 디렉터리 생성

 

- `-m`: 사용자 계정과 함께 홈 디렉터리를 생성합니다.
- `username`: 생성할 사용자 이름입니다.

사용자를 생성한 후에는 비밀번호를 설정해야 합니다. `passwd` 명령어를 사용하여 비밀번호를 설정합니다.
sudo useradd -m username  # 새로운 사용자 생성 및 홈 디렉터리 생성

sudo passwd username  # 사용자 비밀번호 설정

 

 


1.2. 사용자 그룹 생성

sudo groupadd groupname  # 새로운 그룹 생성

 

- `groupname`: 생성할 그룹의 이름입니다.

 

 


1.3. 사용자와 그룹 추가

sudo usermod -aG groupname username  # 사용자에게 그룹 추가


- `-aG`: 사용자를 기존 그룹에 추가할 때 사용합니다.

 

 

1.4. 사용자 및 그룹 확인
현재 시스템에 존재하는 사용자와 그룹을 확인하려면 `/etc/passwd` 파일과 `/etc/group` 파일을 조회할 수 있습니다.

cat /etc/passwd  # 사용자 목록 확인
cat /etc/group   # 그룹 목록 확인

 




2. 파일 권한 설정

리눅스에서는 파일과 디렉터리에 대한 접근 권한을 제어하여 데이터의 보안을 유지합니다. 

파일 권한은 소유자, 그룹, 기타 사용자에게 부여됩니다.

 

 

 

2.1. 파일 권한 종류

리눅스 파일 시스템에서 각 파일과 디렉터리는 다음과 같은 세 가지 기본 권한을 가집니다:

- 읽기 권한 (r): 파일 내용을 읽을 수 있는 권한입니다. 디렉터리의 경우, 디렉터리 내의 파일 목록을 볼 수 있습니다.
- 쓰기 권한 (w): 파일 내용을 수정할 수 있는 권한입니다. 디렉터리의 경우, 해당 디렉터리에 파일을 추가하거나 삭제할 수 있습니다.
- 실행 권한 (x): 파일을 실행할 수 있는 권한입니다. 디렉터리의 경우, 해당 디렉터리에 접근할 수 있는 권한입니다.

 

 


2.2. 권한 표시
리눅스에서 파일이나 디렉터리의 권한은 다음과 같은 형식으로 표시됩니다:

-rwxr-xr--


- 첫 번째 문자: 파일 유형을 나타냅니다. `-`는 일반 파일, `d`는 디렉터리를 의미합니다.
- 다음 세 문자는 소유자의 권한을 나타내며, `rwx`는 읽기, 쓰기, 실행 권한을 가진 것을 의미합니다.
- 다음 세 문자는 그룹의 권한을 나타내며, `r-x`는 읽기와 실행 권한을 가진 것을 의미합니다.
- 마지막 세 문자는 기타 사용자의 권한을 나타내며, `r--`는 읽기 권한만 있는 것을 의미합니다.

 

 


2.3. 권한 변경
리눅스에서는 `chmod` 명령어를 사용하여 파일이나 디렉터리의 권한을 변경할 수 있습니다.

 

2.3.1. 숫자 방식
숫자 방식으로 권한을 설정할 수 있습니다. 각 권한은 다음과 같은 숫자로 표현됩니다:
- 읽기 (r): 4
- 쓰기 (w): 2
- 실행 (x): 1
이 숫자를 합산하여 권한을 설정합니다.

chmod 755 filename  # 소유자에게 모든 권한, 그룹 및 기타 사용자에게 읽기 및 실행 권한 부여

 

2.3.2. 기호 방식
기호 방식을 사용하여 권한을 부여하거나 제거할 수 있습니다.

- `u`: 사용자 (소유자)
- `g`: 그룹
- `o`: 기타 사용자
- `a`: 모두 (user, group, other)

chmod u+x filename  # 소유자에게 실행 권한 추가
chmod go-r filename  # 그룹과 기타 사용자에게 읽기 권한 제거


 2.4. 소유자 및 그룹 변경
파일의 소유자와 그룹을 변경하기 위해 `chown` 명령어를 사용합니다.

chown user:group filename  # 파일의 소유자를 user로, 그룹을 group으로 변경

 

2.4.1. 예시

sudo chown alice:developers myfile.txt  # myfile.txt의 소유자를 alice로, 그룹을 developers로 변경

 

 


2.5. 권한 체크

파일이나 디렉터리의 권한을 확인하려면 `ls -l` 명령어를 사용합니다.

ls -l  # 파일 및 디렉터리 권한 확인

 

 



 3. `sudo` 및 `su` 명령어
리눅스에서 사용자 권한을 관리하는 중요한 명령어인 `sudo`와 `su`에 대해 설명합니다. 이 두 명령어는 시스템 관리 및 보안 측면에서 매우 중요한 역할을 합니다.

3.1. `sudo` 명령어
`sudo`는 "superuser do"의 약자로, 일반 사용자가 관리자 권한으로 명령어를 실행할 수 있도록 해줍니다. 이를 통해 시스템의 특정 작업을 수행할 수 있습니다.

 

3.1.1. 기본 사용법

sudo command  # 관리자 권한으로 명령어 실행


예를 들어, 패키지를 설치할 때:

sudo apt update  # 패키지 목록 업데이트
sudo apt install package_name  # 패키지 설치


2.1.2. `sudo` 설정
`sudo`의 사용 권한은 `/etc/sudoers` 파일에서 관리됩니다. 이 파일을 수정하여 특정 사용자 또는 그룹에게 `sudo` 권한을 부여할 수 있습니다. `visudo` 명령어를 사용하여 안전하게 편집할 수 있습니다.

sudo visudo  # sudoers 파일 편집


3.1.3. `sudo`로 명령어 실행 시 비밀번호
`sudo`를 사용하면 관리자 비밀번호를 입력해야 하며, 일정 시간 동안은 비밀번호 없이도 `sudo`를 사용할 수 있습니다. 기본적으로 15분이 설정되어 있습니다.

3.2. `su` 명령어
`su`는 "substitute user"의 약자로, 다른 사용자 계정으로 전환하는 데 사용됩니다. 기본적으로 루트 사용자로 전환할 수 있습니다.

3.2.1. 기본 사용법

su - username  # 특정 사용자로 전환


루트 사용자로 전환하려면 비밀번호를 입력해야 합니다.

su -  # 루트 사용자로 전환



 3.2.2. `su`와 `sudo`의 차이점
- `su`는 다른 사용자로 전환하며, 해당 사용자의 환경을 로드합니다. 기본적으로 루트 사용자로 전환할 때 비밀번호가 필요합니다.
- `sudo`는 사용자가 특정 명령어를 관리자 권한으로 실행할 수 있도록 해줍니다. 비밀번호는 사용자의 비밀번호를 입력합니다.

3.3. `sudo` 및 `su`의 보안
- 보안: `sudo`는 필요한 최소한의 권한만 부여하여 시스템 보안을 강화합니다. 사용자에게 루트 권한을 부여하지 않고도 필요한 작업을 수행할 수 있게 합니다.
- 로그: `sudo`는 사용자가 실행한 모든 명령어를 로그에 기록하므로, 시스템 관리자나 보안 감사자가 추적할 수 있습니다.

'LINUX(리눅스)' 카테고리의 다른 글

리눅스 파일 시스템의 구조  (0) 2024.11.25
리눅스 기본 명령어  (0) 2024.11.24
리눅스 설치  (1) 2024.11.24
리눅스 소개  (1) 2024.11.24
리눅스 프로그램 목차  (0) 2024.11.24