2014년 8월 29일 금요일

setuid, setgid 제거.

#test 디렉토리 생성.
[root@localhost src]# mkdir test\

#확인
[root@localhost src]# ll
합계 4
drwxr-xr-x 2 root root 4096 2014-08-28 16:30 test

#setuid 퍼미션 설정
[root@localhost src]# chmod 4000 test/

#확인.
[root@localhost src]# ll
합계 4
d--S------ 2 root root 4096 2014-08-28 16:30 test

#0000 8bit로 setuid 퍼미션 제거 시도.
[root@localhost src]# chmod 0000 test/

#확인. 제거가 안됨.
[root@localhost src]# ll
합계 4
d--S------ 2 root root 4096 2014-08-28 16:30 test

#심볼링 형식으로 제거 시도.
[root@localhost src]# chmod -s test/

#확인. 제거가 이루어 짐.
[root@localhost src]# ll
합계 4
d--------- 2 root root 4096 2014-08-28 16:30 test

참고 : http://linuxg.net/how-to-set-the-setuid-and-setgid-bit-for-files-in-linux-and-unix/

ps. 참고사이트에서도  0755 같은 형태로 앞부분에 0(zeroi)를 주면 삭제된다고 나옴...; 뭐지..

2014년 8월 27일 수요일

2014년 8월 25일 월요일

심볼릭 링크를 설정시 문제점.

심볼릭 링크를 설정시
타겟을 위치를 절대경로로 만들시 하위에 새로 생성되는 문제가 있다.

아래와 같이 명령어를 실행 했다.
ln -s /usr/local/mysql/data/ /var/lib/mysql

처음에는 제대로 /usr/local/mysql/data/ 디렉토리가 /var/lib/mysql 로 제대로 생성 되었다.

다시한번 실행해보자.
아무오류 없이 명령어가 적용된다.

/var/lib/mysql 위치로 들어가 보면 data 심볼링 링크가 생긴다.

제일 마지막의 '/' 주건 안 주건 상관 없다.
/var/lib/mysql/

그냥 속편히
cd /var/lib/
ln -s /usr/local/mysql/data/ mysql

