2017-03-29 1 views
0

리눅스 데비안 Jessie 용 명령 줄 기능을 만들 수있는 하나의 PHP 애플리케이션을 구축합니다. 모든 작품 fne하지만 난 루트 사용자와 같은 몇 가지 명령을 사용할 수 있어야합니다.루트 사용자와 마찬가지로 PHP shell_exec()를 실행하십시오.

shell_exec() 또는 유사한 명령을 사용하여 PHP를 통해 루트 사용자와 같은 방법으로 액세스 할 수 있습니까?

이 명령 줄의 아이디어는 해당 서버에 대한 액세스 권한이있는 사람이 임의의 장소 또는 장치에서 인터넷을 통해 처리 할 수 ​​있다는 것을 의미합니다. PHP를 통해 루트로 명령을 실행

enter image description here

답변

2

악의적 인 해커의 모든 종류를 벌리고 자신을 떠날 것이다 : 여기

콘솔의 이미지입니다.

"sudo"설명서를보십시오.

"sudo"가능한 스크립트로 필요한 모든 명령을 설정할 수 있어야합니다. 제한된 기능으로 특정 스크립트를 작성하는 것이 기본 권한이있는 명령을 노출하는 것보다 낫습니다.

으로 지역 :

exec ('sudo getCurrentUser.sh') 

첫째, 당신은 PHP가 이미 할당되어 있지 않은 경우는 sudo 그룹에 (이 www-data 대부분의 시간)을 실행하는 데 사용하는 사용자를 추가해야합니다.

그런 다음, PHP 파일에서 : -

"bash -lc 'echo your_passwd | /usr/bin/sudo -S your command'" 
를 사용하면 경로에 문제가있는 경우

$exec = "echo your_passwd | /usr/bin/sudo -S your command"; 
exec($exec,$out,$rcode); 

sudo를 사용 -S, 당신은 에코를 통해 암호를 전달할 수 있도록

그래서 로그인 셸처럼 작동하고 경로가 설정된 새 bash를 얻으십시오

+0

이것은 아주 좋습니다! 나는이 서버가 우리 웹 개발자 팀을위한 로컬 회사 서버이고 SSH 클라이언트를 통해 모두 액세스 할 수 있지만이 AP를 사용하여 비 루트 및 팀 리더를 사용하도록 일부 사용자를 설정하기 때문에이 서버가 활짝 열릴 것이라는 것을 알고 있습니다. 콘솔의 모든 컨트롤을 사용합니다. 감사! –

+0

내가 언급하는 것을 잊어 버린 한 가지, 아무도 sudoer입니다. 우리는'sudo' 사용자를 설정하지 않으며 그 명령은 서버에서 작동하지 않습니다. 관리자 만이 자신의'su' 액세스를 사용합니다. –

관련 문제