[HELP] 주민번호관련 파일수정후, member폴더 퍼미션 에러... > 그누3질답

그누3질답

[HELP] 주민번호관련 파일수정후, member폴더 퍼미션 에러... 정보

그누보드 [HELP] 주민번호관련 파일수정후, member폴더 퍼미션 에러...

본문

ps; 아래 mbupdat.php 파일에서 코드를 잘못올려서 다시 정정합니다.
mb_mailling    = '$mb_mailling',  ->  mb_mailling    = '$mb_mailling'



좀 도와주십시요..정말 부탁드립니다..
글을 이미 한번 올리고 나서...
혼자서 헤매다가 원인은 알아낸거는 같은데..도무지 해결방법을 모르겠군요.


다시 자세히 문제를 적어보겠습니다.
현재 3.34버젼입니다.

문제의 시작은..지금 작업중인 리뉴얼 사이트가
개편전에는 주민등록번호를 입력없이 회원가입을 받았는데
개편하면서 신규회원부터는 주민등록번호를 입력하여야 가입이 가능하도록
관리자모드의 환경설정(주민번호사용->예)을 변경을 하였습니다.

이런탓에 신규회원부터는 주민등록번호가 등록된 상태지만,
이전회원(약 100여명)은 주민번호가 입력이 되지 않은 상태이지요.

그래서 '이전회원'들이 로그인해서 '정보수정'을 통해서 주민번호를 입력하도록 하기위해
그리고 이미 입력한 회원은 자신의 주민번호를 '정보수정'에서 확인할수 있도록
mbform.php 와 mbupdate.php 그리고 멤버스킨의 mbform.skin.php 파일들을 약간 손을 보게 되었습니다.


그 내용은 파일별로 다음과 같습니다.
-------------------------------------------------
★ mbform.php 원 소스파일에서 31라인, 56라인부분 수정
-------------------------------------------------

$de_member_provision = $default[de_member_provision]; // 회원가입약관
$mb_id = $member[mb_id];
$mb_passwd_required = ($w == '') ? 'required' : '';
$mb_name = $member[mb_name];
$mb_jumin = $member[mb_jumin];  //########### 정보수정에서 자신의 주민번호가 보이도록 하기위해 추가

// 비밀번호 분실시 질문 SELECT 옵션
$option_passwd_q = "";
$opt = explode(",", $default[de_password_q]);
for ($i=0; $i<count($opt); $i++) {
    $option_passwd_q .= "<option value='$opt[$i]'>$opt[$i]\n";
}

$mb_passwd_q = $member[mb_passwd_q];
$mb_passwd_a = $member[mb_passwd_a];

$is_email = false;
if ($default[de_use_email]) {
    $is_email = true;
    $mb_email = $member[mb_email];
}

$is_homepage = false;
if ($default[de_use_homepage]) {
    $is_homepage = true;
    $mb_homepage = $member[mb_homepage];
}

$is_jumin = false;
//if ($w == '' && $default[de_use_jumin]) {
if ($default[de_use_jumin]) {    //######### 회원정보수정시 주민번호창 보이도록 수정
    $is_jumin = true;
}


-------------------------------------------------------
★ mbupdate.php 원 소스파일에서 68라인, 99라인, 128라인부분 수정
--------------------------------------------------------
$sql_common = " mb_name        = '$mb_name',
                mb_passwd_q    = '$mb_passwd_q',
                mb_passwd_a    = '$mb_passwd_a',
                mb_profile      = '$mb_profile',
                mb_open        = '$mb_open',
                mb_mailling    = '$mb_mailling'
                /* , mb_today_login  = '$now' 3.34 주석처리 */ ";
