리눅스에서 사용자 계정을 홈 디렉토리로 지정하여 웹사이트를 띄우는 경우가 많이 있었습니다.
그래서 계정 생성 시 홈 디렉토리 권한이 707로 설정되며, 디렉토리 내 기본 index.html 을 생성하여 추가 설정 없이 계정 생성 만으로 웹 사이트에서 계정으로 접속 시 웹 사이트를 띄워주는 방법입니다.
( http://도메인(IP)/계정명 )
리눅스 cent OS, apache (httpd) 를 사용하였습니다.
( 제가 설정한 vhost 설정입니다. ) <VirtualHost *:80> <Directory /home> ServerName example.com |
1. /etc/default/useradd
useradd 기본 파일이며, 계정 생성 시 참조하는 환경과 파일에 대해서 나와있습니다.
따로 수정한 것이 없어 설명만 적었습니다.
- GROUP=100
-> 기본 소속 그룹(GID 100 = users) - HOME=/home
-> 홈디렉토리 경로 - INACTIVE=-1
-> 패스워드 종료일 이후 유효기간 여부
( 1 이상 : 만료 후 패스워드 유효 기간
0 : 만료 기간이 되자마자 패스워크 잠금
-1 : 기능 비활성화) - EXPIRE=
-> 계정 만료 기간 - SHELL=/bin/bash
-> 기본 쉘 - SKEL=/etc/skel
-> 홈 디렉토리 생성 시 기본 생성 파일 경로 - CREATE_MAIL_SPOOL=yes
-> 계정 생성 시 mail 함 생성 여부
2. /etc/login.defs
새로운 계정 생성 시 필히 참조하는 파일입니다.
UMASK 값만 변경했습니다. (077 -> 070)
- MAIL_DIR /var/spool/mail
-> 메일 디렉토리 위치 - PASS_MAX_DAYS 99999 -> 패스워드 만료일
PASS_MIN_DAYS 0 -> 변경 후 다시 변경할 수 있는 최소 일
PASS_MIN_LEN 5 -> 패스워드 최소 길이 (5 byte)
PASS_WARN_AGE 7 -> 사용 종료 전 경고 일자 (7일 전부터) - UID_MIN 500 -> 새로운 계정 할당 UID 시작(최소) 번호
UID_MAX 60000 -> 최대 UID 번호 - GID_MIN 500 -> GID 시작 (최소) 번호
GID_MAX 60000 -> 최대 GID 번호 - #USERDEL_CMD /usr/sbin/userdel_local
-> 사용자 삭제 시 실행될 커맨드 - CREATE_HOME yes
-> 홈 디렉토리 생성 여부 - UMASK 070
-> UMASK 값 (지정하지 않을 시 기본 022) - USERGROUPS_ENAB yes
-> userdel 시 멤버가 없는 그룹 삭제 - ENCRYPT_METHOD SHA512
-> 암호화 방법
3. /etc/skel
계정 생성 시 해당 디렉토리 내 파일을 사용자의 홈디렉토리로 복사합니다.
기본적으로 .bash_logout .bash_profile .bashrc 파일이 존재합니다.
index.html 파일을 생성하여 넣어주었습니다.
4. test
이제 example라는 계정을 생성 해보았습니다.
계정을 생성하니 해당 계정의 홈디렉토리 권한이 707로 생성된 것을 확인할 수 있습니다.
vhost로 등록한 도메인 (임시도메인이라 hosts파일에 등록하여 사용) 뒤에 해당 계정명을 입력해주니
/etc/skel에 등록한 index.html 파일이 열린 것을 확인하였습니다.