An open API service indexing awesome lists of open source software.

https://github.com/sw-dreamer/homepage

create user and soft link homepage
https://github.com/sw-dreamer/homepage

apache2 linux ubuntu2204 vmware

Last synced: 3 months ago
JSON representation

create user and soft link homepage

Awesome Lists containing this project

README

          

# 사용자 생성 및 Apache 설정 스크립트
이 스크립트는 새로운 사용자 계정을 생성하고, Apache 서버 설정을 업데이트하며, 사용자 홈페이지를 설정하는 자동화 스크립트입니다. 주로 웹 서버에서 개인 홈페이지를 생성하고 Apache 서버를 구성하는 데 사용됩니다.

## 기능

1. 새로운 사용자 생성
2. 초기 비밀번호 설정 (사용자 이름으로 설정)
3. 최초 로그인 시 비밀번호 변경 강제 설정
4. 사용자 홈 디렉터리 내에 `homepage` 디렉터리 생성
5. Apache 서버 설정에 사용자 관련 설정 추가
6. 사용자의 홈페이지 디렉터리에 기본 HTML 페이지 생성
7. 사용자에게만 홈 디렉터리 접근 권한 부여
8. `/home/$username` 및 `/var/www/html/$username` 디렉터리 설정

## 필수 조건
- Ubuntu 서버
- Apache 서버 설치 및 설정
- 루트 권한으로 실행할 수 있는 계정

## 설치해야할 패키지 목록
- apache2
- passwd
- coreutils (awk, getent, date, mkdir, cp)

## 사용 방법

1. **스크립트 다운로드**
아래 명령어를 통해 이 스크립트를 다운로드하거나 복사하여 사용하실 수 있습니다.
```bash
git clone https://github.com/sw-dreamer/homepage.git
```

2. **스크립트 실행**
스크립트를 실행하려면 루트 권한이 필요합니다. 아래 명령어로 실행할 수 있습니다.
```bash
sudo ./create_user.sh
```

3. **사용자 이름 입력**
실행 후 스크립트에서 새로운 사용자 이름을 입력하라는 메시지가 표시됩니다. 새로 생성할 사용자의 이름을 입력하십시오.

4. **로그 확인**
스크립트 실행 중 발생하는 모든 로그는 /home/master/make_user_log/user.log 파일에 기록됩니다. 이 파일에서 사용자 생성 및 설정 상태를 확인할 수 있습니다.

## 기능 설명

1. **새로운 사용자 생성 및 설정**
- 입력한 사용자 이름으로 새 계정을 생성합니다.
- 사용자의 비밀번호는 기본적으로 사용자 이름으로 설정됩니다.
- 최초 로그인 시 비밀번호 변경을 강제합니다.

2. **홈 디렉터리 및 Apache 설정**
- 사용자의 홈 디렉터리 내에 homepage 디렉터리를 생성하고, 해당 디렉터리에 기본 HTML 파일을 넣습니다.
- Apache 설정 파일(000-default.conf)에 해당 사용자의 Alias 및 Directory 설정을 추가하여 개인 홈페이지를 웹 서버에서 서비스할 수 있도록 합니다.
- Apache 서버를 재시작하여 설정이 적용됩니다.

3. **파일 및 디렉터리 권한 설정**
- 사용자는 자신의 홈 디렉터리 및 homepage 디렉터리에만 접근할 수 있도록 설정합니다.
- home/$username 디렉터리와 /var/www/html/$username 디렉터리의 소유권과 접근 권한을 적절하게 설정합니다.

4. **파일 백업**
- 000-default.conf 파일을 백업하여 기존 설정을 보호합니다.

## 참고 사항
- useradd, chpasswd, chage 등 시스템 명령어를 사용하므로 루트 권한이 필요합니다.
- Apache 설정 변경 후 반드시 서버를 재시작하여야 설정이 반영됩니다.
- 사용자 이름을 비밀번호로 설정하므로, 보안상 실제 환경에서는 초기 비밀번호 변경을 강제하고 사용자에게 비밀번호를 변경하도록 안내하는 것이 좋습니다.

## 예시 출력
```
새로운 사용자 이름을 입력하세요: john
디렉터리 및 파일 백업 완료: /etc/apache2/sites-available/john/000-default.conf_2024-12-09_12-00-00_bak
사용자 'john'가 성공적으로 생성되었습니다.
비밀번호를 최초 로그인 시 변경해야 합니다.
Apache 설정이 성공적으로 추가되었습니다.
```

## 로그 파일
스크립트는 실행 중에 로그를 /home/master/make_user_log/user.log에 기록합니다. 이 파일에는 각 단계의 성공 여부, 오류 메시지 및 기타 중요한 정보가 포함됩니다. 로그 파일을 통해 문제를 파악하고, 스크립트 실행 상태를 모니터링할 수 있습니다.
- 로그 파일은 /home/master/make_user_log/user.log에 기록됩니다.
- 이 로그 파일에는 사용자 생성 및 Apache 설정 적용 상태에 대한 일부 정보가 기록됩니다.
## 예시 로그::
```
2024-12-09 12:00:00 - 정보: 사용자 'john' 생성 성공
2024-12-09 12:05:00 - 정보: 사용자 'john'에게 초기 비밀번호 설정 성공
2024-12-09 12:10:00 - 정보: 사용자 'john'의 Apache 설정 추가 성공
```

## 주의 사항
- 이 스크립트는 루트 권한으로 실행해야 합니다.
- Apache 서버가 설치되어 있어야 하며, /etc/apache2/sites-available/000-default.conf 파일이 기본적으로 존재해야 합니다.
- 사용자 이름을 비밀번호로 설정하므로, 보안상 실제 운영 환경에서는 초기 로그인 후 비밀번호를 강제로 변경하도록 안내해야 합니다.

## 권장 사항
- 모든 환경 변수 환경(ex. conf 파일들)은 백업을 해놓은 것을 권장 드립니다.