- 우분투 같은경우는 /etc/ssh/sshd_config 파일을 열어서 아래와같이 설정해주면 된다.

----------------------------------
AllowGroups
:ssh 로그인을 해당 그룹으로 제한한다. 각각의 그룹명은 공백으로 구분한다. 와일드 카드(* 와 ?)를 사용할수 있다.

AllowUsers
:ssh 로그인을 해당 유저로 제한한다. 사용법은 AllowGroups과 같다.

DenyGroups
:AllowGroups의 반대 역할을 한다. 지정된 그룹은 로그인이 거부된다.

DenyUsers
:AllowUsers의 반대 역할을 한다. 지정된 사용자는 로그인이 거부된다.
----------------------------------

자세한 내용은  : http://coffeenix.net/doc/KoreanDoc/html/SSH-KLDP/

'알짜정보 > Linux server' 카테고리의 다른 글

gentoo 에다가 qmail+vpopmail+courier-imap 설치하기  (50) 2008.03.12
스티키비트  (34) 2007.04.30
우분투 유저기본 디렉토리  (33) 2007.03.13
셸스크립트 문법  (44) 2007.03.11
lame server resolving  (24) 2006.12.31
by cranix 2007. 3. 13. 12:54
- useradd 로 사용자를 추가할때 기본적으로 생성되는 디렉토리가 있는곳

/etc/skel


'알짜정보 > Linux server' 카테고리의 다른 글

스티키비트  (34) 2007.04.30
ssh 특정 사용자 아니면 그룹을 접속 제한및 허용하기  (705) 2007.03.13
셸스크립트 문법  (44) 2007.03.11
lame server resolving  (24) 2006.12.31
웹 사용자 추가할때 확인해야할 사항  (49) 2006.12.27
by cranix 2007. 3. 13. 09:04

1. 변수 사용

변수에 값을 설정하고자 할대에는 [변수명]=[값]의 형태로 사용하며 이 변수를 사용하기 위해서는 변수명 앞에 '$'를 붙인다.

ex)

s='test'

echo $s


2. 조건문

if [조건식]

then

   [조건이 참일 경우 실행될 문장]

elif [조건식]

then

   [조건이 참일 경우 실행될 문장]

else

   [조건이 거짓일 경우 실행될 문장]

fi



3. 조건식

[ $A -eq $B ] : A와 B의 값이 같은 경우

[ $A -ne $B ] : A와 B의 값이 다른 경우

[ $A -gt $B ] : A가 B보다 큰 경우

[ $A -lt $B ] : A가 B보다 작은 경우

[ $A -ge $B ] : A가 B보다 크거나 같은 경우

[ $A -le $B ] : A가 B보다 작거나 같은 경우

[ "$A" = "$B" ] : 두 개의 문자가 같은 경우

[ "$A" != "$B" ] : 두 개의 문자가 다른 경우

[ -z "$A" ] : 문자열의 길이가 0인 경우

[ -n "$A" ] : 문자열의 길이가 0이 아닌 경우



4. 반복문

반복 실행문 for : list 갯수만큼 반복한다

for [변수] in list1 list2 list3 ...

do

     [실행될 문장]

done


반복 실행문 while : 조건이 참일 경우 반복 실행

while [조건문]

do

     [실행될 문장]

done


반복 실행문 until : 조건이 거짓일 경우 반복 실행

until [조건문]

do

     [실행될 문장]

done


 

by cranix 2007. 3. 11. 14:24
오라클 데이터베이스  scott유저의 emp테이블을 보면 empno와 mgr컬럼이 있습니다. 
 

mgr 컬럼의 데이터는 해당 사원의 관리자의 empno를 의미 합니다.
 

예를 들어서 아래의 데이터를 보면은..
 

  EMPNO ENAME         SAL        MGR
 ------ --------- ------- ----------
   7369     SMITH          800       7902
   7902     FORD          3000       7566


empno 7369사원의  관리자는 7902의 empno를 가진 사원이며
empno 7902사원의  관리자는 7566의 empno를 가진 사원입니다. 
 
 
이런 상위 계층과 하위계층의 관계를 오라클에서는 START WITH와 CONNECT BY를 이용해서
쉽게 가져올 수 있습니다. 
 
상품의 카테고리(대분류,중분류,소분류...)를 조회 할때 START WITH와 CONNECT BY를 이용하면 
트리 구조로 편리하게 조회 할 수 있습니다. 


게시판에서의 일반글과 답변글 과의 관계에서도 사용 할 수 있습니다