if (isset($mb_jumin))      { $sql_common .= " , mb_jumin      = '$mb_jumin' "; }  //######-- 이전회원을 위해 주민번호입력가능하도록 추가.
if (isset($mb_email))      { $sql_common .= " , mb_email      = '$mb_email' "; }
if (isset($mb_homepage))  { $sql_common .= " , mb_homepage  = '$mb_homepage' "; }
if (isset($mb_tel))        { $sql_common .= " , mb_tel        = '$mb_tel' "; }
if (isset($mb_hp))        { $sql_common .= " , mb_hp        = '$mb_hp' "; }
if (isset($mb_zip1))      { $sql_common .= " , mb_zip1      = '$mb_zip1' "; }
if (isset($mb_zip2))      { $sql_common .= " , mb_zip2      = '$mb_zip2' "; }
if (isset($mb_addr1))      { $sql_common .= " , mb_addr1      = '$mb_addr1' "; }
If (isset($mb_addr2))      { $sql_common .= " , mb_addr2      = '$mb_addr2' "; }
If (isset($mb_sex))        { $sql_common .= " , mb_sex        = '$mb_sex' "; }
If (isset($mb_birth))      { $sql_common .= " , mb_birth      = '$mb_birth' "; }
If (isset($mb_married))    { $sql_common .= " , mb_married    = '$mb_married' "; }
If (isset($mb_wedding))    { $sql_common .= " , mb_wedding    = '$mb_wedding' "; }
If (isset($mb_signature))  { $sql_common .= " , mb_signature  = '$mb_signature' "; }

