RedHat 계열 기준입니다.

Linux에서는 사용자를 id로 확인하기 때문에, 동일한 사용자로 인식시키기 위해서는 user의 id 값이 동일해야 함.
따라서, 사용자 생성시 -u 옵션으로 강제로 uid를 지정하거나 이미 생성된 사용자라면 uid를 강제로 변경해야한다.

사용자 생성
# useradd -u 700 -d /home/bongbong -m bongbong

사용자 수정
# usermod -u 700 bongbong


단, 사용자를 수정한 경우에는 사용자의 home directory를 제외한 나머지 경로들에 대한 uid는 변경되지 않기 때문에 관리자가 직접 변경되지 않은 경로들에 대한 소유권을 다시 변경해 줘야한다.

1. NFS 서버 설정
1) /etc/exports 수정(NFS를 통해서 내보낼 경로를 지정)
# [mount point] [mount option]
/storage    *(rw)

특정, IP만 주려고 하는 경우
/storage    xxx.xxx.xxx.xxx(rw)


rw = read,write       ro = read only

2) /etc/fstab를 수정하여 quota를 줄 partition에 usrquota(혹은 grpquota) 옵션 추가.
만약, /dev/cciss/c0d2p1 파티션에 사용자 쿼터를 주는 경우
/dev/cciss/c0d2p1      /storage       ext3      defaults,usrquota     1 2
와 같이 설정되어야 함.

3) quotacheck
# quotacheck -ugv /storage

를 수행하여 aquota.user 파일 생성(만약, group quota를 설정하였으면 aquota.group, 둘다 설정한 경우 둘다 생성됨)
디스크 용량이 큰 경우 소요 시간이 좀 걸리므로 중단하지 말고 기다려야 함

4) 쿼터 용량 수정(edquota)
# edquota [userid]

여기에서 blocks으로 설정하려고 하는 경우 해당 파티션의 블럭 크기를 알아야 설정하려는 용량대로 설정할 수 있음.

블록 크기를 알아내는 명령은 다음과 같음
# dumpe2fs [device] | grep -i 'Block size'


5) NFS 서비스 시작
# service nfs start(or restart)


2. NFS 클라이언트 설정
# mount -t nfs [ip]:/service/point /mount/point


계정에 대한 쿼타 확인은
# quota [id]

Posted by 봉보리봉봉
갑자기 방화벽 시스템이 이상해서 다시 구성하면서 메모... ㅠ.ㅠ

1. bridge utility 설치
# yum install bridge-utils


2. ip_forward 설정 변경
# vi /etc/sysctl.conf

net.ipv4.ip_forward 값을 1로 변경한다.(기본으로 0으로 설정되어 있음)

커널 파라미터를 수정하여 시스템에 바로 적용하는 경우 아래의 명령을 수행
# echo "1" > /proc/sys/net/ipv4/ip_forward


3. bridge device 생성
아래의 내용으로 다음 파일을 생성.
/etc/sysconfig/network-scripts/ifcfg-xxxbridge
DEVICE=xxxbridge
ONBOOT=yes
TYPE=Bridge
STP=on
BOOTPROTO=none
IPADDR=xxx.xxx.xxx.xxx
NETMASK=xxx.xxx.xxx.xxx


/etc/sysconfig/network-scripts/ifcfg-ethx
DEVICE=ethx
HWADDR=xx:xx:xx (기본으로 설정되어 있는 값을 사용)
ONBOOT=yes
BRIDGE=xxxbridge
BOOTPROTO=none
TYPE=Ethernet

 
4. network 재시작
# service network restart


5. iptables 초기화
# iptables -F
# iptables -X

기본적으로 CentOS를 설치하는 경우 방화벽이 활성화되어 있어, bridge에 물려있는 네트워크가 동작되지 않음.

6. 자신만의 방화벽 규칙 생성