START WITH와 CONNECT BY를 이용해 데이터를 계층적인 순서로  조회할 수 있습니다.

 
START WITH

- 계층 질의의 루트(부모행)로 사용될 행을 지정 합니다..
- 서브쿼리를 사용할 수도 있습니다.


CONNECT BY

- 이 절을 이용하여 계층 질의에서 상위계층(부모행)과 하위계층(자식행)의 관계를 규정 합니다.
- 보통 PRIOR 연산자를 많이 사용 합니다..
- 서브쿼리를 사용할 수 없습니다..



CONNECT BY의 실행순서는 다음과 같습니다.

- 첫째 START WITH절
- 둘째 CONNECT BY 절
- 세째 WHERE 절 순서로 풀리게 되어있습니다.


-- 테스트를 위해서 scott유저로 접속을 합니다.
SQLPLUS scott/tiger


예제1)상위계층과 하위 계층 관계의 순서대로 쿼리해 옴


-- LEVEL 예약어를 사용하여  depth를 표현 할 수 있습니다.
-- 직업이 PRESIDENT을 기준으로 계층 구조로 조회합니다.

SQL>SELECT LEVEL,empno,ename, mgr
       FROM  emp
       START WITH job = 'PRESIDENT'   -- 직업이 PRESIDENT를 기준으로
       CONNECT BY PRIOR  empno = mgr; -- 사원(empno)과 관리자(mgr)의  관계를 계층 구조로 조회
   
   LEVEL      EMPNO ENAME                       MGR
--------- ---------- -------------------- ----------
       1       7839      KING
       2       7566      JONES                      7839
       3       7788      SCOTT                     7566
       4       7876      ADAMS                     7788
       3       7902      FORD                       7566
       4       7369      SMITH                       7902
       2       7698      BLAKE                       7839
       3       7499      ALLEN                       7698
       3       7521      WARD                       7698
       3       7654      MARTIN                     7698
       3       7844      TURNER                     7698
       3       7900      JAMES                       7698
       2       7782      CLARK                       7839
       3       7934      MILLER                      7782


--  LEVEL컬럼은 depth를 나타냅니다.
-- JONES의 관리자는 KING을 나타냅니다.
--  SCOTT의 관리자는 JONES를 나타냅니다.
--  예제와 같이 상/하의 계층 구조를 쉽게 조회 할 수 있습니다.



예제2) 사원성명을 계층 구조로 보여 줌


SQL>SET LINESIZE 100
SQL>SET PAGESIZE 100
SQL>COL ename FORMAT A20

-- 예제1의 결과를 가지고 LPAD함수를 이용해서 ename왼쪽에 공백을 추가 했습니다.
SQL>SELECT LPAD(' ', 4*(LEVEL-1)) || ename ename, empno, mgr, job
      FROM emp
      START WITH job='PRESIDENT'
      CONNECT BY PRIOR empno=mgr;

ENAME                     EMPNO        MGR JOB
-------------------- ---------- ---------- ---------
KING                        7839                   PRESIDENT
   JONES                  7566       7839      MANAGER
       SCOTT             7788       7566      ANALYST
           ADAMS         7876       7788      CLERK
       FORD               7902       7566      ANALYST
           SMITH          7369       7902      CLERK
   BLAKE                  7698       7839      MANAGER
       ALLEN               7499       7698     SALESMAN
       WARD               7521       7698     SALESMAN
       MARTIN             7654       7698     SALESMAN
       TURNER            7844       7698     SALESMAN
       JAMES              7900       7698     CLERK
   CLARK                  7782       7839     MANAGER
       MILLER              7934       7782     CLERK


예제3) 레벨이 2까지만 쿼리해서 가져오는 예제
 
SQL>SELECT LPAD(' ', 4*(LEVEL-1)) || ename ename, empno, mgr, job
       FROM emp
       START WITH job='PRESIDENT'
      CONNECT BY PRIOR empno=mgr
       AND LEVEL <=2 ;
   
ENAME                     EMPNO        MGR JOB
-------------------- ---------- ---------- ---------
KING                        7839                   PRESIDENT
   JONES                  7566       7839      MANAGER
   BLAKE                  7698       7839      MANAGER
   CLARK                  7782       7839      MANAGER  

예제4) 각 label별로 급여의 합과 인원수를 구하는 예제

SQL> SELECT LEVEL, SUM(sal) total,COUNT(empno) cnt
       FROM emp
       START WITH job='PRESIDENT'
       CONNECT BY PRIOR empno=mgr      
       GROUP BY LEVEL
       ORDER BY LEVEL;

    LEVEL      TOTAL        CNT
