[Linux] 사용자와 그룹 관리, 권한 설정 / apt-get
터미널에서 ls -al 명령어를 사용하면 현재 디렉토리에 포함된 모든 파일/디렉토리의 목록과 속성을 볼 수 있다. 좌측에서부터 차례대로 파일 허가권, 링크 수, 소유한 사용자, 소유한 그룹을 의미한다. 리눅스는 다중 사용자 시스템(Multi user system)을 지원하기 때문에, 보안을 위해 파일/디렉토리 별로 사용자 별 접근 권한을 다르게 설정할 수 있다.
사용자
리눅스를 설치하면 기본적으로 root라는 슈퍼 계정이 생긴다. root로는 시스템의 모든 작업을 실행할 수 있다. 필요에 따라 새로운 사용자를 추가하고 권한을 할당할 수 있다.
-
모든 사용자는 하나 이상의 그룹에 소속되어야 한다. 사용자마다 권한을 다르게 부여할 수 있다.
-
사용자 정보가 저장된 경로 :
/etc/passwd
-
그룹 정보가 저장된 경로 :
/etc/group
사용자 생성
-
새로운 사용자 추가 :
adduser {사용자명}
-
사용자 생성 + user ID 지정 :
adduser --uid {id 값} {사용자명}
-
사용자 생성 + 특정 그룹에 포함 :
adduser --gid {group id 값} {사용자명}
-
사용자 생성 + home 디렉토리 지정 :
adduser --home {디렉토리명} {사용자명}
사용자 관리
-
비밀번호 변경 :
passwd {사용자명}
-
사용자 삭제 :
userdel {사용자명}
-
사용자 삭제 + 홈 디렉토리 삭제 :
userdel -r {사용자명}
-
소속된 그룹 확인 :
groups {사용자명}
그룹 생성
-
groupadd {그룹 이름}
그룹 관리
-
그룹 삭제 :
groupdel {그룹 이름}
-
그룹 비밀번호 설정 :
gpasswd {그룹 이름}
-
그룹 사용자 설정 :
gpasswd -{옵션} {사용자명} {그룹 이름}
-
A : 관리자로 지정
-
a : 그룹에 사용자 추가
-
d : 그룹에서 사용자를 제거
-
소유권(ownership)과 허가권(permission)
-
소유권 : 파일/디렉토리의 생성 및 관리 권한
-
허가권 : 파일/디렉토리의 읽기, 쓰기, 실행 권한
소유권 변경
chown 명령어를 사용한다.
-
chown {새사용자명}.{새그룹명} {파일/디렉토리 명}
-
ex.
chown user-a data.txt
: data.txt 파일 소유자를 사용자 user-a로 변경 -
ex.
chown user-a.developer data.txt
: data.txt 파일 소유자를 사용자 user -a와 그룹 developer로 변경
-
허가권 변경
chmod {모드} {파일/디렉토리 명}
명령어를 사용한다. (소유권을 가진 user가 실행 가능)
모드로는 user/group/other 세 가지에 대해 각각 권한을 설정할 수 있다. 설정 가능한 권한은 읽기(r), 쓰기(w), 실행(x) 세가지다. 모드는 크게 숫자 모드와 기호 모드로 나뉜다.
-
숫자 모드 : 숫자를 조합해서 권한을 나타낼 수 있다. 기본적으로 'rw-', 'rwx', 'r--' 이런 식으로 세 자리 단위로 끊어서 보면 된다.
-
ex.
rw-rwx--x
로 권한을 부여할 거라면 사용자에게 읽기와 쓰기, 그룹에게 읽기, 쓰기, 실행, 그 외에게 실행 권한을 주게 된다. 숫자로 합산하면 (400 + 200) + (40 + 20 + 10) + (1)로 671이 된다. 계산 방법은 아래의 표를 참고하면 된다.필드
기호
숫자
사용자
r
400
w
200
x
100
-(없음)
0
그룹
r
40
w
20
x
10
-(없음)
0
기타
r
4
w
2
x
1
-(없음)
0
-
-
기호 모드 : 대상(u, g, o, a)에게 어떤 권한(r, w, x)을 줄건지 기호로 설정할 수 있다.
apt-get
윈도우에서는 새로운 프로그램을 설치하려면 exe 파일을 다운받고 GUI 환경에서 Next 버튼을 계속 클릭해야 하는데, 리눅스에서는 명령어 한줄로 프로그램을 뚝딱 설치할 수 있다. 이럴때 사용하는게 바로 apt-get으로, 우분투에서 새로운 패키지를 설치할 때 사용하는 명령어다. apt-get은 특정한 패키지를 설치할 때, 의존성이 있는 다른 패키지가 있다면 자동으로 함께 설치해준다는 특징이 있다.
기본 명령어
-
패키지 설치 : apt-get -y install {패키지 이름}
-
패키지 목록 업데이트 : apt-get update
-
패키지 삭제 : apt-get remove {패키지 이름}
-
설치할 때 받은 파일 제거 : apt-get clean
사용 가능한 패키지 이름은 링크에서 검색이 가능하다.
그동안 항상 root 계정을 벗어나본 적이 없어서 다중 사용자라는게 가능한지도 몰랐다.
앞으로 쓸 일이 생길지는 잘 모르겠지만.. 사용법을 대강 정리해봤다.
apt-get은 node.js의 npm이나 mac os의 homebrew와 비슷한 역할을 해주는 것 같다.
참고 자료
이것이 우분투 리눅스다 (한빛미디어)
'if (study) > 리눅스' 카테고리의 다른 글
[짤막기록] Ubuntu에서 tasksel로 데스크탑 설치하기 (0) | 2020.04.12 |
---|---|
리눅스 터미널에서 사용하는 기본 명령어 (0) | 2020.03.28 |
윈도우 환경에서 가상머신으로 우분투 사용하기 (0) | 2020.03.28 |