phpÀ¥¼­¹ö¿¡¼­ apacheÀÇ ½©½ºÅ©¸³Æ® ½ÇÇà°ú °ü·ÃÇÏ¿© ¹®ÀÇ µå¸³´Ï´Ù.

TripleXI   
   Á¶È¸ 7019   Ãßõ 0    

안녕하세요,

현재 제가 php로 구성된 웹서버를 사용 중인데요, apache가 쉘스크립트를 실행시키는 부분에 대해서 문의 드리고자 합니다.

우선 제가 사용하는 웹서버는 php에서 ssh2를 이용해서 로컬서버에 접속을 한 후 로컬 계정의 권한으로 쉘스크립트를 실행하게끔 되어있습니다.

OS는 CentOS 7.4를 사용하고 있습니다.

명령어는 ssh2_exec를 사용하였구요, 간략하게 코드를 적어드리면


$cmd[] = "cd {폴더경로} && /bin/bash 쉘스크립트파일명.sh & ";

$ssh_cmd = implode(" ", $cmd);

$connection = ssh2_connect("도메인주소 혹은 IP", 22);

ssh2_auth_password($connection, "계정 ID", "계정 Password");

ssh2_exec($connection, $ssh_cmd);


이렇게 ssh2_exec를 통해 $ssh_cmd를 실행하고, $ssh_cmd에서 $cmd를 읽어서 쉘스크립트를 실행하게 되어있는 구조입니다. 

이때 쉘스크립트가 일부 리눅스 패키지를 실행하게 됩니다. 

이 패키지는 새로이 몇몇 파일들을 생성하는 작업을 수행하는데 파일사이즈가 0으로 나와서 문제가 되고 있습니다.


우선 해당 폴더에는 777의 권한을 부여하였고 setfact를 통해 새로 생성되는 파일에 대해서 777의 권한을 부여했습니다.

또한 해당 폴더의 소유권도 ssh2를 통해 접속하는 로컬 계정으로 변경하였습니다만 계속 에러가 발생하네요.

ssh2_exec가 아닌 exec 명령어를 통해 쉘스크립트를 실행하는 경우에는 문제 없이 실행되는데 이렇게 되면 웹 리소스를 계속 점유하게 되서 여간 불편한게 아닙니다.


쉘스크립트에서 패키지 명령어 실행하기 전에 폴더 생성명령을 내려보니 아무 문제 없이 잘 생성되는 것을 보면 apache자체가 쉘 스크립트를 실행하는 데에 있어서 권한 문제는 아닌것으로 보이네요.

보통 이런 경우에는 apache가 쉘스크립트를 실행하는데는 문제가 없으나 패키지를 실행하는 권한이 없어서 그런건지, 아니면 리눅스 패키지 중에 혹시 원격접속을 통해 실행하는 것이 불가능한 패키지들이 있는지 궁금합니다.

어떠한 의견이라도 주시면 감사하겠습니다.

ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.
     
TripleXI 2018-04
¾È³çÇϼ¼¿ä,

´äº¯ °¨»çµå¸³´Ï´Ù. Á¦°¡ Àá½Ã ³ëÆ®ºÏ ¼ö¸®¸¦ ÇؾߵǼ­ ´äº¯ÀÌ ´Ê¾ú½À´Ï´Ù.

¾Ë·ÁÁֽŠµÎ°¡Áö ¹æ¹ý ¸ðµÎ ½ÃµµÇغ¸¾ÒÀ¸³ª ¿©ÀüÈ÷ ½ÇÇàÀÌ ¾ÈµÇ³×¿ä.
shÆÄÀÏ ¸»°í Á¦°¡ ¸»¾¸µå¸° ÆÐÅ°ÁöÀÇ °æ¿ì ½ÇÇà¸í·É¾î¸¦ ÀÌ¹Ì /usr/bin¿¡ º¹»çÇسõÀº »óŶó ¾î´À°÷¿¡¼­µç ½ÇÇàÀÌ °¡´ÉÇÑ »óÅÂÀÔ´Ï´Ù.

º¸Åë Á¦°¡ °³ÀÎ ³ëÆ®ºÏ¿¡¼­ ssh¸¦ ÅëÇØ ¿ø°ÝÀ¸·Î Á¢¼ÓÇؼ­ Ä¿¸Çµå »ó¿¡¼­ Á÷Á¢ ¸í·ÉÀ» ½ÇÇàÀ» ÇÒ¶§´Â ¾Æ¹« ¹®Á¦¾øÀÌ Àß µÇ´Âµ¥ apache°¡ ssh2¸¦ ÅëÇØ ¿ø°ÝÁ¢¼ÓÇؼ­ ½©½ºÅ©¸³Æ®¸¦ ½ÇÇà½ÃÄ×À»¶§ ÆÐÅ°Áö ½ÇÇàÀÌ ¾ÈµÇ´Â°ÍÀº

