출처 : https://www.youtube.com/watch?v=b_0i7OD_naw&list=PLVsNizTWUw7FqN2gq79Cb3R6qkS7mqOJk&index=18
강의 목표
- 리눅스에서 원활한 파일 관리를 진행하기위해 파일의 속성을 이해하고 사용자를 관리하는 방법을 공부한다.
- 리눅스는 다중 사용자 시스템이기 때문에 사용자 관리가 파일 관리와 밀접하게 연관되어 있다.
사용자와 그룹
- 리눅스는 다중 사용자 시스템 (Multi-User System) 이다.
- 기본적으로 root 라는 이름을 가진 슈퍼 유저(Superuser)가 있으며, 모든 작업을 할 수 있는 권한이 있다.
- 모든 사용자를 하나 이상의 그룹에 소속되어 있다.
- 사용자는 /etc/psswd 파일에 정의되어 있다.
- passwd 파일에서 각 행의 의미는 다음과 같다.
- 사용자 이름 : 암호(다른 파일에 저장되어있으므로 x 로 표시) : 사용자 ID : 사용자가 소속된 그룹 ID : 전체 이름 : 홈 디렉토리 : 기본 셸
- 사용자의 비밀번호는 /etc/shadow 파일에 정의되어 있다. 하지만 비밀번호들은 암호화되어있다.
- 그룹은 /etc/group 파일에 정의되어 있다.
- 그룹명 : 비밀번호: 그룹 id : 그룹에 속한 사용자명
- root 사용자나 rocky 사용자는 기본적으로 root, rocky 그룹에 속해있기 때문에 표현되어 있지 않다.
사용자와 그룹 관련 명령어
- useradd (혹은 adduser)
- 새로운 사용자를 추가한다. 이 명령을 실행하면 /etc/passwd, /etc/shadow, /etc/group 파일에 새로운 행이 추가된다.
- useradd newuser : newuser 라는 이름의 사용자 생성. 이때 사용자는 반드시 그룹에 포함이 되어야하므로 그룹을 지정을 하지 않으면 내부적으로 newuser라는 그룹이 만들어진다. 그리고 newuser 그룹에 newuser 사용자가 속하게 된다.
- -u : ID 지정
- useradd -u 1111 newuser : newuser 사용자를 생성하면서 사용자 ID를 1111로 지정
- -g : 그룹 지정
- useradd -g mygroup newuser : newuser 사용자를 생성하면서 mygroup 그룹에 newuser 사용자를 포함 (mygroup 구릅을 먼저 만들어야 함)
- -d : 홈 디렉토리 지정
- useradd -d /newhome newuser : newuser 사용자를 생성하면서 홈 디렉토리를 /newhome으로 지정
- -s : 셸 지정
- useradd -s /bin/csh newuser : newuser 사용자를 생성하면서 기본 셸을 /bin/csh로 지정
- passwd
- 사용자의 비밀번호를 지정하거나 변경한다.
- passwd newuser : newuser 사용자의 비밀번호를 지정(또는 변경)
- usermod
- 사용자의 속성을 변경한다. 사용 가능한 옵션은 useradd와 동일하다.
- usermod -g root newuser : newuser 사용자의 그룹을 root 그룹으로 변경
- userdel
- 사용자를 삭제한다.
- userdel - newuser : newuser 사용자를 삭제
- userdel -r newuser : newuser 사용자를 삭제하면서 홈 디렉토리까지 삭제
- chage
- 사용자의 비밀번호를 주기적으로 변경하도록 설정한다.
- chage -l newuser : newuser 사용자에 설정된 사항을 확인
- chage -m 2 newuser : newuser 사용자에 설정한 비밀번호를 사용해야 하는 최소일자. 여기서는 2를 설정했으므로 변경 후 최소 2일은 사용해야 한다.
- chage -M 30 newuser : newuser 사용자에 설정한 비밀번호를 사용할 수 있는 최대일자. 30을 설정했으므로 변경 후 최대 30일까지 사용할 수 있다.
- chage -E 2030/12/12 newuser : newuser 사용자에 설정한 비밀번호가 만료되는 날짜. 여기서는 2030/12/12를 설정했으므로 2030년 12월 12일까지만 사용할 수 있다.
- chage -W 10 newuser : newuser 사용자에 설정한 비밀번호가 만료되기 전에 경고하는 기간. 지정하지 않았을 경우 기본 값은 7일. 여기서는 10으로 설정했으므로 비밀번호가 만료되기 10일 전부터 경고 메시지가 나간다.
- groups
- 사용자가 소속된 그룹을 표시한다.
- groups : 현재 사용자가 소속된 그룹을 표시
- groups newuser : newuser가 소속된 그룹을 표시
- groupadd
- 새로운 그룹을 생성한다.
- groupadd newgroup : newgroup 이라는 그룹을 생성
- groupadd -g 2222 newgroup : newgroup 그룹을 생성하면서 그룹 ID를 2222로 지정
- groupmod
- 그룹의 속성을 변경한다.
- group -n mygroup newgroup : newgroup 그룹의 이름을 mygroup으로 변경
- groupdel
- 그룹을 삭제한다.
- groupdel newgroup : newgroup 그룹을 삭제. 해당 그룹을 주요 그룹으로 지정한 사용자가 없어야 한다.
- gpasswd
- 그룹의 비밀번호를 설정하거나 그룹 관리를 수행한다.
- gpasswd newgroup : newgroup 그룹의 비밀번호를 지정
- gpasswd -A newuser newgroup : newuser 사용자를 newgroup 그룹의 관리자로 지정
- gpasswd -a user1 newgroup : user1을 newgroup 그룹의 사용자로 추가
- gpasswd -d newuser newgroup : newuser를 newgroup 그룹의 사용자에서 제거
사용자와 그룹 관리 실습
- 사용자와 그룹의 생성 / 삭제 / 변경 명령어를 연습한다.
- 사용자와 그룹의 관련 파일을 파악한다.
실습을 진행하기에 앞서 server 가상 머신을 초기화 한 다음 실습을 진행하는 것을 추천한다.
사용자 생성
useradd user1 명령을 입력해서 user1 사용자를 만든다. 아무 메시지도 나오지 않으면 성공적으로 사용자가 생성된 것이다.
tail /etc/passwd 명령을 입력해서 user1 사용자가 추가되었는지 확인한다. 맨 마지막 행을 보면 user1이 성공적으로 추가된 것을 확인할 수 있다.
tail -5 /etc/group 명령을 입력해 user1 사용자의 소속 그룹을 확인한다. 이를 통해, user1이 소속된 그룹의 ID는 1001번이고 동일한 이름인 user1 그룹에 소속되었다는 것을 확인할 수 있다.
다수의 사용자들을 관리할 때, 사용자 이름과 그룹 이름이 동일하면 관리에 어려움이 발생할 수 있다. 그룹을 만들고 사용자를 이 그룹에 속하도록 생성해보자.
그룹 생성 및 다수의 사용자 관리
userdel -r user1 명령을 입력해서 user1 사용자와 그룹을 삭제한다. tail /etc/group과 tail /etc/passwd 명령을 통해 성공적으로 삭제된 것을 확인할 수 있다.
groupadd rockyGroup 명령을 통해 rockyGroup 이라는 그룹을 새로 생성한다. tail /etc/group 명령을 통해 성공적으로 그룹이 생성된 것을 확인할 수 있다.
user1과 user2라는 사용자를 새로 생성하고 rockyGroup 그룹에 소속시킨다.
tail /etc/passwd 명령을 통해 user1과 user2가 둘다 동일한 1001번(rockyGroup) 그룹에 소속된 것을 확인할 수 있다.
tail /etc/shadow 명령을 통해 user1과 user2의 비밀번호를 보면 !!라는 표시만 있는데 우리가 비밀번호를 설정하지 않아서 비밀번호가 지정되지 않았다는 의미이다.
비밀번호를 생성해보자.
passwd user1, passwd user2 명령을 통해 user1과 user2의 비밀번호를 지정한다. 나는 간단하게 1234 라고 지정했는데 원칙적으로 비밀번호는 8자 이상이여야한다. 하지만 현재 root 사용자로 명령을 내렸기 때문에 8자 이하여도 비밀번호 생성이 가능하다.
다시 tail /etc/shadow 명령을 입력하면 user1과 user2의 비밀번호가 암호화되서 나타나는 것을 확인할 수 있다. 둘 다 1234로 동일한 비밀번호를 가지지만 암호화된 문구는 다르게 나타나는 것을 확인할 수 있다.
이 shadow 파일이 공개되어 있을지라도 다른 사용자의 비밀번호를 알아내는 것은 불가능하다.
ls /home/ 명령을 입력하면 현재 사용자 목록들을 볼 수 있다.
ls -a /etc/skel과 ls -a/etc/user1 명령들을 입력해보면 두 디렉토리에 동일한 파일들이 있는 것을 확인할 수 있다.
즉, 새로운 사용자를 생성하면 /etc/skel 디렉토리의 모든 내용이 사용자의 홈 디렉토리에 복사가 된다는 것을 확인할 수 있다.
만약 새로 만들 사용자에게 배포할 특정한 파일이 있다고 해보자. skel 디렉토리 안에 해당 파일을 집어넣으면 새로운 생성자를 생성할 때 해당 파일이 배포가 된다.
userdel -r user1, userdel -r user2, groupdel rockyGroup 명령을 입력해서 사용자와 그룹을 삭제한다.
'Study > 이것이 리눅스다 with Rocky Linux 9' 카테고리의 다른 글
4장. 서버를 구축하는 데 알아야 할 필수 개념과 명령 (8) - 링크(하드 링크, 심볼릭 링크) (0) | 2023.12.19 |
---|---|
4장. 서버를 구축하는 데 알아야 할 필수 개념과 명령 (7) - 파일의 허가권과 소유권 (0) | 2023.12.18 |
4장. 서버를 구축하는 데 알아야 할 필수 개념과 명령 (5) - 리눅스 기본 명령 (1) | 2023.12.18 |
4장. 서버를 구축하는 데 알아야 할 필수 개념과 명령 (4) - 리눅스 필수 개념과 명령 : 마운트와 CD/DVD/USB의 활용 (1) | 2023.12.18 |
4장. 서버를 구축하는 데 알아야 할 필수 개념과 명령 (3) - 리눅스 필수 개념과 명령 : 에디터와 도움말 사용법 (0) | 2023.12.17 |