나 같은 경우에는 shell script 파일을 생성하여, 해당 파일을 수정하여 바로 시스템에 적용할 수 있도록 관리함.
iptables을 이용한 방화벽 만들기는 다른 웹 문서에도 많으니 해당 문서를 참조한다.
Posted by 봉보리봉봉
rpm 삭제시 "여러개의 패키지를 지정합니다""라는 오류 메시지가 출력되며 삭제가 되지 않을 때는
# rpm -e --allmatches [package]
--allmatches 옵션을 줘서 삭제할 수 있다.

참고로, 보통 저런식으로 중복되어 패키지가 설치되는 경우는 패키지 설치나 업그레이드 시 오류가 발생하여 강제로 설치 또는 업그레이드를 시키기 때문임(나같은 경우에 ㅠ.ㅠ)

Posted by 봉보리봉봉
그동안에 SELinux 설정을 disable시키거나 강제가 아닌 허용 상태로 변경하여 사용하다가 이번에 서버를 다시 설치하고 SELinux 관련 설정을 변경하지 않았더니, 컴파일한 프로그램에서 shared library를 open하지 못하는 현상이 발생했다.
왜 그런지 한참을 해매다가 우연하게 ldd 명령으로 확인하다보니 permission 어쩌고 하는 오류가 발생...
구글링으로 찾아보니, SELinux와 관련된 사항이었다.

이에 기록용으로 shared library에 권한을 주는 명령을 적어본다.

# chcon -t texrel_shlib_t [shared library path]

혹은 다른 자료에서는 이러한 방법이 소개되어 있다. IDL과 관련된 공유 라이브러리에 실행 권한을 주는 방법인데...
# chcon -t texrel_shlib_t /usr/local/rsi/idl_6.3/bin/bin.linux.x86/*.so


하지만, 난 위의 방법을 사용하지 않고, SELinux 모드를 '강제'에서 '허용'으로 변경. 으흐흐
또 다시 수많은 시스템 로그가 쌓이겠지? ㅠ.ㅠ 귀찮다.
Posted by 봉보리봉봉
솔라리스 IP  변경 방법은 다른 OS와는 약간은 다름.
만날 찾아봐도 자꾸 잊어버려서 기록...

원본글은 다음 주소에서 찾을 수 있음.
출처 : SDN Korea

more..

Posted by 봉보리봉봉
LDF 파일을 읽을 수 없어서 MS-SQL Server에서 데이터베이스 상태가 '주의대상'으로 표시되는 경우, 다음과 같은 작업으로 데이터베이스 복구 작업을 수행할 수 있다.
use master
go

sp_configure 'allow update', 1
reconfigure with override
go

update sysdatabases set status=32768 where name='db name'


MS-SQL Server를 중지시키고, 문제가 되는 LDF 파일의 이름을 다른 이름으로 변경한다.

DBCC REBUILD_LOG('db name', 'LDF file path')

MS-SQL Server를 시작한다.

SELECT * FROM SYSDATABASES

sp_configure 'allow update', 0
reconfigure with override
go

DBCC CHECKDB('db name')

ALTER DATABASE {db name} SET MULTI_USER

만약, DBCC CHECKDB 명령으로 데이터베이스를 확인하여 데이터베이스에 오류가 발생한 경우는 다음의 명령으로 데이터베이스를 복구할 수 있다.

DBCC CHECKDB('db name', 옵션)
들어갈 수 있는 옵션은 다음과 같다.

(1)REPAIR_FAST : 데이타의 손실 위험 없이 빨리 복구 작업을 수행할 수 있다.(클러스터되지 않은 인덱스 복구 가능)

(2)REPAIR_REBUILD : REPAIR_FAST이 하는 모든 작업, 인덱스 재생성과 같이 시간이 소요되는 작업이 복구 과정에서 진행됨. 역시 데이터의 손실 위험은 없다.

(3)REPAIR_ALLOW_DATA_LOSS : REPAIR_REBUILD이 하는 모든 작업, 할당 오류, 구조적 행 오류나 페이지 오류, 손상된 텍스트 개체 삭제를 수정하기 위한 행과 페이징의 할당 및 할당 취소 등의 작업이 행해진다.