1) ½©½ºÅ©¸³Æ®¿¡¼­ ÆÐÅ°Áö ¸í·ÉÀ» ½ÇÇàÇϴµ¥ ¹®Á¦°¡ ÀÖ´Ù (bash°¡ ¾Æ´Ñ ´Ù¸¥ ½©½ºÅ©¸³Æ®ÀÇ »ç¿ëÀÌ ÇÊ¿äÇÒ ¼öµµ ÀÖ´Ù)
2) ssh¿Í ssh2ÀÇ Â÷ÀÌ°¡ ¹®Á¦°¡ ÀÖ´Ù

ÀÌ µÎ°¡Áö Áß¿¡ ÇϳªÀÏ ¼ö ÀÖÀ»±î¿ä? 1¹øÀÇ °æ¿ì¶ó¸é bash¿Í ´Ù¸¥ ½©½ºÅ©¸³Æ®(sh, ksh, csh µî)°£ÀÇ Â÷À̸¦ ¾Ë¾ÆºÁ¾ß ÇÒ °Í °°Àºµ¥, 2¹øÀÇ °æ¿ì´Â Ưº°È÷ ssh¿Í ssh2ÀÇ Â÷ÀÌ°¡ ¾ó¸¶³ª ¿µÇâÀ» ¹ÌÄ¥Áö °¡´ÆÇϱⰡ ¾î·Æ³×¿ä.
ȸ¿øK 2018-04
¸ðµç ¸í·É¿¡´Â Àý´ë°æ·Î¸¦ Àû¾îµÎ½Ã´Â °ÍÀÌ ÁÁÀ¸¸ç
¸í·É¾î ½ÇÇà stepÀ» log Âï¾î µÎ¼Å¾ß ÇÕ´Ï´Ù.
     
TripleXI 2018-04
¾È³çÇϼ¼¿ä,

´äº¯ °¨»çµå¸³´Ï´Ù. Á¦°¡ Àá½Ã ³ëÆ®ºÏ ¼ö¸®¸¦ ÇؾߵǼ­ ´äº¯ÀÌ ´Ê¾ú½À´Ï´Ù.

Àú À§¿¡ Á¦°¡ ÀûÀº $cmd[] = "cd {Æú´õ°æ·Î} && /bin/bash ½©½ºÅ©¸³Æ®ÆÄÀϸí.sh & "; ÀÇ ºÎºÐ¿¡¼­ {Æú´õ°æ·Î}´Â ÀÌ¹Ì Àý´ë°æ·Î·Î Àû¾îµÎ¾ú½À´Ï´Ù.

±×¸®°í ½ÇÇà·Î±×¸¦ Âï´Â°ÍÀº 2>&1 ¸¦ Àû¾îÁÖ¸é ¿¡·¯·Î±×¸¦ ±â·ÏÇÒ¼ö ÀÖÁö¸¸ ÇØ´ç ÆÐÅ°ÁöÀÇ °æ¿ì´Â ÆÄÀÏ »ý¼º¿¡ ´ëÇÑ ¿¡·¯·Î±×°¡ ±â·ÏÀÌ ¾ÈµÇ´õ±º¿ä.

Ȥ½Ã 2>&1 ÀÌ¿Ü¿¡¼­ ´Ù¸¥ ¹æ½ÄÀ¸·Î ·Î±×¸¦ ±â·ÏÇÏ´Â ¹æ¹ýÀ» ¾Æ½Ã¸é ¾Ë·ÁÁÖ½Ã¸é °¨»çÇÏ°Ú½À´Ï´Ù.
          
ȸ¿øK 2018-04
shell¿¡ µé¾î°¡¸é ¸ðµç ȯ°æº¯¼ö°¡ ¼³Á¤µÇÁö ¾Ê±â ¶§¹®¿¡
·Î±× ÆÄÀÏÀÇ °æ¿ì¿¡µµ Àý´ë °æ·Î¸¦ Àû¾îµÖ¾ß ÇÕ´Ï´Ù.

½©½ºÅ©¸³Æ® ÆÄÀϸí = Àý´ë°æ·Î.
               
TripleXI 2018-04
¸»½¿ÇϽŠ½©½ºÅ©¸³Æ® ÆÄÀÏ¸í ¶ÇÇÑ Àý´ë°æ·Î·Î ÁöÁ¤À» Çصξú½À´Ï´Ù. Á¦°¡ °£·«ÇÏ°Ô Àû´Ùº¸´Ï ¼³¸íÀÌ ºÎÁ·Ç߳׿ä.

Á¦°¡ php¿¡ Àû¾î³õÀº $cmd¸¦ ÀüºÎ ´Ù Àû¾îµå¸®¸é

$cmd[] = "(cd {$SaveDir}($sample} && /bin/bash /tool/analysis.sh 2>&1 > {$SaveDir}{$sample}/log &)"

ÀÌ·¸°Ô Àû¿ëÀÌ µË´Ï´Ù.

¸»¾¸µå¸°¹Ù¿Í °°ÀÌ toolÆú´õ ³»ÀÇ analysis.sh¶ó´Â ½©½ºÅ©¸³Æ®¸¦ Àý´ë°æ·Î·Î ÁöÁ¤ÇØÁ༭ ½ÇÇàÇÏ°Ô²û Çسù½À´Ï´Ù.
±×¸®°í 2>&1À» Àû¾î¼­ log¶ó´Â ÆÄÀÏÀ» »ý¼ºÇؼ­ ¿¡·¯·Î±×¸¦ È®ÀÎÇÏ°Ô²û ÇÏ¿´±¸¿ä.

