본문 바로가기

리눅스

[리눅스] 리눅스 사용자 관리 시스템

728x90

1. 다중 사용자 시스템

 

리눅스 서버 1대에 여러 사용자가 동시에 접속할 수 있는데, 이를 다중 사용자 시스템이라 합니다.

리눅스의 사용자 시스템은 다음과 같은 특징이 있습니다.

 

1. 슈퍼 유저에게는 사용자 생성 권한을 포함해, 모든 작업을 실행할 수 있는 권한이 주어집니다.

2. 모든 사용자는 혼자서 존재하는 것이 아니라 하나 이상의 그룹에 소속되어야 합니다.

 

현재 우리가 사용하는 ubuntu 사용자를 확인해 봅시다.

 

 

첫번째는 사용자 이름을 뜻하고 두번째는 비밀번호를 뜻합니다.

비밀번호는 /etc/shadow파일에 비밀번호가 지정되어 있으므로 x로 뜹니다.

세번째와 네번째는 각각 사용자 ID와 그룹의 ID를 뜻합니다.

다섯 번째는 추가 정보로 이름, 방 번호, 직장 전화번호 등등으로 생략되어있습니다.

여섯 번째는 사용자의 홈 디렉터리를 뜻하고 7번째는 로그인 시 제공되는 셸의 위치입니다.

 

 다음 명령어를 통해 새로운 유저를 생성합니다.

 

sudo adduser user1 명령어를 입력하면 암호와 정보를 입력할 수 있고 정보는 입력을 생략할 수 있습니다.

 

 

tail /etc/passwd 명령어로 생성된 유저를 확인할 수 있습니다.

 

 

유저 관리에 관한 명령어는 다음과 같은 명령어들이 있습니다.

 

passwd 유저명 -> 사용자의 비밀번호 설정

 

usermod --shell 경로 유저명 -> 유저의 기본 쉘을 경로의 쉘로 변경

usermod --groups 그룹명 유저명 -> 유저의 보조 그룹에 그룹 추가

 

userdel 유저명 -> 유저 삭제

userdel -r 유저명 -> 유저 삭제 및 유저의 홈 디렉터리 삭제

 

chage -> 사용자의 비밀번호 주기적으로 변경하도록 설정하는 명령어
chage -l 유저명 -> 사용자에 설정된 내용 확인
chage -m 일수 유저명 -> 사용자 설정 비밀번호 사용해야 하는 최소 일자
chage -M 일수 유저명 ->  사용자 설정 비밀번호 사용할 수 있는 최소 일자
chage -E 20xx/xx/xx 유저명 -> 사용자에 설정한 비밀번호 만료일
chage -W 일수 유저명 -> 사용자 설정 비밀번호 만료 전 경고 기간

 

groups 유저명 -> 유저가 소속된 그룹 출력

 

groupadd 그룹명-> 새로운 그룹 생성
groupadd --gid 그룹아이디 그룹명 -> 그룹 생성하고 그룹 ID 지정

groupmod --new-name 바꿀그룹명 그룹명-> 그룹 이름 변경

groupdel 그룹명 -> 그룹 삭제 (주 그룹으로 지정한 사용자 없어야 함)

gpasswd 그룹명 -> 그룹 비밀번호 설정
gpasswd -A 유저명 그룹명 -> 사용자를 그룹 관리자로 지정
gpasswd -a 유저명 그룹명 -> 사용자를 그룹에 추가
gpasswd -d 유저명 그룹명 -> 사용자를 그룹에서 제거

 

su - 유저명 -> 사용자 변경 명령어

 

728x90

 

2-1. 파일 허가권

 
파일 허가권은 ‘rw-’, ‘r--’, ‘r--’와 같이 3개씩 끊어서 구분합니다.
rread, wwrite, xexecute의 약자로 예를 들어 rw-’는 읽거나 쓸 수 있지만 실행할 수는 없다는 의미입니다.
읽고 쓰고 실행할 수 있는 파일은 ‘rwx로 표시합니다.
 

 

첫 번째의 ‘rw-’는 소유자(user)의 파일 접근 권한을, 두 번째의 ‘r--’는 그룹(group)의 파일 접근 권한을, 세 번째의 ‘r--’는 그 외 사용자(other)의 파일 접근 권한을 의미합니다.

소유자의 허가권을 나타내는 62진수로 110이므로 ‘rw-’, 그룹의 허가권을 나타내는 42진수로 100이므로 ‘r--’,
그 외 사용자의 허가권을 나타내는 42진수로 100이므로 ‘r--’로 표현합니다.
 
디렉터리(폴더)를 해당 디렉터리로 이동하려면 실행(x) 권한이 반드시 있어야 합니다.
따라서 일반적으로 디렉터리에는 소유자, 그룹, 그 외 사용자의 실행(x) 권한이 설정됩니다.
 
파일 허가권에 대한 명령어는 다음과 같이 있습니다.
 
먼저 chmod로 파일 허가권을 변경하는 명령어입니다.
root 사용자 또는 해당 파일의 소유자만 실행 가능하며
chmod 777 abc.txt 명령을 실행하면 모든 사용자가 abc.txt 파일은 읽고 쓰고 실행할 수 있게됩니다.
 
숫자 외에도 + 를 사용해 허가권을 변경할 수 있습니다.
chmod u+x abc.txt는 소유자에게 실행 권한을 허가하라는 의미입니다.
 

2-2. 파일 소유권

 
파일 소유권은 특정 사용자와 그룹이 파일에 대한 소유 권한을 가지는 것을 의미합니다.
파일 소유권에 관한 명령어는 chown이 있습니다.
 
chown 새사용자명(:새그룹명) 파일명 으로 파일 소유권을 변경합니다.
예를 들어 chown ubuntu abc.txt를 입력하면 abc.txt 파일 소유자를 ubuntu로 바꿉니다.
chown ubuntu:ubuntu abc.txt는 파일 그룹을 ubuntu로 바꿉니다.
chgrp ubuntu abc.txt는 파일의 그룹만 변경하는 명령어입니다.
 
 
사용자의 홈 디렉터리에서 vi abc.txt를 실행하고
아무 내용을 입력합니다.
 

 

 

vi 에디터에 진입했다면 i를 눌러 내용을 입력하고 esc를 눌러 명령 모드로 진입한 후 

:wq를 입력해 저장 후 종료하시면 됩니다.

 

ls -l abc.txt를 통해 파일의 특징을 확인합니다.

 

 

사용자와 그룹이 모두 ubuntu로 되어있고 허가권이 rw-rw-r--로

소유자는 읽기 쓰기, 그룹은 읽기 쓰기, 외부 사용자는 읽기만 가능한 형태로 되어있습니다.

 

./abc.txt로 파일을 실행합니다.

 

 

위와 같이 실행 권한이 없기에 허가 거부 되었다는 메시지가 뜨는 모습입니다.

 

chmod 744 abc.txt 명령어를 실행합니다.

그 후 다시 abc.txt를 실행합니다.

 

 

파일이 실행이 되는 모습을 볼 수 있습니다.

 

sudo chown user1:user1 abc.txt를 실행해 파일 소유자를 바꿔줍니다.

다음 chmod로 허가권을 변경해 봅시다.

 

 

위와 같이 소유자가 바뀌어 chmod 명령어가 거부되는 모습입니다.

 

 

파일 정보를 확인하면 소유자와 그룹이 모두 user1로 되어있는 모습을 확인할 수 있습니다.

여기서 만약 파일을 편집한다면 외부 사용자가 읽기 권한만 허용되어 있으므로 편집이 거부됩니다.

 

728x90
반응형