Posted by 봉보리봉봉
Load Balancing 서버를 구성한 경우 Monitoring Tool에서 각 노드의 서비스 확인을 위해서 지속적으로 접속을 수행하게 된다.
이러한 경우 각 노드에서의 Apache 설정에 로그를 보면, 서비스 확인을 위한 접속까지 모두 로그에 남게 된다. 사실 불필요하고, 용량만 차지하는 로그이므로 로그를 남기지 않는 방법을 사용하는 것이 좋다.

이러한 경우 Apache의 SetEnvIf 옵션을 사용하여 로그를 남기지 않을 수 있다.

SetEnvIf Remote_Addr "IP Address의 정규식 표현" except={name}
CustomLog "logs/domain-access" common env=!except


예를 들면, Control Node의 IP가 10.0.0.1이고, Apache 서비스가 동작하는 Node의 도메인이 s1.bongbong.net이라면,
SetEnvIf Remote_Addr "^10\.0\.0\.1$" except=checkalive
CustomLog "logs/s1.bongbong.net-access" common env=!except


로 설정하면, 클라이언트 10.0.0.1에서 접속하는 경우는 로그 파일에 기록하지 않도록 설정할 수 있다.

SetEnvIf에는 Remote_Addr외에도 Request_URI, Request_Method 등의 여러 변수를 사용할 수 있으며, 사용 가능한 변수는 Apache HTTP 매뉴얼 페이지를 참조하라.

Posted by 봉보리봉봉
언제부터였는지는 모르겠지만,
/etc/rc.d/init.d/ 에 shell script를 등록한 뒤, chkconfig로 서비스 등록 및 시작을 해도 shutdown(init 0)이나 reboot(init 6)시 시작된 서비스가 중지되지 않는 문제가 생겼다.

영어에 취약한 관계로 정확한 해석은 아니었지만, /var/lock/subsys 위치에 해당 스크립트 이름과 동일한 서비스가 등록되어 있지 않은 경우에 /etc/rc 에서 실행시키지 않는다는 내용을 본것 같다.

따라서, 서비스를 종료시에 꼭 실행시키려면 service 시작시에
/var/lock/subsys/{name} 파일을 만들어줘야 하며,

service 종료시에 해당 파일을 삭제해 줘야한다.

예를 들자면,
#!/bin/bash

start()
{
    [...서비스 시작에 관련된 명령...]
    [ $? -eq 0 ] && touch /var/lock/subsys/{name}
}

stop()
{
    [...서비스 종료에 관련된 명령...]
    [ $? -eq 0 ] && rm -f /var/lock/subsys/{name}
}

case "$1" in
    start)
        start
        ;;
    stop)
        stop
        ;;
    *)
        exit 1
esac

exit 0

Posted by 봉보리봉봉
뭘까... 왜 브라우저에서 쿠키에 한글 값을 쓰는데 무시가 될까...
언제부터였을까...

이상하게 그런적이 없었는데, 브라우저가 업그레이드 되면서 보안문제가 생긴걸까?

로컬 서버에서 돌아가는 건 이상이 없는데, 도메인 달고 들어가는건 쿠키에 한글 값을 저장하면 빈 값이 들어가네...

뭐 URL Encoding으로 인코딩해서 집어 넣긴했지만, 거참 소리소문없이 안되니 황당하네
Posted by 봉보리봉봉
Manual에 나와 있는대로 Direct Routing 방식으로 LVS를 구축하는 경우
각 Real Server에 아래의 설정을 추가해야 함.

이것이 원인이었는지 모르겠지만, 이 설정을 하기 전에는 한번 연결된 IP에서는 정상적으로 가상 IP에 연결이 되지만, 다른 IP를 가지고 연결하는 경우 연결이 지연되서 초기 실패하는 경우가 발생하였음

/etc/sysctl.conf에 net.ipv4.ip_forward = 0 부분을 1로 변경하여야 하며

#for ipvs

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

#end of ipvs

#for ipvs ~ #end of ipvs 부분을 추가한후

shell>sysctl -p

커널파라미터 적용

Posted by 봉보리봉봉
이전버튼 1 2 3 4 5 이전버튼

블로그 이미지
봉보리봉봉

공지사항

Yesterday32
Today65
Total142,379

티스토리 툴바