사용자 생성 자동화

사용자 생성 자동화

학생들을 위한 사이트가 있고 Ubuntu 14.04에서 실행되고 있습니다. 학생들이 내 사이트에 등록하면 사용자 정보를 MySQL DB에 저장합니다.

내 사이트에 등록할 때 학생들에게 Ubuntu 설치 시 웹사이트를 제공하고 싶고 이것이 자동화되기를 원합니다. 내 질문은 - MySQL DB에서 직접 데이터를 사용하여 Ubuntu에서 하위 도메인(username.mydoamin.com)을 제공할 수 있습니까? 아니면 PHP에서 Ubuntu의 쉘 명령을 실행하고 지금 수동으로 수행 중인 작업을 자동화할 수 있습니까?

답변1

PHP에서 Ubuntu의 쉘 명령을 실행하고 지금 수동으로 수행 중인 작업을 자동화할 수 있습니까?

PHP다음을 사용하여 내부에서 쉘 명령을 실행할 수 있습니다.shell_exec()함수 또는 ` `(백틱) 연산자 사용: < 5.4.0을 실행 중인 경우 PHP먼저 비활성화해야 합니다.안전 모드, 스크립트에서 PHP다음 구문 중 하나를 사용할 수 있습니다.

  • $return = shell_exec('<shell_command>');
  • $return = `<shell_command>`;

단일 명령에서 반환 값을 캡처하려는 경우가 아니라면 요청한 작업을 수행하는 가장 간단한 방법은 셸에서 수동으로 수행하는 모든 작업을 bash한 번 호출할 독립 실행형(또는 무엇이든) 스크립트로 압축하는 것입니다. 그 방법 중 하나를 사용하여. 예를 들어 스크립트 구문은 bash다음과 같습니다.

  • $return = shell_exec('bash script.sh');
  • $return = `bash script.sh`;

매개변수를 스크립트에 전달하려면(예: 변수 값 $username):

  • $return = shell_exec("bash script.sh '$username'");
  • $return = `bash script.sh '$username'`;

스크립트 내에서 전달된 매개변수를 검색하려면 (예: 위의 메소드로 전달된 변수 bash값 ):$username

#!/bin/bash

# ...
username=$1
# ...

$1또는 필요한 경우 간단히 참조하십시오 . 예:

#!/bin/bash

# ...
echo "$1"
# ...

답변2

내 자신의 질문에 대한 후속 조치로 내 경험을 자세히 설명하겠습니다. PHP에서 셸 실행 작업을 수행했지만 솔루션에 심각한 보안 문제가 있었습니다. 처음에 이것을 보지 못한 것은 내 손의 중대한 실수였습니다.

보안 위험을 제거하기 위해 사용자 테이블에서 활성화된 사용자를 찾는 bash 스크립트를 만들었습니다. 사용자가 활성 상태이고 Linux 사용자가 아닌 경우 사용자는 내 Linux에서 생성되어야 하며 데이터베이스 사용자가 생성되고 하위 도메인이 생성되며 해당 사용자에 대해 SSH가 잠깁니다. 60분마다 실행되는 cron 작업을 설정하고 사용자 생성 시 등록 정보가 포함된 이메일이 사용자에게 전송됩니다.

이는 많은 보안 위험을 제거합니다(전부는 아님).

비야르케

관련 정보