개발 Q&A

제목 회원가입시 리눅스 계정생성 및 mysql 사용자 추가 버츄얼 호스트 추가등을 구현하고 싶습니다.
카테고리 PHP
글쓴이 마카오최 작성시각 2017/04/12 11:21:56
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 15499   RSS

안녕하세요.

질문이 너무 막연한건 아닌가 생각되지만 어떻게 구현해야 하는지 감이 오질 않아 질문 드립니다..

예를들어 카페24같은 사이트를 보면 웹호스팅 신청과 동시에 사용자 계정이 추가 되는것을 구현하고 싶습니다..

저의 경우는 서버에 사용자를 추가하려면 리눅스 쉘로 접속하여

사용자 추가, mysql계정추가, 버츄얼호스트추가등을 하는 쉘스크립트를 미리 만들어놓고 그 스크립트를 실행하여 아이디 패스워드등을 매번 제가 직접 입력하는 형태로 처리 하고 있었는데요..ㅠ

이것을 웹상에서 자동으로 처리할수 있으면 좋겠다는 생각을 하였습니다.

이게 가능한 것인가요?

 

방법으로는 아래와 같은 생각도 해보았는데 이 방법은 잘못된 것인가요?

1. 사용자추가등을 홈페이지상에서 받고 그 정보를 디비에 넣어놓는다.

2. 윗단계에서 디비에 추가된 정보와 mysql usertable정보와 비교하여 추가되지 않은 사용자를 추출하는 php 코드를 만든다.

  ( 여기서 리눅스계정 추가, mysql 사용자 추가, 버츄얼 호스트 작성 코드등을 추가 하는 쉘 명령어를 출력문으로 작성 )

3. 리눅스 cron 으로 매 분마다 윗단계에서 작성한 php 코드를 실행

 

구글링이나 여러가지 검색을 해봐도 로직을 찾기가 어렵네요..

 다음글 폼에서 값을 전송할때 누락되는 원인 (6)
 이전글 location.href 관련 질문.. (1)

댓글

양승현 / 2017/04/12 12:07:12 / 추천 0
보안적인 부분을 해결하실수 있다면 각 쉘명령어를 따로 복사하여 퍼미션을 설정하시고 필요할때마다 콜하시면 됩니다.

계정생성,가상호스트파일에 내용추가,디비생성및 사용자 추가등등 다 할수있지요.
마카오최 / 2017/04/17 16:21:19 / 추천 0

양승현 님 답변 감사합니다.

찾아보니 좋은 php 라이브러리가 있었네요.

https://github.com/merlinthemagic/MTS/blob/master/SHELL_README.md

루트권한을 획득? 하여 쉘 명령어를 내릴수 있게 하는 라이브러리 인데요.

특정 조건에서 이 라이브러리가 작동되게 잘 만들면 쉘 명령어를 루트로 날릴수 있으니 제가 질문한것같이 만들필요가 없겠네요.

보안적인 부분으로 어떻게 안전하게 만들지 좀더 고민좀 해봐야겠네요...

변종원(웅파) / 2017/04/17 16:46:35 / 추천 0

shell_exec() 이란 php 함수로 간단히 처리됩니다.

보안은 별개로... ^^

마카오최 / 2017/04/17 17:17:54 / 추천 0

변종원(웅파)님 답변 감사합니다.

shell_exec() 명령으로 하려고 했는데 쉘 명령어를 내리는 주체가 현재 호스트 권한(nobody 또는 유저)가 아닌 root로 내려야 해서요.

root로 해야 버츄얼호스트 추가도 가능하고 아파치 재시작도 가능하고 하지 않나요?

위 라이브러리는 아래와같이 간단히 쓸수가 있어서 좋아 보이네요. 

 

//Get a shell as the webserver user i.e. apache or www-data
$shellObj = \MTS\Factories::getDevices()->getLocalHost()->getShell('bash', false);

//Pass the shellObj to the following function with root credentials.
\MTS\Factories::getActions()->getRemoteUsers()->changeUser($shellObj, 'root', 'rootPassword');

$return1 = $shellObj->exeCmd('whoami');
echo $return1; //root

 

변종원(웅파) / 2017/04/17 17:23:42 / 추천 0

마카오최/ 마음에 드는거 쓰는거죠. ^^

http://stackoverflow.com/questions/1598231/how-to-run-php-exec-as-root

마카오최 / 2017/04/17 17:45:50 / 추천 0

변종원(웅파)님 답변 감사합니다.

이것도 유용해 보이네요~!

시간날때 테스트좀 해보고 사용하기 좋은놈으로 골라봐야겠습니다.

감사합니다~