if ($w == "") {
    if (!trim($_POST[mb_id]))
        alert("회원아이디는 반드시 입력해 주십시오.");

    $mb = get_member($mb_id);
    if ($mb[mb_id])
        alert("이미 가입한 아이디입니다.");

    $sql = " select count(*) from $cfg[table_member] ";
    $condition = "";
    if ($default[de_use_email]) {
        $condition = "where";
        $sql .= " $condition mb_email = '$mb_email' ";
        $condition = "or";
    }
    if ($default[de_use_jumin])
    //  $sql .= " $condition mb_jumin = PASSWORD('$mb_jumin') ";
          $sql .= " $condition mb_jumin = '$mb_jumin' "; //-#################### 주민등록번호 암호화처리 안함
    if ($condition) {
        $row = sql_fetch($sql);
        if ($row[0] > 0)
            alert("같은 e-mail 또는 주민등록번호가 존재합니다.");
    }

    // 추천인 제도 사용
    if ($default[de_use_recommend]) {
        if ($mb_recommend) {
            $sql = " select count(*) from $cfg[table_member]
                      where mb_id = '$mb_recommend' ";
            $row = sql_fetch($sql);
            if ($row[0] == 0)
                alert("{$mb_recommend}는 존재하지 않는 추천인 아이디입니다.");
        }
    }

    $sql = " insert into $cfg[table_member]
                set mb_id        = '$mb_id',
                    mb_passwd    = PASSWORD('$mb_passwd'),
                    mb_datetime  = '$now',
                    mb_ip        = '$REMOTE_ADDR',
                    mb_level    = '$default[de_register_level]',
                    mb_recommend = '$mb_recommend',
                    mb_size      = '$cfg[image_upload_size]',
                    mb_login_ip  = '$REMOTE_ADDR',
                    $sql_common ";
    if ($default[de_use_jumin])
      //  $sql .= " , mb_jumin = PASSWORD('$mb_jumin') ";
            $sql .= " , mb_jumin = '$mb_jumin' ";    //-#################### 주민등록번호 암호화처리 안함
    sql_query($sql);



-------------------------------------------------------
★ 멤버스킨의 mbform.skin.php 원 소스파일에서 58라인수정
--------------------------------------------------------
-########### 입력창이 보이도록 value='<?=$mb_jumin?>' 부분 추가.

<? if ($is_jumin) { ?>
<tr><td colspan=2 background='<?=$member_skin?>/dotline.gif' height=1></td></tr>
<tr>
    <td class=ct>주민등록번호</td>
    <td>&nbsp;&nbsp;<input type=text class=is name='mb_jumin' size=13 maxlength=13 minlength=13 value='<?=$mb_jumin?>' required jumin itemname='주민등록번호'> - 없이 숫자만 입력하세요.</td>
</tr>
<? } ?>




위 세개의 파일을 위처럼 하고 나니 회원로그인후, 정보수정에서
- 자신의 주민번호를 확인할수 있고
- 이전에 주민번호를 입력하지 않읂 회원도 정보수정에서 입력처리가 가능하게 되었습니다.

(수정부분이 중복또는 불필요한 처리가 있는지에 대해서는 아직 이해가 부족한탓에 잘 모르겠으나, 의도한 대로 작동은하기에 일단 원하는 형태로 처리되는데는 이상이 없습니다)


★★★★★★★★★★
문제는... 이작업을 한후에, gnu폴더에서 sh perms.sh 퍼미션 실행명령을 주거나
또는 수동으로 chmod 707 .  그리고 chmod -R 707 명령을 실행하게 되면
첨부된 파일과 같이 member폴더아래로 퍼미션 에러가 발생해버립니다...


지금 골치아픈 일은 ....
리뉴얼한 사이트 전체를 백업해서 원래 있던곳에 복원시켜야 하는데
압축은 정상적으로 실행이 되는데 이상하게도 백업을 복구할때 압축을 해제하려고하면
위 해당부분의 퍼미션문제로 인해서 파일자체가 정상적으로
풀리지가 않아 완전 복원가 되지를 않는다는데 있습니다...

제가 아는...여러가지 방법을 다 동원해서 테스트를 해봤는데
위 파일을 변경하기전에는 (일일히, 세개를 별도록 찍어보지는 못했습니다..하다보니 자꾸 헷갈려서)
이상이 없었는데..위처럼 변경후 퍼미션 에러가 발생한다는 것입니다.


부디...... 실력있으신, 혹은 저같은 경험을 해보신 분이 계시다면
도움을 간절히 원합니다...해결방법을 좀 알려주세요.........please~~~~~~
  • 복사

댓글 전체

망할 퍼미션(권한)이 아닙니다. 그거없으면 집안에 다른사람들이 와서 놀다가기도 하고 도둑도 와서 가져갈것은 가져가고 망가뜨릴것은 망가뜨리고 할것입니다....^^
혼자 북치고..장구를 치는군요.................위의 문제가 아닌거 같군요..................
도무지 뭐가 문제인지......

호스팅에 들어가서...ls -al 로 퍼미션을 확인해보니..
아래처럼 나옵니다..


drwx---rwx    8 myhome  users        4096 Jun 25 17:41 .
drwx---r-x    3 myhome  users        4096 Jun 25 17:30 ..
drwxr-xr-x    4 myhome  users        4096 Jun  4 14:39 bbs
-rw-r--r--    1 myhome  users        3744 Jun  4 14:39 config.php
drwx---rwx    5 nobody  nobody      4096 Jun 25 17:31 data
-rw----r--    1 nobody  nobody        125 Jun 25 17:31 dbconfig.php
-rw-r--r--    1 myhome  users        3937 Jun  4 14:39 head.php
-rw-r--r--    1 myhome  users        1208 Jun  4 14:39 head.sub.php
drwxr-xr-x    2 myhome  users        4096 Jun  4 14:39 image
-rw-r--r--    1 myhome  users        9403 Jun  4 14:39 index.php
drwxr-xr-x    2 myhome  users        4096 Jun  4 14:39 install
-rw-r--r--    1 myhome  users        4328 Jun  4 14:39 javascript.js
drwxr-xr-x    2 myhome  users        4096 Jun  4 14:39 lib
-rw-r--r--    1 myhome  users        1355 Jun  4 14:39 main.php
-rwx------    1 myhome  users          30 Jun  4 14:39 perms.sh
-rw-r--r--    1 myhome  users      29467 Jun  4 14:39 README
-rw-r--r--    1 myhome  users        1504 Jun  4 14:39 style.css
-rw-r--r--    1 myhome  users        526 Jun  4 14:39 tail.php
-rw-r--r--    1 myhome  users        379 Jun  4 14:39 tail.sub.php
drwx---rwx    2 myhome  users        4096 Jun 25 17:41 test
-rw-r--r--    1 myhome  users      10486 Jun  4 14:39 wrest.js


위 보시면 아시겠지만...
data 폴더와 dbconfig.php 가 'nobody'로 나오네요......
다른 분들은 어떤지요?????? 여긴 우뜨넷호스팅입니다..
원래는 정보수정에서 주민번호를 보이게 할때 앞의 6자리만 보이고 나머지 7자리는 ******* <-- 이런표시로
숨김처리하려고 했는데....실력도 안되고..위 문제로 지금 작업을 중단한 상태라서 갑갑합니다...
정말 도움좀 부탁드립니다.
ps;
한개의 필드내에서 13자리중 7자리만 ******* 표시할 방법은 없겠지요..? !!!! (없을듯..)
주민등록 필드를 '앞자리6개', '뒷자리7개'씩으로 두개로 만들어 두었으면 좋았을텐데...
© SIRSOFT
현재 페이지 제일 처음으로