이렇게 하면
ln: failed to create symbolic link `mysql/mysql': 파일이 있습니다
위와 같은 오류가 나온다.

심볼링 링크 삭제 시 주의점

symlinkFolder 가 심볼링 링크 파일일 경우

아래와 같이 하면 해당 파일의 하위까지 전부 지워버린다.
rm -rf symlinkFolder/

이런식으로 줘야 함.
rm symlinkFolder

2014년 8월 22일 금요일

mysql 에러 라인 출력.

mysql dump를 복구 하는데, 에러가 남.

근데, 어디서 에러가 나는 지 라인이 안나옴.

--debug  옵션을 주자.
mysql  --debug  database < database.sql

근데 에러남.

ERROR: Option 'debug' used, but is disabled

재컴파일 해야 된다고 함.
./configure --prefix=/usr/local/mysql --localstatedir=/usr/local/mysql/data --with-charset=euckr --with-debug

mysql 4.1.22 버젼 이었음.

tar 압축 해제시 에러

tar 압축해제시 파일명에 특수문자가 있으면 에러가 남.

[root@backup]# tar zxvfp mysql_14-07-22_3\:48.tgz
tar (child): 원격 셸을 실행할 수 없습니다: 그런 파일이나 디렉터리가 없습니다
tar (child): mysql_14-07-22_3\:48.tgz: Cannot open: 입력/출력 오류
tar (child): Error is not recoverable: exiting now

gzip: stdin: unexpected end of file
tar: Child returned status 2
tar: Error is not recoverable: exiting now

 
해당 파일을 특수문자 없이 변경후 압축해제.
mv mysql_14-07-22_3\:48.tgz  mysql.tgz

2014년 8월 19일 화요일

mysql 4.0 to 5.1 업그레이드

frm 파일 자체를 옮겨서 시도.
실패.

mysqldump 로 시도.
mysqldump -u root-ppass -e --all-databases > DB_ALL.sql

아래와 같은 오류 발생.
ERROR 1064 (42000) at line 250: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IN smallint(6) unsigned NOT NULL default '0',
  OUT smallint(6) unsigned NOT NUL' at line 18

정상적인 쿼리이나, IN 필드명이 mysql에서 사용하는 명령어라서 에러가 발생하는 것으로 보임.

테스트로 해당 테이블 필드를 모두 '로 감싸고 실행 했더니, 정상적으로 실행됨.

필드명를 '(따옴표)로 감싸줄 필요가 있음.

--quote-names 추가.
mysqldump -u kim01 -pwjqthr01 --opt --quick --quote-names --all-databases > DB_ALL.sql

결론.
-  mysql 간의 이동이라면 --opt 옵션를 사용하자. 복구 시간이 엄청 단축된다.
- --quote-names 를 사용하자.

참조 : http://start.goodtime.co.kr/2013/03/mysqldump-sql-%ED%98%B8%ED%99%98%EC%84%B1-%EB%86%92%EC%9D%B4%EA%B8%B0/

pid 값으로 강제 종료 스크립트.

service mysqld stop으로 mysql이 죽지를 않는다.

pkill mysqld 도 안 먹는다.

killall mysqld 도 안 먹는 다.

kill -9 pid 로는 먹는다.

근데 전부 다 죽여줘야 한다.

스크립트를 찾았다. 역시 있었다.
#!/bin/bash

[ -z "$1" ] && echo "Usage : Input Process .......... Please [scriptFileName ProcessName]" && exit

process_id=`ps -ax | grep "$1" | grep -vw "grep" | grep -vw $$ | awk '{print $1}'`

if [ -z "$process_id" ];then
echo "+-------------------------------------------------------------+"
echo "Not Found Process (입력하신 프로세스를 찾지 못했습니다.) ...... Done"
echo "+-------------------------------------------------------------+"
exit
else
process_id_number=`ps -ax | grep "$1" | grep -vw "grep" | grep -vw $$ | awk '{print $1}'`

for i in ${process_id_number} ;do
kill -9 $i &> /dev/null
printf "%-40s %-s\n" "$i PID Killed" "$(echo -ne "[ \\033[01;32m OK \\033[0m ]")"
done
sleep 2;
echo "+-------------------------------------------------------------+"
echo "Process Kill OK (프로세스가 강제적으로 종료 되었습니다.) ...... Done"
echo "+-------------------------------------------------------------+"
fi

출처

2014년 8월 14일 목요일

sftp 접속 안되는 현상.

sftp 접속시 접속이 제대로 안된다.

에러메시지도 없다. 그냥 안된다.

확인 결과는 ssh 로 접속 할 때 아래처럼 에러메시지가 나오는 데, 그냥 무시하고 사용하고

있었다.
-bash: /usr/etc/jfbterm_profile: 그런 파일이나 디렉토리가 없음

ssh 는 에러메시지가 나와도 제대로 접속이 되지만, sftp 는 에러메시지가 나오면 제대로 되

지 않는다.

2014년 8월 13일 수요일

apache 2.0.x 버젼 startssl 자동.

apache 2.2.x 버젼 이상이 아닌경우 ssl 적용 아파치 실행은
./apachectl startssl

위처럼 startssl 로 실행해야 ssl 이 적용된 아파치가 실행된다.



그냥 start 만으로 ssl 이 실행되도록 스크립트를 변경하자.
vim /usr/bin/apachectl

...
case $ARGV in
start)
    $HTTPD -k start -DSSL
    ERROR=$?
    ;;
stop|restart|graceful)
    $HTTPD -k $ARGV
    ERROR=$?
    ;;
startssl|sslstart|start-SSL)
    $HTTPD -k start -DSSL
    ERROR=$?
    ;;
configtest)
    $HTTPD -t
    ERROR=$?
...



start 인수가 들어오면 원래는 $HTTPD -k $ARGV를 실행 하게끔 되어 있지만,
따로 빼내어 $HTTPD -k start -DSSL 를 실행하도록 수정 하였다.

2014년 8월 12일 화요일

oracle sql developer 소켓 에서 읽을 데이터 가 없습니다

오라클 11g express 설치.

sql developer로 접속시 소켓 에서 읽을 데이터 가 없습니다.
(GLOBAL_DBNAME = XE)

위 코드 추가하니 접속 성공

아래는 전체 listener.ora 내용
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = XE)
(SID_NAME = XE)
(ORACLE_HOME = C:\oraclexe\app\oracle\product\11.2.0\server)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = xxx.xxx.xxx.xxx)(PORT = 1521))
)
)

DEFAULT_SERVICE_LISTENER = (XE)

2014년 8월 6일 수요일

bitnami redmine 설치 에러...

bitnami redmine 윈도우용으로 설치를 시도.

여기를 참고함.

설치 마침까지 정상적으로 나오고 index 페이지 까지 열림

index 페이지에서 Access Bitnami Redmine Stack 를 클릭해서 들어감.

Internal error 500 에러 발생.

D:\Bitnami\redmine-2.5.2-1\apps\redmine\htdocs\log\production.log 로그 확인.
ActiveRecord::StatementInvalid (Mysql2::Error: Table 'bitnami_redmine.settings' doesn't exist: SHOW FULL FIELDS FROM `settings`):
app/models/setting.rb:226:in `check_cache'
app/controllers/application_controller.rb:98:in `user_setup'

이런 에러...

mysql 확인 해보니 redmine DB 생성이 안되어 있음.

D:\Bitnami\redmine-2.5.2-1\apps\redmine\scripts>redmineini.bat 실행

중간에 에러 나옴.
rake aborted!
D:/Bitnami/redmine-2.5.2-1/apps/redmine/htdocs/db/migrate/001_setup.rb:291: inva
lid multibyte char (UTF-8)
D:/Bitnami/redmine-2.5.2-1/apps/redmine/htdocs/db/migrate/001_setup.rb:291: inva
lid multibyte char (UTF-8)
D:/Bitnami/redmine-2.5.2-1/apps/redmine/htdocs/db/migrate/001_setup.rb:291: synt
ax error, unexpected end-of-input, expecting keyword_end
:firstname => "

D:/Bitnami/redmine-2.5.2-1/apps/redmine/htdocs/db/migrate/001_setup.rb 확인 해보니,
firstname 부분에 깨진 문자가 보임.

설치시 ID, 패스워드, 이름 입력하는 부분에서 이름을 한글로 '관리자'로 설정하였는데,  그 부분인 것으로 보임.

해당 부분을 영어 'admin_first' 로 변경 후 재 실행.

제대로 설치 완료 됨.



결론 : 초기 설치시 한글 쓰지 말기를...