---------- ---------- ----------
        1       5000          1
        2       8275          3
        3      13850          8
        4       1900          2



데이터가 많아질 경우....

-
첫째로 풀리는 START WITH job='PRESIDENT' job 컬럼에 index가 생성되어 있지 않는다면 속도를 보장할 수 없습니다.

- 그리고 둘째로 풀리는 CONNECT BY PRIOR empno = mgr 역시 PRIOR 쪽의 컬럼값이 상수가 되기 때문에 MGR컬럼에 index를 생성하여야 CONNECT BY의 속도를 보장할 수 있습니다.
 
- 계층구조를 CONNECT BY, START WITH로 풀면 부분범위 처리가 불가능하고 Desc으로 표현하기가 어렵 습니다.


참고..

http://dblab.changwon.ac.kr/oracle/sqltest/hierarchical.html/
http://www.en-core.com/


참고로 위 정보는 네이버를 열심히 검색하다가 발견한 정보임을 밝힌다.

출처는 아래와같다.

http://cafe.naver.com/litave.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=28
by cranix 2007. 1. 18. 10:26

요즘들어 /var/log/messages 에 아래와같은 로그가 많이 남아서 검색해보니 아래와 같았다. 예전버젼에서는 이문제로 BIND 가 다운되는 현상도 있었다고 하나 요즘껀 상관없다고 한다.


Dec 31 15:35:50 cranix named[16852]: lame server resolving '121.151.236.211.in-addr.arpa' (in '151.236.211.in-addr.arpa'?): 211.236.192.11#53
Dec 31 15:35:51 cranix named[16852]: lame server resolving '121.151.236.211.in-addr.arpa' (in '151.236.211.in-addr.arpa'?): 211.236.192.11#53
Dec 31 15:35:51 cranix named[16852]: lame server resolving '121.151.236.211.in-addr.arpa' (in '151.236.211.in-addr.arpa'?): 211.236.192.11#53
Dec 31 15:35:51 cranix named[16852]: lame server resolving '121.151.236.211.in-addr.arpa' (in '151.236.211.in-addr.arpa'?): 211.236.192.11#53



<원인>

A DNS server which is supposed to be authoritative for a zone, but isnt.

If you see something like this:

Aug 7 00:57:37 colo named[827]: lame server resolving '98.96-27.40.119.62.in-addr.arpa' (in '96-27.40.119.62.in-addr.arpa'?): 62.119.40.115#53

in your BIND logs, then BIND has queried a lame server. In this case, 62.119.40.115 is mentioned as being authoritative somewhere for the zone 98.96-27.40.119.62.in-addr.arpa, but when BIND queries it, it discovers that 62.119.40.115 is not authoritative, and logs that message. The SysAdmin at the other end needs to get a clue and fix his DNS.

원본 위치 <http://www.wlug.org.nz/LameServer>

DNS 서버는 해당 존에 대한 권한을 가지고 있어야 되지만 그렇지 않을 때 BIND Lame Server라고 정의하고 아래와 같은 로그를 남깁니다.

Aug 7 00:57:37 colo named[827]: lame server resolving '98.96-27.40.119.62.in-addr.arpa' (in '96-27.40.119.62.in-addr.arpa'?): 62.119.40.115#53


예를 들어 BIND 로그에서 위와 같은 로그를 볼 수 있다면 이 의미는 62.119.40.115 98.96-27.40.119.62.in-addr.arpa 존에 대한 권한을 가진 DNS 서버로 되어있어서 BIND가 질의를 했지만62.119.40.115가 존에 대한 권한을 가지고 있지 않기 때문에 이를 Lame Server로 정의하고 로그를 남깁니다. 따라서 DNS 관리자는 원인을 찾아서 DNS를 수정해야 됩니다.


<해결책>

/etc/bind/named.conf 파일내에...

logging {
       category lame-servers { null; };
};

위의 설정을 넣고 named를 재시작하시면 로그는 남겨지지 않습니다.

/etc/init.d/named restart

'알짜정보 > Linux server' 카테고리의 다른 글

우분투 유저기본 디렉토리  (33) 2007.03.13
셸스크립트 문법  (44) 2007.03.11
웹 사용자 추가할때 확인해야할 사항  (49) 2006.12.27
유저 추가하기  (21) 2006.12.24
gentoo 에서 quota 셋팅하기  (27) 2006.12.24
by cranix 2006. 12. 31. 15:39
- 서버 사용자 추가
  - useradd -g users -d /home/users/[user] -m -c '[user] user' [user]

