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

TripleXI   
   Á¶È¸ 7059   Ãßõ 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 4283/5686
2014-05   4981739   Á¤ÀºÁØ1
2015-12   1517840   ¹é¸Þ°¡
2011-03   7059   ±èÀºÈ£
2010-03   7059   ¼Õ°æÈ­
2013-06   7059   ȸ¿øK
2014-01   7060   BMMen
2004-07   7060   ÀÓ½ÃÇö
2012-02   7060   ¾çâ±Ç
2012-05   7060   ±èÀÎö
2007-11   7060   ¼ÛÀçÈÆ
2004-09   7060   ¹ÚÂù¹Î
2019-11   7060   õ¸¶°Ç»§
2008-05   7060   ¹ÚÇö
2018-04   7060   TripleXI
2004-09   7061   Àå±â¸¸
2010-12   7061   ÀÓ¼ºÈ¯
2011-05   7061   º¹Àϼº
2006-07   7061   È«»óÈÆ
2021-04   7061   °ø¹é±â
2014-03   7061   ÀÌÁöÆ÷Åä
2008-06   7062   ÀÌÈñ¿ø
2011-12   7062   ¹Ú