리눅스에서 사용자 및 권한 관리는 시스템 보안과 데이터 보호를 위한 중요한 요소입니다.
목차
- 사용자 및 그룹 생성
- 파일 권한 설정
- `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 |