본문으로 건너뛰기

FTP, MYSQL 계정 생성 (LINUX)

💡 요약 정리

  • FTP 계정 생성vsftpd 서비스 구동 여부를 먼저 확인해야 합니다.
  • FTP 계정은 useradd 명령으로 생성하고, passwd 명령으로 비밀번호를 설정합니다.
  • MYSQL 계정 및 DB 생성mysql이 구동되어 있어야 합니다.
  • MYSQL 외부 접속이 필요한 경우 grant 명령에 외부 IP를 지정하여 설정합니다.

1. FTP 계정 생성

FTP 계정 생성 전 FTP 서비스 이용을 위해 서버 내 FTP 서비스가 구동 중인지 확인이 필요합니다.

1-1. FTP 서비스 구동 여부 확인

[root@serverhosting_test ~]# service vsftpd status
Redirecting to /bin/systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)

위와 같이 미구동 상태일 경우 아래 명령어로 구동합니다.

[root@serverhosting_test ~]# service vsftpd start  (또는 systemctl start vsftpd.service)
Redirecting to /bin/systemctl start vsftpd.service

1-2. FTP 서비스 구동 확인 완료

[root@serverhosting_test ~]# service vsftpd status
Redirecting to /bin/systemctl status vsftpd.service
● vsftpd.service - Vsftpd ftp daemon
Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2022-04-13 15:45:29 KST; 29s ago
Process: 5664 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)
Main PID: 5665 (vsftpd)
CGroup: /system.slice/vsftpd.service
└─5665 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

Apr 13 15:45:29 serverhosting_test systemd[1]: Starting Vsftpd ftp daemon...
Apr 13 15:45:29 serverhosting_test systemd[1]: Started Vsftpd ftp daemon.

Active: active (running) 상태가 확인되면 FTP 서비스가 정상 구동된 것입니다.

1-3. FTP 계정 생성 진행

FTP 계정 생성을 위해 우선 계정 생성이 필요한 서버에 접속(SSH)합니다.

아래 명령어에 따라 FTP 계정 생성을 진행합니다.

순서명령어설명
1useradd -d 'FTP계정의 홈경로' 'FTP 계정명'FTP 계정 생성
2passwd 'FTP 계정명'생성한 FTP 계정 패스워드 설정
3cat /etc/passwdFTP 계정 생성 여부 체크
4ls -alt /home / grep 'FTP 계정명'home 경로 정상 생성 여부 체크

1-4. 계정 생성 예시

  • 생성할 FTP 계정명 : serverhosting
  • FTP 계정의 홈경로 : /home/serverhosting
[root@serverhosting_test ~]# useradd -d /home/serverhosting serverhosting
[root@serverhosting_test ~]# passwd serverhosting
Changing password for user serverhosting.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@serverhosting_test ~]# cat /etc/passwd | grep serverhosting
serverhosting:x:1004:1004::/home/serverhosting:/bin/bash   --> 생성한 FTP 계정 정보
[root@serverhosting_test ~]# ls -alt /home/ | grep serverhosting
drwx------ 2 serverhosting serverhosting 62 2022-04-13 15:04 serverhosting --> FTP계정 홈경로 정보

2. MYSQL 계정 생성

mysql 계정 및 DB 생성 전 mysql이 구동되어 있어야 합니다.

mysql 구동 여부 및 구동 명령어 확인은 아래 링크를 참고합니다.

'mysql 구동 및 구동 여부 체크' 바로가기

2-1. MYSQL 계정 및 DB 생성 절차

순서명령어설명
1/opt/mysql/bin/mysql -u root -pmysql 접속
2create database 'DB명';DB 생성
3grant all privileges on 'DB명'.* to '계정명'@localhost identified by '패스워드';mysql 계정 생성
4flush privileges;MYSQL 적용

참고

  • 최초 접속일 경우 mysql 패스워드는 없는 상태입니다. "enter"키 입력 시 바로 접속 가능합니다.
  • mysql 설치 경로가 /opt가 아닐 경우 opt가 아닌 설치 경로로 수정하여 명령어를 실행합니다.

2-2. MYSQL 계정 및 DB 생성 예시

  • 생성할 DB명 : serverhosting
  • 생성할 MYSQL 계정 : serverhosting_user
  • 계정에 대한 패스워드 : serverhosting@01
mysql> create database serverhosting;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on serverhosting.* to serverhosting_user@localhost identified by 'serverhosting@01';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

2-3. 생성된 DB 리스트 확인

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| serverhosting      |
| test               |
+--------------------+
4 rows in set (0.00 sec)

2-4. 생성된 MYSQL 계정 확인

mysql> select host,user from mysql.user;
+-------------+--------------------+
| host        | user               |
+-------------+--------------------+
| 127.0.0.1   | root               |
| localhost   | root               |
| localhost   | serverhosting_user |
+-------------+--------------------+
3 rows in set (0.00 sec)

3. MYSQL 외부 접속 설정

mysql> grant all privileges on 'DB명'.* to '계정명'@"외부접속 IP" identified by '계정에 대한 패스워드';

3-1. 외부 접속 설정 예시

  • 외부에서 MYSQL 접속할 IP : 111.111.111.111
  • 외부 접속할 DB명 : serverhosting
  • 외부 접속할 MYSQL 계정명 : serverhosting_user
  • MYSQL 계정 패스워드 : serverhosting@01
mysql> grant all privileges on serverhosting.* to serverhosting_user@"111.111.111.111" identified by 'serverhosting@01';
mysql> select host,user from mysql.user;
+-----------------+--------------------+
| host            | user               |
+-----------------+--------------------+
| 127.0.0.1       | root               |
| localhost        | root               |
| localhost        | serverhosting_user |
| 111.111.111.111  | serverhosting_user |
+-----------------+--------------------+
4 rows in set (0.00 sec)
위와 같이 설정을 진행하여도 DB 접속이 불가할 경우 방화벽(iptables, ufw 등) 설정 확인이 필요합니다.