- 메일계정 추가
  - vadduser [user]@[domain]

- 사용자 쿼터설정
  - edquota [user]

- 도메인설정
  - /etc/bind/named.conf
  - /var/bind/sec/[domain].zone,[domain].rev

- 가상호스트 설정
  - /etc/apache2/vhosts.d

- MYSQL 유저&DB 추가
  - create database [db]
  - grant all privileges on [db].* to [id]@localhost identified by '[password]'

'알짜정보 > Linux server' 카테고리의 다른 글

셸스크립트 문법  (44) 2007.03.11
lame server resolving  (24) 2006.12.31
유저 추가하기  (21) 2006.12.24
gentoo 에서 quota 셋팅하기  (27) 2006.12.24
iptables  (21) 2006.12.22
by cranix 2006. 12. 27. 16:44
1. 루트권한 유저 추가하기
# useradd -g root -d /home/admins/ftproot -m -c 'FTP Administrator' ftproot

2. 일반 유저 추가하기
# useradd -g users -d /home/users/cranix -m -c 'cranix user' cranix

3. 유저 디렉토리까지 삭제하기
# userdel -r cranix

'알짜정보 > Linux server' 카테고리의 다른 글

lame server resolving  (24) 2006.12.31
웹 사용자 추가할때 확인해야할 사항  (49) 2006.12.27
gentoo 에서 quota 셋팅하기  (27) 2006.12.24
iptables  (21) 2006.12.22
ubuntu linux root 계정 비밀번호 바꾸기 or 지정하기  (27) 2006.12.20
by cranix 2006. 12. 24. 15:01

1. 커널에 Quota support 옵션 추가

# genkernel --menuconfig all

--> File systems - [*]Quota support  체크

2. quota 설치
# emerge quota

3. /etc/fstab 설정
# vi /etc/fstab

--> 원하는 파티션에 usrquota or grpquota 를 추가한다

4. quota.user, quota.group 만들기
# touch /quota.user   --> fstab 에서 파티션이 / 일경우

# touch /quota.group

# chmod 600 quota.*  --> 소유권한은 루트만 읽고 쓸수있도록한다.

5. quota 파일 최신으로 업데이트하기 (사용자가 추가되면 다시 해줘야한다.)
# quotacheck -mf /  --> 파티션루트가 / 일때 ( 시간이 좀 걸린다. )

6. convertquota
# convertquota -u / --> 파티션루트가 / 일때 (이제부터 계속 / 일것이다.)

7. 마운트 다시하기
# mount -o remount /

# mount --> 해당파티션에 쿼터설정이 제대로 들어갔는지 확인

8. 유저별 quota 설정하기
  - soft 경고하는거고 hard 는 더이상 못쓰게 하는거다.
# edquota cranix

--> 용량은 block(kbyte) 단위로 쓰면된다.

--> 쿼터를 수정하고 따로 quota 를 재시작해줄필요 없이 바로 적용된다.

9. quota 확인하기
# repquota -a --> 전체 quota 설정확인하기

# quota --> 자신의 quota 설정확인하기

by cranix 2006. 12. 24. 14:43
들어오는 IP 막기

iptables -A INPUT   -s [IP] -j DROP

by cranix 2006. 12. 22. 23:48
우분투에서 루트로 작업하기!

친구놈 블로그에서 발견했다!


원본가기


ubuntu 리눅스를 처음 설치했을때 당황하게 만드는 큰 원인중에 하나가 root 계정에 패스워드가 지정 되어 있지 않아서 root로 로그인을 하지 못한다는 것이다. 보안상으로 상당히 좋은 설정일 수 있으나 서버가 아닌 PC 운영체제로 리눅스를 쓰는 사람들에게는 불편하다. 그래서 온갓 삽질(싱글로 부팅해서 패스워드 지정하기) 끝에 알아낸것이 sudo 를 이용하는 것이다.

ubuntu 설치시 입력한 user는 sudo 를 실행할 수 있는 권한을 가지고 있다.

방법은 아주 간단하다. 설치시 입력한 user로 로그인한 후 터미널을 하나 열고

$ sudo bash
  Password :
# passwd

sudo bash 를 친후 요구하는 패스워드는 현재 로그인된 user의 패스워드를 입력하면된다.
저렇게 친 후에 패스워드를 입력해주면 끝이다. 그러나 조금더 강력한 보안이 필요하다면

$ sudo bash
  Password :
#

이 상태에서 루트의 권한이 필요한 작업들을 해도 된다.


by cranix 2006. 12. 20. 17:16
| 1 ··· 6 7 8 9 10 |