logÆÄÀÏÀº »ý¼ºÀÌ µÇ´Âµ¥ ÆÐÅ°Áö ÇÁ·Î±×·¥ÀÇ Á¤»ó ½ÇÇà ¿©ºÎ (¿©±â¼± ÆÄÀÏ»ý¼º ¿©ºÎ°¡ µÇ°ÚÁÒ)¿¡ ´ëÇؼ± ±â·ÏÀÌ ¾ÈµÇ³×¿ä.
                    
ȸ¿øK 2018-04
Àüü¸¦ ÇϳªÀÇ shell script¿¡ ³Ö°í, ±× schell script¸¸ ½ÇÇàÇϵµ·Ï ÇÏ¼Å¾ß ÇÒ °Í °°½À´Ï´Ù.
https://stackoverflow.com/questions/255414/why-doesnt-cd-work-in-a-bash-shell-script

¸¶Áö¸·¿¡ &·Î bg ¶³¾î ¶ß¸®´Â °Íµµ ¹®Á¦°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
&´Â back ground¿¡ ³ÖÀ¸¶ó´Â ¸í·ÉÀÌÁö, bg¿¡¼­ ½ÇÇàÇ϶ó´Â ¸í·ÉÀº ¾Æ´Ï¹Ç·Î
nohubÀ» ¾²¼Å¾ß ÇÕ´Ï´Ù.
https://stackoverflow.com/questions/9190151/how-to-run-a-shell-script-in-the-background-and-get-no-output

½ÇÁ¦·Î À§ÀÇ cmd´Â ±×³É bg¿¡¸¸ ¹Ð¾î ³Ö°í ³¡ ÀÔ´Ï´Ù.
¾Æ¹« °Íµµ ¾ÈÇÕ´Ï´Ù.
´äÀº ¾Æ´Ï°ÚÀ¸³ª, »ç¿ëÀÚ¿¡°Ô ÇÒ´çµÈ ¿ë·®ÀÌ °¡µæáÀ» °æ¿ì¿¡ ±×·± Çö»óÀÌ »ý±é´Ï´Ù.
     
TripleXI 2018-04
¾È³çÇϼ¼¿ä,

´äº¯ °¨»çµå¸³´Ï´Ù. Á¦°¡ Àá½Ã ³ëÆ®ºÏ ¼ö¸®¸¦ ÇؾߵǼ­ ´äº¯ÀÌ ´Ê¾ú½À´Ï´Ù.

»ç¿ëÀÚ¿¡°Ô ÇÒ´çµÈ ¿ë·®ÀÌ °¡µæáÀ» °æ¿ì¶ó¸é ÀϹÝÀûÀ¸·Î »ý°¢ÇÏ´Â µð½ºÅ©¿ë·®ÀÌ ´Ù ãÀ» °æ¿ì¸¦ ¸»¾¸ÇϽôÂÁö ÆÄÀϽýºÅÛ »ç¿ë·®À» ¸»¾¸ÇϽôÂÁö¿ä.

du¿Í dfÀÇ ¸í·É¾î¸¦ ÀÌ¿ëÇؼ­ È®ÀÎÇغ¸´Ï ÀüÀÚ³ª ÈÄÀÚ ¸ðµÎ ¿ë·®Àº ÃæºÐÈ÷ ³²¾ÆÀ־ ÇØ´çµÇ´Â ºÎºÐÀÌ ¾Æ´Ñ °Í °°½À´Ï´Ù.

Ȥ½Ã Á¦°¡ ¸»¾¸µå¸° °Í ÀÌ¿Ü¿¡ ´Ù¸¥ ºÎºÐÀ» ¸»¾¸ÇϽô °ÇÁö ±Ã±ÝÇϳ׿ä.


QnA
Á¦¸ñPage 4238/5680
2014-05   4945538   Á¤ÀºÁØ1
2015-12   1482218   ¹é¸Þ°¡
2006-04   6938   ±è¿ë¼ö
2013-01   6938   ºí·ç¿µ»ó
2004-08   6938   ÇÑ»óõ
2004-12   6938   ¼Û¿µ¿À
2011-12   6938   ¼ÒÁÖÇѺ´
2005-02   6939   ¹ÚÁ¤¿ø
2017-01   6939   ¼ÛÁÖÇü
2004-11   6939   ±è³«Ã¶
2013-11   6939   ¸®¿µ¹Î
2017-12   6939   º°À̹ÀÜ
2004-10   6940   ÀÓ¿µº¸
2012-04   6940   ½É¹ÙÆ®
2005-05   6940   °í»óÇö
2020-06   6940   ÀϹÝÀ¯Àú
2004-09   6941   ÃÖÀç¼ø
2009-10   6941   ±è³²¼º
2010-01   6942   psj1050
2007-02   6942   ÀÓÁ¾¿­
2006-05   6942   ±èâÀ±(k)
2021-09   6942   ItsJaemin