사용자 생성은 사용자와 그룹 파트에서 가장 집중해야 할 부분이다.
사용자와 그룹 파트에서 가장 비중을 많이 차지하고 중요한 부분이 사용자 계정 생성이다.
사용자 계정을 생성하는 명령어는 아래와 같은 형식으로 사용한다.
useradd [옵션] [값] … [옵션] [값] 사용자명
사용 가능한 옵션을 살펴보면 다음과 같다.
- -u : UID 지정(따로 지정하지 않으면 UID, GID의 기본값은 현재 가장 큰 숫자 +1)
- -g : GID 지정
- -c : 별칭 지정
- -s : shell 지정
- -d : 홈 디렉토리 지정(경로와 이름을 절대경로로 작성)
- -m : make directory
* -d 사용 시 /etc/login.defs의 CREATE_HOME 설정이 no이면 -m 옵션을 함께 사용해야 한다.
현재는 yes로 되어 있어 -m 옵션을 함께 사용하지 않아도 홈 디렉토리를 지정할 수 있다.
- -k : skel을 /etc/skel이 아닌 다른 디렉토리로 지정(반드시 -m 옵션과 함께 사용)
* /etc/skel
skel은 사용자 홈 디렉토리의 뼈대가 되는 디렉토리이다.
사용자 생성 시 함께 생성되는 홈 디렉토리 내부에 복사해 넣을 파일과 디렉토리 저장되어 있다.
즉, 사용자 홈 디렉토리 내부에 특정 파일이나 디렉토리를 자동으로 생성할 수 있다.
* -k 옵션은 -m 옵션과 함께 사용하지 않으면 오류가 발생한다.
- -D : 사용자 생성 시 적용되는 기본 정보 확인
* -D 옵션을 사용하면 useradd의 사용자 계정 생성 기능이 없어지고 정보만 출력된다.
-b 옵션(홈 디렉토리 생성 위치 변경) 등 추가 옵션을 함께 사용하여 기본 정보를 변경할 수 있다.
* /etc/default/useradd
useradd 파일은 사용자 생성 시 적용되는 기본 정보가 저장된 파일이다.
문서 편집기로 파일을 수정하면 useradd의 옵션을 쓰지 않아도 쉽게 기본 정보 변경이 가능하다.
사용자 생성 실습
아무런 옵션 없이 useradd 명령어로 사용자를 생성했을 때 적용되는 기본값은 다음과 같다.
UID, GID는 기존 itbank 사용자의 값에 +1을 한 1001이고 별칭은 따로 지정되지 않았다.
/home 디렉토리 아래 사용자명과 동일한 이름의 홈 디렉토리가 설정되었다.
이번에는 -c, -s 옵션을 사용하여 user2의 shell을 sh로 변경하고, testuser 별칭을 지정해준다.
user3은 -d 옵션을 사용하여 홈 디렉토리를 /jong/ro로 설정해준다.
/home/사용자명 형태의 user1, user2 홈 디렉토리와 달리 /jong/ro로 지정된 것을 볼 수 있다.
내부에 홈 디렉토리가 생성될 상위 디렉토리 /jong은 mkdir로 미리 생성해주어야 한다.
skel 디렉토리 추가 및 변경
사용자 홈 디렉토리의 기본이 되는 /etc/skel 디렉토리 내부의 목록을 살펴보고,
/etc/skel 디렉토리가 아닌 다른 디렉토리를 skel 디렉토리로 설정해보려고 한다.
skel 디렉토리 내부의 파일과 디렉토리는 숨겨져 있기 때문에 -a 옵션을 사용하여 확인해야 한다.
해당 파일, 디렉토리 목록이 새로 생성된 사용자의 홈 디렉토리에 들어있는 것을 확인할 수 있다.
/etc/skel 내부에 새로운 파일이나 디렉토리를 생성해주면,
이후 사용자 생성 시 해당 파일, 디렉토리가 사용자 홈 디렉토리에 추가되어 있는 것을 볼 수 있다.
사용자 홈 디렉토리 기본 구성 요소를 담는 디렉토리가 /etc/skel 하나 뿐이면 번거로울 수 있다.
예를 들어 기업에서 신입 사원을 채용한 후 계정 폴더에 필요한 자료가 자동 생성되도록 할 때,
부서 별로 필요한 자료가 다르다면 각 부서 별 skel 디렉토리를 생성해주는 것이 좋다.
위에서 /etc/skel 아래에 생성한 test1 파일을 지워주고, mkdir /etc/kgskel을 실행한다.
/etc/skel 내부의 모든 개체들을 숨겨진 항목까지 /etc/kgskel 내부로 복사해준다.
숨겨진 항목까지 모두 선택하려면 .* 기호를 활용해야 한다.
또, .* 기호와 -r 옵션은 동시에 사용할 수 없다.
따라서 다음과 같이 두 번에 걸쳐서 cp 명령어를 사용해야 한다.
cp /etc/skel /etc/kgskel로 디렉토리를 직접 복사할 수 있지만, 이렇게 파일 복사 훈련을 해본다.
/etc/skel 내부의 항목들이 모두 /etc/kgskel 내부로 복사된 것을 확인한 후,
touch /etc/kgskel/testfile로 kgskel 디렉토리 내부에 testfile을 생성해준다.
-m, -k 옵션을 사용하여 user5의 홈 디렉토리를 /etc/kgskel로 지정해준다.
kgskel 디렉토리에만 존재하는 testfile이 user5 디렉토리에 잘 들어가 있는 것을 확인할 수 있다.
사용자 생성 기본 정보
useradd -D 명령어로 사용자를 생성할 때 기본적으로 참조하는 정보들을 살펴볼 수 있다.
필요에 따라 위 정보들을 바꿔줄 수 있다.
기본 홈 디렉토리는 /home 내부에 생성되도록, 기본 shell은 /bin/bash로 설정되어 있다.
-b 옵션을 사용하여 홈 디렉토리 생성 위치를 /jong으로 변경해준다.
user6의 홈 디렉토리가 /home 내부가 아닌 /jong 내부로 잘 들어가 있는 것을 볼 수 있다.
사용자 생성 기본 정보는 /etc/default/useradd 파일에 저장되어 있다.
번거롭게 옵션을 사용하지 않고, 해당 파일에 직접 접근하여 vi 에디터로 내용을 수정해도 된다.
실습 예제
(풀이)
user7 생성에 앞서 vi /etc/default/useradd 입력 모드로 조건에 맞게 문서를 수정하고,
아래처럼 필요한 디렉토리를 생성 또는 복사해주면 된다.
여기서 사용자 계정 생성 포스팅을 마무리한다.
'2022 데이터 사이언스 > Linux' 카테고리의 다른 글
13. 사용자와 그룹(4): 그룹 (0) | 2022.05.28 |
---|---|
12. 사용자와 그룹(3): 사용자 정보 수정 및 삭제 (0) | 2022.05.28 |
10. 사용자와 그룹(1): 사용자 정보 (0) | 2022.05.23 |
09. vi 에디터(2): 실행 모드 (0) | 2022.05.22 |
08. vi 에디터(1): 명령 모드, 입력 모드 (0) | 2022.05.22 |