#1. 사용자 및 그룹 관리
1. 리눅스 사용자의 종류
- 리눅스는 다중 사용자용 운영체제이다.
- 사용자 계정을 임의로 생성하고 삭제할 수 있다.
1) 슈퍼유저 (Super User)
- 슈퍼유저는 고정된 아이디(root)를 갖기 때문에 root라는 아이디가 슈퍼유저라는 의미로 사용되기도 한다.
- 운영체제의 모든 권한을 갖기 때문에 root로 직접 로그인은 권장되지 않는다.
- 일반 사용자가 root의 권한을 빌려서 사용하는 것이 좋다.
2) 시스템 내부 사용자
- 시스템내부 사용자는 운영체제의 각종 기능들을 관리할 목적으로 존재하기 때문에 관리자(사람)이 직접적으로 사용하지는 않는다.
- 시스템 내부 사용자의 권한은 root 계정의 권한에도 포함되어 있다.
- 즉, 시스템 내부 사용자가 할 수 있는 것은 root 계정에서도 할 수 있다.
3) 일반 사용자
- 설치과정에서 구성된 아이디가 일반 사용자이다.
- 리눅스 운영체제에 로그인하여 사용할 수 있는 사용자를 뜻한다.
- 대부분의 경우 시스템 관리를 목적으로 하더라도 일반 사용자로 로그인한다.
- su 명령어를 사용하여 일반 사용자가 일시적을 root로 로그인 할 수 있다.
- 또는 sudo 라는 명령어를 사용하여 1회에 한해서 root 권한을 사용 할 수 있다.
- 개발자가 구현한 프로그램을 구동하기 위한 용도로 사용된다.
2. 사용자 그룹 관리
1) 사용자 그룹이란?
- 사용자를 효과적으로 관리하기 위해서 시스템 내의 사용자들을 그룹으로 묶어 일괄적으로 관리하기 위한 목적이다.
- 사용자 그룹을 관리하기 위한 기능은 슈퍼유저만 사용 가능하다.
- 사용자 그룹별로 권한을 부여하여 시스템 접근을 제한할 수 있다.
2) 설정 파일
- 시용자 및 그룹 관리를 위한 설정 파일들
- 리눅스를 운영하면서 이 파일들을 직접적으로 다루는 일은 드물다. (파일을 편집하는 명령어가 따로 있음)
사용자 및 그룹 정보를 저장하는 시스템 파일 | |
/etc/passed 파일 | 사용자 계정 정보 파일 |
/etc/shadow 파일 | 사용자 암호 파일 |
/etc/group 파일 | 사용자 그룹이 저장되어 있는 파일 |
※ 시스템 파일이므로 함부로 수정하게 되면 로그인 할 수 없는 경우가 발생 할 수 있다.
3) /etc/passwd 파일
- 사용자의 계정 정보 파일
- 이 파일은 root 권한으로만 접근 가능하다.
- 명령어 앞에 sudo를 붙여서 접근할 수 있고, root 비밀번호가 설정되어 있으면 su 명령어 만으로 접근할 수 있다.
- 이 파일에 명시된 하나의 행이 한 명의 사용자를 의미한다.
※ 사용자 정보에 따른 각 항목의 의미
chanco:x:1000:1000:chanCo:/home/chanco:/usr/bin/zsh
아이디:비밀번호:사용자번호:그룹번호:설명문:홈디렉토리:쉘
내용 | 설명 |
chanco | 사용자 id로 로그인시 사용하는 사용자 이름 |
x | 암호는 /etc/shadow 파일에 저장됨 |
1000 | 사용자 번호 |
1000 | 사용자 그룹번호 |
/home/chanco | 홈 디렉토리 |
/usr/bin/zsh | 사용 쉘(shell) |
- 위 내용은 사용자 환경 설정에 따라 다름
- 비밀번호는 shadow 파일에 의해 별도로 관리 됨으로 항상 x로 표시된다.
4) /etc/shadow 파일
- 각 사용자별 로그인 비밀번호가 별도로 저장되어 있는 파일
- 암호는 별도의 함호화 알고리즘에 의해 알아보지 못하도록 저장되어 있다.
5) /etc/group 파일
- 사용자 그룹 정보가 저장되어 있는 파일
3. 사용자 정보 보기 명령어
1) 명령어
명령어 | 설명 |
whoami | 로그인한 사용자 id 확인 |
who am i | 로그인 정보 |
id | 로그인한 사용자의 id 정보 |
groups | 로그인한 사용자 그룹 확인 |
pwd | 현재 디렉토리 확인 |
2) 사용 예시
4. 사용자 계정 관리 명령어
1) 사용자 그룹 추가하기
- root 계정 외에서 사용하려면 sudo 명령어를 사용해야 한다.
groupadd [-g 그룹번호] 그룹명
# 그룹번호를 지정하지 않을 경우 자동으로 부여된다.
groupadd example
또는
groupadd -g 2001 example
root 계정 외 에서 사용 사용자 그룹을 생성하면 다시 시도하라는 메세지가 나온다.
그럴때는 앞에 sudo 명령어를 붙여서 사용하면된다.
2) 사용자 그룹 삭제하기
groupdel 그룹명
3) 사용자 그룹 생성/삭제 결과 확인
- vi 에디터로 group 파일을 열어 전체 내용을 확인할 수 있지만, grep 명령어로 group 파일의 일부에서 원하는 내용이 존재하는지 검색하는 방법도 사용할 수 있다.
grep 검색어 검색할파일경로
4) 사용자 계정 생성하기
- 사용자 계정 생성
- 기본 설정 상태로 사용자 계정을 만드는 명령어
- 이 또한 root 계정이 아니라면 sudo 명령어를 사용해야 한다.
useradd [-g 그룹명] 사용자명
- 생성된 사용자의 비밀번호 설정
passwd 사용자명
- 사용자를 그룹에 연결하기
- useradd 명령을 사용하면서 -g 옵션을 명시하지 않았다면 아래 명령을 통해서 그룹에 연결 할 수 있다.
groupmod -g 그룹명 사용자명
- 사용자 계정 삭제
userdel 사용자아이디
- passwd 파일과 shadow 파일의 내용은 삭제되지만, 홈 디렉토리는 삭제되지 않는다.
- 그래서 아래 명령어로 홈 디렉토리를 삭제해줘야 한다.
rm -rf /home/사용자계정명
※ 주의!
rm -rf 명령어는 상당히 위험한 명령어이다. 묻지도 따지지도 않고 바로 즉시 삭제해버리기 때문에 사용시 주의가 필요하다. 안전하게 삭제하려면 rm -r을 사용하면 된다. 이 명령어는 하나하나 물어보고 삭제한다.
"rm -rf / " 는 최상의 디렉토리 밑의 모든 내용을 즉시 삭제한다.. 즉, 윈도우로 예를 들자면 C드라이브 전체를 삭제한것과 같은 말이다.
5. 사용자 계정 전환을 위한 su 명령어
1) su 명령어란?
- 로그아웃 하지 않고, 사용자 계정을 전환하는 명령어이다.
- 일반 사용자가 슈퍼유저로 전환하여 작업하는 경우
- 슈퍼유저가 일반 사용자로 전환하여 작업하는 경우
2) root 계정에 접속(비민번호 설정)
- root 계정에 접속하면 시스템의 모든 권한을 사용할 수 있다.
- 하지만 그만큼 잘 못 건드렸다가는 문제가 생긴다.
- su 명령어를 사용해서 root 계정에서 명령어 사용하는 것과 sudo를 사용해서 명령어를 사용하는 것은 동일 하기 때문에 1회성으로 사용 가능한 sudo가 더 안전하다고 볼 수 있다.
3) 사용자 전환 명령어
명령어 | 설명 |
su | 현재 작업중인 디렉토리에 그대로 머무른 상태에서 root 계정으로 전환 |
su - | root 계정으로 전환한다. root의 홈 디렉토리 위치에서 새로 시작. (/root) |
su 사용자계정명 | 현재 작업중인 디렉토리에 그대로 머무른 상태에서 지정된 사용자 계정으로 전환 |
su - 사용자계정명 | 지정된 사용자의 홈 디렉토리 위치에서 새롭게 시작하는 상태로 사용자 전환 |
6. 파일 접근 권한 관리
1) 접근권한 (숫자사용)
- r = 4
- w = 2
- x = 1
- 권한이 있는곳: 1 / 권한이 없는 곳: 0
권한 | r w - | r - x | r - - |
2진수 | 1 1 0 | 1 0 1 | 1 0 0 |
10진수 | 6 | 5 | 4 |
2) 파일 접근 권한 변경
chmod 접근권한숫자 사용자명
# ex)
chmod 654 test
3) 파일 소유자 변경
- chown: 소유자 변경 명령
- chgrp: 소유그룹 변경 명령
'국비수업 > Linux' 카테고리의 다른 글
[Linux] 프로세스 관리 (0) | 2022.07.20 |
---|---|
[Linux] 파일 다운로드, 압축하기 (0) | 2022.07.20 |
[Linux] 파일 및 디렉토리 와 명령어 (0) | 2022.07.18 |
[Linux] vi 편집기 (0) | 2022.07.18 |
[Linux] Linux(Ubuntu) 시스템 사용하기 (0) | 2022.07.18 |