'Unix'에 해당되는 글 12건
솔라리스 쉘 프롬프트 변경
Unix

기본적으로 Solaris(솔라리스)를 설치하게 되면 일반 사용자는 /bin/sh , Root 는 /sbin/sh 을 기본적으로 사용하게 됩니다.

근데, 현재 디렉토리가안나오게 되죠.

기본 쉘을 사용한다는 기준아래 현재 디렉토리와 유저, hostname을 표시하게 할 경우에는 아래와 같이 설정합니다.

이왕이면 korn이나 개량된 본쉘이 낫습니다만.....그건 서버관리자의 선택에 따라야 하는지라....

일반 유저

/etc/skel/.profile 에 아래와 같은 내용을 추가합니다.

PS1="$LOGNAME@`/usr/local/bin/uname -n` [`/usr/local/bin/pwd`] $ "
cd() { chdir $* ; PS1="$LOGNAME@`/usr/local/bin/uname -n` [`/usr/local/bin/pwd`] $ "; }

$LOGNAME : 환경변수입니다. 현재 로그인된 User ID를 표시하죠.
`/usr/local/bin/uname -n` : 현재 서버의 Hostname을 표시합니다.
`/usr/local/bin/pwd` : 현재 디렉토리를 표시하는 Pwd 명령입니다.


※ 푸른색으로 쓰인 부분의 시작과 끝은 '(싱글쿼테이션)이 아니라 숫자키 1옆의 `(쿼테이션 마크, 오프닝 싱글, 그레이브 액센트 등으로 불림) 입니다. 유닉스에서는 특별한 의미가 있는 마크죠. 헷갈리지 마시길...
※ cd() 부분은 cd 라는 명령 대신 함수로 재정의하는 것으로써 디렉토리가 변경되었을 때 PS1을 재정의하는 것입니다. 풀어쓴다고 두번 나누어 썼는데. 합칠수도 있습니다.


기존에 이미 발급된 아이디들은 일일이 홈디렉토리의 .profile 을 수정해 주셔야 합니다.

Root 유저

root의 홈디렉토리의 .profile-EIS 파일을 수정합니다. 기존의 PS1은 맨 앞에 #(Sharp, 샾)을 추가하여 보존해 두시길 바랍니다.


PS1="$LOGNAME@`/usr/local/bin/uname -n` [`/usr/local/bin/pwd`] # "
cd() { chdir $* ; PS1="$LOGNAME@`/usr/local/bin/uname -n` [`/usr/local/bin/pwd`] # "; }


일반 유저와 별 차이가 없지요? 다시 로그인하시면 아래와 비슷하게 보이게 됩니다.

루트유저 프롬프트

루트유저 프롬프트

일반유저 프롬프트

일반유저 프롬프트

 

--------------------------------------------------------------------------------

root로 로그인할때 bash프롬프트 사용법

vi /etc/passwd 파일을 열어서

root 마지막 쉘쪽 sbin/sh를 bin/bash로 변경하고

wq!저장 종료

---------------------------------------------------------------------------------


출처 : http://tinyfall.tistory.com/206


'Unix' 카테고리의 다른 글

솔라리스 10 ssh 접속  (0) 2014.10.31
솔라리스(unix) 파일권한 관리  (0) 2014.10.31
솔라리스(unix) 디스크 관리 및 추가  (0) 2014.10.31
솔라리스(unix) 파일 시스템 관리(fsck, du....)  (0) 2014.10.31
unix 암호찾기  (0) 2014.10.31
솔라리스 10 ssh 접속
Unix
솔라리스 10에서 root나 다른 사용자가 SSH에 접속하기 위해서는 9와는 조금 다른 명령어가 필요합니다.
bash-3.0.0# cat /etc/ssh/sshd_config | grep PermitRoot
명령어를 치면 다음과 같이 나옵니다.
bash-3.0.0# cat /etc/ssh/sshd_config | grep PermitRoot
PermitRootLogin no
bash-3.0.0#
저기 위에 permitrootlogin "no"부분을 yes로 바꿔줘야 합니다.
vi로 열어서 " :131 " 입력하면 바로아래 permitroot 부분 수정하시면 됩니다.
bash-3.0.0# vi/etc/ssh/sshd_config
PermitRootLogin yes
바꾸시고 ESC -> : -> wq! [enter] 그리고 솔라리스9와는 달리 솔라리스10에서는 windows 의 서비스와 같은 기능이 생겼는데
그 명령어가 svcs입니다. 명령어를 입력해보면 다음과 같이 나옵니다.
bash-3.0.0# svcs ssh
STATE            STIME           FMRI
online          12:00.00        svc:/network/ssh:default
bash-3.0.0#
위에 설정한 ssh를 적용해주기 위해서는 ssh서비스를 재시작해야합니다.
솔라리스9 같은경우 저렇게 설정해주고
bash-2.5.0# /etc/init.d/ssh stop
bash-2.5.0# /etc/init.d/ssh start
bash-2.5.0# /etc/init.d/ssh restart
이렇게 해주시면 되고
솔라리스 10같은 경우에는
bash-3.0.0# svcadm disable ssh
bash-3.0.0# svcadm enable ssh
bash-3.0.0# svcadm restart ssh
해주시고 리부트 필요없이 바로 putty나 xshell로 root 외에 사용자 로그인이 가능합니다.
솔라리스(unix) 파일권한 관리
Unix

보안 시스템의 가장 중요한 기능은 인증되지 않은 사용자가
자원을 acces할 수 없고 오직 인증된 사용자만이 자원을 access할 수 있다 보통 unix나 linux의 최고 관리자는 root 다
첫번째 보안은 login할 때 이루어지고 아래의 파일들을 시스템이 조회해보고 통과시킨다.

/etc/passwd
/etc/shadow
두 번째의 보안은 file이나 directory에 permitssion 부여
root는 permitssion에 영향을 받지 않는다.


ls -l

bash-3.0.0# ls -l .profile
-rwxrx-r-- user other 144 11월 11일 17:33 .profile


-     : 파일 타입                                              r = readable

rwx : user                                                    w = writeable

rw- : group                                                   x = executable

r--  : others                                                  - = denied


Permission

 Permission

 symbol

 File

 Directory

 Read

 r

file을 읽고, copy할 수 있다

ls command로 directory list를 확인할 수 있다.

 Write

 w

 file의 내용을 수정할 수 있다

dirctory에 파일을 추가하거나 삭제가능

 Execute

 x

 실행가능한 file을 실행할 수 있다.

 cd command로 dirctory에 접근가능

EX) -rwx------ , dr-xr-x--- , -rwxr-xr-x


Permission 변경

chmod {-R} mode filename

외에 useradd, usermod, chmod, userdel, groupdel 등이 있음
그리고 chmod에서 2가지의 mode가 있는데

1. symbolic mode

2.Octal mode(absolute)


who

 op

permission(s)

u :소유자

+ : permission추가

r : Read

g : 그룹

- : permission삭제

w : write

o : others

= : permission추가

x : execute

 a : 모든 사용자

 

 

symbolic mode예제

bash-3.0.0# ls -l chmod.txt
-rw-r--r-- 1      user1      other     0 11월 11일 17:48 chmod.txt
bash-3.0.0# chmod o-r chmod.txt
bash-3.0.0# ls -l chmod.txt
-rw-r----- 1      user1     other      0 11월 11일 17:50 chmod.txt


'Unix' 카테고리의 다른 글

솔라리스 쉘 프롬프트 변경  (0) 2014.10.31
솔라리스 10 ssh 접속  (0) 2014.10.31
솔라리스(unix) 디스크 관리 및 추가  (0) 2014.10.31
솔라리스(unix) 파일 시스템 관리(fsck, du....)  (0) 2014.10.31
unix 암호찾기  (0) 2014.10.31
솔라리스(unix) 디스크 관리 및 추가
Unix
1.슬라이스
1. 실린더의 그룹
2. 0~7번 슬라이스로 구성
3. 슬라이스 2번은 절대로 건들여서는 안된다.
4. benefit
    *데이터의 조직화
    *파일 엑세스 속도 감소
    *i/o 퍼포먼스 향상
2. 디스크 슬라이스 네이밍
종류 디바이스
컨트롤 이름 c0 ,c1, c2.. host bus adapter
타겟 숫자 d0 ,d1 ,d2.. disk,type,jumper로 세팅
슬라이스 숫자 s0 ,s1 ,s2.. slice number -> 0~7까지 가능
3.하드 추가 및 디스크 관리
bash-2.05# touch /reconfigure  /재부팅할때 장치를 읽을 수 있음
bash-2.05# devfsadm            /재부팅 할 수 없는 서버가 많기 때문에
                                거의 이쪽을 많이 쓴다.(리붓없이 장치인식)
bash-2.05# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0d0 <DEFAULT cyl 22189 alt 2 hd 15 sec 63>
          /pci@0,0/pci-ide@7,1/ide@0/cmdk@0,0
       1. c0d1 <DEFAULT cyl 2077 alt 2 hd 16 sec 63>
          /pci@0,0/pci-ide@7,1/ide@0/cmdk@1,0
       2. c1d1 <DEFAULT cyl 2077 alt 2 hd 16 sec 63>
          /pci@0,0/pci-ide@7,1/ide@1/cmdk@1,0
       3. c2t0d0 <DEFAULT cyl 1021 alt 2 hd 64 sec 32>
          /pci@0,0/pci15ad,1976@10/sd@0,0
Specify disk (enter its number): 3
  • 0번은 처음 설치할때의 하드디스크고,
    나머지 1,2는 예전에 1G씩 추가. 3번이 이번에 추가한 1G 하드디스크다.
    3번을 선택해서 디스크의 파티션을 나눠보겠다.
    EX)DISK의 SLICE NAME을 꼭 기억하자. /dev/dsk/ 디렉토리에에 파일이 생성됨.
Specify disk (enter its number): 3
selecting c2t0d0
[disk formatted]


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !<cmd>     - execute <cmd>, then return
        quit
format>
  • 여러가지 메뉴가 뜨는걸 볼 수 있는데
    여기서 사용할 메뉴는 fdisk,part,verify,laber 정도이다.
format> fdisk                 /fdisk를 생성한다.
No fdisk table exists. The default partition for the disk is:

  a 100% "SOLARIS System" partition

Type "y" to accept the default partition, otherwise type "n" to edit the
partition table.

 Please answer with "y" or "n": y    /y선택
format> part     /partision인데 줄여써도 된다.


PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !<cmd> - execute <cmd>, then return
        quit
partition>
  • 위에서 설명했듯이 파티션을 누나기전에 fdisk를 꼭 생성해 줘야한다.
    part명령어를 입력하면 프롬프트가 바뀌면서 슬라이스 번호 메뉴가 나열된다.
    위에서 말했듯이 2번 슬라이스는 backup tag가 들어있으므로 절대 건들지않는다.
    0번으로 가서 파티션을 나눠보자.
partition> 0
Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0               0         (0/0/0)          0

Enter partition id tag[unassigned]:     /파티션아이디 입력 [그냥엔터]
Enter partition permission flags[wm]:   /플래그 입력 [그냥엔터]
Enter new starting cyl[0]:              /맨첫번째니까 당연히 0 [그냥엔터]
Enter partition size[0b, 0c, 0e, 0.00mb, 0.00gb]: 500mb
partition>
  • 실린더가 중요한데 기본적으로 0번 슬라이스를 제외하고 1번부터는
    실린더 번호가 중복되어서는 안된다. 예를 들어 0번 실린더에서 0-899까지 썼다면
    다음 1번 파티션 실린더에서는 900번으로 써야지 옳다.
partition> print
Current partition table (unnamed):
Total disk cylinders available: 1020 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0 -  499      500.00MB    (500/0/0)  1024000
  1 unassigned    wm       0               0         (0/0/0)          0
  2     backup    wu       0 - 1020     1021.00MB    (1021/0/0) 2091008
  3 unassigned    wm       0               0         (0/0/0)          0
  4 unassigned    wm       0               0         (0/0/0)          0
  5 unassigned    wm       0               0         (0/0/0)          0
  6 unassigned    wm       0               0         (0/0/0)          0
  7 unassigned    wm       0               0         (0/0/0)          0
  8       boot    wu       0 -    0        1.00MB    (1/0/0)       2048
  9 unassigned    wm       0               0         (0/0/0)          0

partition>
  • print라는 명령어는 현재 파티션을 나눈 정보를 출력받을수 있다.
    이제 다음 1번 슬라이스를 나눠보자.
partition> 1     /파티션 1번 나눌차례
Part      Tag    Flag     Cylinders        Size            Blocks
  1 unassigned    wm       0               0         (0/0/0)          0

Enter partition id tag[unassigned]:    /그냥엔터
Enter partition permission flags[wm]:  /그냥엔터
Enter new starting cyl[0]: 500         /슬라이더 나누기전에 꼭 print 명령어로 마지막으로 나누었던 슬라이스 실린더번호를 꼭 확인해야한다.
Enter partition size[0b, 0c, 500e, 0.00mb, 0.00gb]: $  /달러문자는 나머지를 뜻함
partition> print      /정보확인
Current partition table (unnamed):
Total disk cylinders available: 1020 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders        Size            Blocks
  0 unassigned    wm       0 -  499      500.00MB    (500/0/0)  1024000
  1 unassigned    wm     500 - 1019      520.00MB    (520/0/0)  1064960
  2     backup    wu       0 - 1020     1021.00MB    (1021/0/0) 2091008
  3 unassigned    wm       0               0         (0/0/0)          0
  4 unassigned    wm       0               0         (0/0/0)          0
  5 unassigned    wm       0               0         (0/0/0)          0
  6 unassigned    wm       0               0         (0/0/0)          0
  7 unassigned    wm       0               0         (0/0/0)          0
  8       boot    wu       0 -    0        1.00MB    (1/0/0)       2048
  9 unassigned    wm       0               0         (0/0/0)          0
  • 슬라이스를 모두 나누었다면 재부팅해도 사용할수 있게 명령어를 쳐야한다.
partition> label
Ready to label disk, continue? y

partition> quit
format> q
bash-2.05#
  • 여기서 끝이 아니고 포멧을 해야 쓸 수 있다.
    파일 시스템은 ufs(Unix FILE System)
bash-2.05# newfs /dev/dsk/c2t0d0s0      /IDE가 아닌 SCSI로 만들었다.
newfs: construct a new file system /dev/rdsk/c2t0d0s0: (y/n)? y  /Y 엔터
/dev/rdsk/c2t0d0s0:     1024000 sectors in 500 cylinders of 64 tracks, 32 sectors
        500.0MB in 32 cyl groups (16 c/g, 16.00MB/g, 7680 i/g)
super-block backups (for fsck -F ufs -o b=#) at:
 32, 32832, 65632, 98432, 131232, 164032, 196832, 229632, 262432, 295232,
 721632, 754432, 787232, 820032, 852832, 885632, 918432, 951232, 984032,
 1016832,
bash-2.05# newfs /dev/dsk/c2t0d0s1
newfs: construct a new file system /dev/rdsk/c2t0d0s1: (y/n)? Y
bash-2.05#
  • 파티션 슬라이스 갯수많큼 포멧해줘야 한다.
    UFS로 만들어 졌는지 확인도 가능하다.
bash-2.05# fstyp /dev/dsk/c2t0d0s0
ufs
bash-2.05# fstyp /dev/dsk/c2t0d0s1
ufs
  • 이제 정상적으로 마운트 할 디렉토리 생성하고 디렉토리에
    disk를 마운트 하는 일만 남았다.
bash-2.05# mkdir /c2t0d0_1 /c2t0d0_2 /c2t0d0_backup
bash-2.05#
bash-2.05# mount /dev/dsk/c2t0d0s0 /c2t0d0_1
bash-2.05# mount /dev/dsk/c2t0d0s1 /c2t0d0_2
bash-2.05# mount /dev/dsk/c2t0d0s2 /c2t0d0_backup
bash-2.05# df -h
Filesystem             size   used  avail capacity  Mounted on
/dev/dsk/c0d0s0        4.8G   1.4G   3.3G    31%    /
/proc                    0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
fd                       0K     0K     0K     0%    /dev/fd
/dev/dsk/c0d0s1        939M    30M   852M     4%    /var
swap                   1.1G    20K   1.1G     1%    /var/run
swap                   1.1G   332K   1.1G     1%    /tmp
/dev/dsk/c0d0s3        4.1G   2.2G   1.8G    55%    /export/home
/vol/dev/dsk/c1t0d0/sol_9_905_x86/s2
                       250M   250M     0K   100%    /cdrom/sol_9_905_x86/s2
/vol/dev/dsk/c1t0d0/sol_9_905_x86/s0
                       183M   173M     0K   100%    /cdrom/sol_9_905_x86/s0
/dev/dsk/c2t0d0s0      469M   1.0M   422M     1%    /c2t0d0_1
/dev/dsk/c2t0d0s1      489M   1.0M   439M     1%    /c2t0d0_2
/dev/dsk/c2t0d0s2      469M   1.0M   422M     1%    /c2t0d0_backup
  • 마운트까지 잘 되었는지 df-h로 확인하였고 이후 hard disk 추가방법은
    맨 위에 기재를 해놨지만 1. touch /reconfigure나 2. reboot — -r로 가능하다.

'Unix' 카테고리의 다른 글

솔라리스 10 ssh 접속  (0) 2014.10.31
솔라리스(unix) 파일권한 관리  (0) 2014.10.31
솔라리스(unix) 파일 시스템 관리(fsck, du....)  (0) 2014.10.31
unix 암호찾기  (0) 2014.10.31
unix crontab, runlevel,init 정의 및 사용법  (0) 2014.10.31
솔라리스(unix) 파일 시스템 관리(fsck, du....)
Unix

*fsckFileSystemCheck

파일시스템이 손상을 입었을 경우 손상된 파일시스템의 데이터에 대한 일관성을
체크하고 손상되거나 일관성이 없는 데이터를 복구하는 프로세스.

fsck 명령어로 파일시스템 체크시 이상한 파일이나 데렉토리를 찾으면 그것들을
lost+found 디렉토리에 갖다 놓는다.

fsck 명령어 사용시 -y옵션을 안주면 파일시스템 체크 후 복구하겠냐는
당연한 질문을 해대는데 당연히 복구하려고 쓰는 기능이므로 fsck 시작시 -y 옵션을 주자.

  1. 손상 원인
    Power failuer, kenel에서 software error
    Hardware failure, 부적절한 시스템 shutdown

  2. 주의 사항
    fsck 실행시 반드시 umount해주어야 한다. (디스크가 깨질염려가 있음)
    mount시 ‘logging’ option을 사용하면 fsck를 수행하지 않음
    file system이 ‘clean’,’stable’,’logging’이면 fsck 수행하지 않음


*용도

Super block에 문제가 발생한 경우
Can’t mount /dev/dsk/c0t0d0s
backup super block 위치 확인

newfs  -N  /dev/rdsk/c# t# d# s#

해결방법

fsck  -y  -o  b=32  /dev/rdsk/c0t0d0s0

single user mode에서 사용해야 함(단, / file system는 다른 곳에서 체크해야 함)


monitoring file system usages

*df

    * 현재 mount된 file system에서 사용되고 있는 디스크 공간 표시
    * Disk Free Block

command
df {-options} [directory]
    *-k -> 킬로바이트 단위로 표시
    *-h    -> 킬로바이트, 메가바이트, 기가바이트, 테라바이트 단위로 표시
    *-l -> 로컬 파일시스템만 표시

*du

    *Directory나 file에 의해 사용된 Disk Block 수
    *Disk usage    Block

command
du {-k} [directory]
    *-k -> 킬로바이트로 표시
    *-s -> 서머리 정보 표시
    *-a -> 특정 디렉토리에서 사용되고 있는 파일이나 디렉토리의 block수

'Unix' 카테고리의 다른 글

솔라리스(unix) 파일권한 관리  (0) 2014.10.31
솔라리스(unix) 디스크 관리 및 추가  (0) 2014.10.31
unix 암호찾기  (0) 2014.10.31
unix crontab, runlevel,init 정의 및 사용법  (0) 2014.10.31
unix swap,top 정의 및 명령어  (0) 2014.10.31
unix 암호찾기
Unix

root 암호찾기

root계정 암호 잃어버렸을때 어떻게 해야할지 난감하다면
아래 과정만 따라해서 찾을 수 있습니다.(솔라리스9 기준)

  1. OS 재부팅에 앞서 솔라리스9 1번cd를 넣고 재부팅을한다.
    (터미널에 reboot)

  2. 재부팅중에 vmware라고 화면에 잠깐 출력되는데 그때
    바이오스로 넘어갈수 있는 시간이 잠깐 있다(F2연타)

  3. 바이오스 화면에서 BOOT로 넘어가 HDD가 아닌 CD/DVD를
    1번 순위로 바꾸고 다시 재부팅 하면 설치화면으로 넘어간다.

  4. 설치화면에서 CD체크후 F2로 계속 넘어가다보면 회색화면이
    나오는데 입력칸에 b -s를 입력하면 다음 화면으로 넘어가게 된다.

    # b -s
    
  5. 좀만 기다리면 프롬프트가 뜨는데 기존하드(c0d0s0)를 마운트한다.

    bash-3.00# mount /dev/dsk/c0d0s0
    
  6. 그리고 shadow파일로 들어가서 root비밀번호 삭제.
    삭제 안하고 다시 암호치고 재부팅하면 안된다.
    한번 더 암호화해버려서 1번부터 다시 진행해야한다.
    vi /a/etc/shadow /root암호삭제

  7. 다시 재부팅 해서 HDD를 1순위로 올려놓고 재부팅.

  8. 비밀번호 없이 로그인이 되고 비밀번호를 변경해줘야한다.
    bash-3.00# passwd root
    

RPMLinux

RPM이란 RedHat Package Manager의 약자다.

  • RedHat에서 프로그램 설치와 업그레이드 및 삭제등을
    편리하게 하기위해 패키치 형태의 바이너리 파일을 배포중이고
    간단히 RPM이란 명령어를 통해 설치 및 삭제, 업그레이드 가능.

command

  • rpm {-options} packagename

options

  • rpm -i 패키지이름
    (패키지 설치)
  • rpm -U 패키지이름
    (패키지 업그레이드,구저번이 있으면 덮어씀)
  • rpm -e 패키지이름
    (패키지 삭제)
  • rpm -qa 패키지이름
    (패키지 조회)
  • rpm -v (설치과정을 #으로 표시)

주요 사용하는 명령어

  • rpm -ivh 패키지이름
    (패키지 설치시)
  • rpm -Uvh 패키지이름
    (패키지 업그레이드)
  • rpm -e 패키지이름
    (패키지 삭제)

의존성 패키지( - -nodeps)

  • a.rpm , b.rpm , c.rpm이 있다고 가정하고
    a라는 rpm을 설치할려고 하면 b.rpm을 먼저 설치하라고 하고
    b는 c , c는 d…이렇게 꼬리에 꼬리를 물고 설치하라고 함
  • 이럴 땐 강제로 의존성을 무시하고 강제로 원하는 패키지 설치
    *rpm -Uvh a.rpm —nodeps
  • 강제로 덮어쓰기
    *rpm -Uvh a.rpm —force

주의사항

  • rpm 파일은 다운받기도 힘들뿐더러 OS의 bit 확인해서 깔아야한다.
    64bit는 패지키네임 뒤에 x64라고 적혀있다.
  • rpm은 설치하기 쉬운방면에 옵션설정이 불가하다.
  • 컴파일은 옵션이 가능하지만 사용하기가 다른것보다 조금 어렵다.
    *configure(setup) -> make(실행코드생성) -> make instal(복사)

pkgunix

소프트웨어 & 패치 매니지먼트

  • Update = patch
  • Software = packages(솔라리스에서)
  • 솔라리스 설치경로 -> /var/sadm/pkg
  • Package 기본디렉토리 -> /var/spool/pkg
  • 설치된 프로그램 목록 -> /var/sadm/install/contents
    패치지 명령어
  • # pkginfo
    (설치된 모든 패키지 표시)
  • # pkginfo -l SUNWxf86
    (설치된 패키지 정보(-l:자세하게 출력))
  • # pkginfo -l /var/spool/pkg
    (spooling된 패키지 정보 표시 (Error))
  • # pkginfo -l -d /var/spool/pkg
    (spooling된 패키지 정보 자세히 표시)
  • # pkginfo | grep -i netscape
  • # grep useradd /var/sadm/install/contents

기본적으로 –d 옵션안주면 /var/spool/pkg/프로그램이 있다고 생각함
현재 디렉토리 밑에 있다 라는게 -d옵션임 (지정된 디렉토리 안에라는 뜻)
/var/sadm/pkg 디렉토리에 해당 package 디렉토리 생성 / 설치될 프로그램 장소
/var/sadm/install/contents / 설치될 프로그램 명단

  • Pkgadd : 패키지 추가
  • Pkgrm : 패키지 삭제
  • Pkgchk : 패키지 체크

매니징 소프트웨어 패치스
os에서 의존성패키지가 설치가 안되어서 오라클 설치가 안될수도 있음
patchadd –p : 현재 패치되어진걸 확인하는 명령어
patchrm { -f } patch_id : a에서 a`로 패치해야하는데 기존 a를 빽업을하고 a`를 a로 덮어쓴다. 문제가 되면 다시 a(원본)을 a`로 덮어 쓴다.

예제

Top-3.6.1-sol9-x86-local.gz이라는 패키지를 설치해보자

Bash-2.05# top-3.6.1-sol9-x86-local.gz를 /tmp/밑에 옮겨놓고
Bash-2.05# gzip top-3.6.1-sol9-x86-local.gz으로 압축풀거나
Bash-2.05# gunzip top-3.6.1-sol9-x86-local.gz 으로 압축을 풀고
Bash-2.05# pkgadd –d top-3.6.1-sol9-x86-local [enter]
all, y
Bash-2.05# cp /usr/local/bin/top /usr/bin/ [enter]
Bash-2.05# top [enter]

unix crontab, runlevel,init 정의 및 사용법
Unix

crontab

crontab이란 정해둔 명령을 일정 기간 마다 실행 하도록 설정하는것을 말한다.

2가지 기능

  • Cron : 주기적으로 반복되는 작업을 통칭함.

Cron 작업을 해 주는 데몬(프로그램) : crond
(*d라는게 끝에 붙으면 데몬이라고 생각하면 됨.)

Crontab : crond 가 작업을 할 작업 목록
(Cond가 작업하게 명단을 작성해주는 것)
(cron 자체는 쉬운데 저걸 실행해줄 스크립트를 만드는게 조금 어렵다)

Crontab : crontab 을 수정하는 명령어
주기적으로 반복되는 작업을 cron 내지 cron작업이라고 한다.
os에서 사용자를 대신해서 cron작업을 해주는게 있다.

사용법

  • crontab {-u user id] file
  • crontab { -u user id] [ -r | -l | -e ]

options

  • -e : 설정된 파일을 새롭게 편집
  • -d : 등록된 내용을 삭제함
  • -l : 현재 등록된 내용 보기

  • command
    1.crontab -l

  • 설정
    2.1.crontab -e (일반계정으로 사용하는 크론탭)
    2.vi /etc/crontab (수퍼유저 크론탭)
    3.vi /etc/cron.d (환경설정)

*매월 매일 3시 10분 일요일,목요일에 /etc/cron.d/logchecker 작업을 실행하여라.

bash-2.50#
bash-2.50# vi /etc/cron.d/logchecker 
10 3 * * 0,4 /etc/cron.d/logchecker
bash-2.50#
bash-2.50# crontab -e
bash-2.50#

10(분) 3(시간) (매일) (매월) 0 , 4(0은 일요일기준)

bash-2.05# cd /var/spool/cron/crontabs/
bash-2.05# ls
adm   lp    root  sys   uucp

adm이라는 crontab, root라는 crontab, sys라는 crontab, uucp라는 crontab

크론탭 생성명령어

#EDITOR-vi
#export EDITOR
#crontab -e
#10 3 * * * /test/a.sh

#crontab –e -> 작업이 실행최면 해당 계정으로 전송되어 /var/spool/cron/crontabs 로 보내진다.
Crontab –e = vi /해당경로로 열어도 됨 , 보통은 vi로 디렉토리가서 열어 작업을 많이 함
*# vi /etc/cron.d/cron.deny (haha라는 사용자는 cron을 사용하지 못함)

사용자에게 crontab 명령어 사용 설정

# /etc/cron.allow   /id등록
#
# /etc/cron.deny    /id등록

서비스

# /etc/rc.d/init.d/crond start
#
# /etc/rc.d/init.d/crond restart
#
# /etc/rc.c/init.d/crond stop


program boot system

Boot Program

  • unix 프로그램 load
    Krtld load(ntmdr 윈도)
    커널한테 명령하는 파일
  • Kernel Initialization
    변수값 설정 /etc/system
    왠만해선 건들일이 없음

run level

2가지가 있다

  1. run level
  2. who –r

Run Level 0
PROM 상태
인텔 시스템의 BIOS상태

Run Level S, s

  • Single user mode
  • 파일 시스템 복구나 백업하는 용도로 사용
    /, /usr, /var, /etc, /dev, /devices, /proc, /dev/fd, /var/run, /var/adm mount

Run Level 1

  • Single user mode
  • 모든 지역 파일 시스템 mount

Run Level 2

  • Multi user mode
  • 모든 지역 파일 시스템 + 원격 파일 시스템 mount
  • NFS, Samba, Web Service 제공 안됨

Run Level 3

  • Multi user mode
  • NFS, Samba, Web Service 제공
  • Default Run Level

Run Level 4

  • 사용 안함

Run Level 5

  • 시스템 종료
  • 모든 서비스 중단
  • 파일시스템 unmount

Run Level 6

  • 시스템 재부팅
  • 모든 서비스 중단
  • 파일시스템 unmount

-r

현재 Run level과 이전 Run Level 출력

bash-3.0.0# who –r
    .    Run-level 3    102708:00    3    0    S


init

Init
/etc/inittab -> 각 모드별로(level별로) 해야되는 일을 적어놓은 파일(중요)
Vi /etc/inittab
#is:3:initdefault :기본값
s0:0:wait:/sbin/rc0 /sbin밑에 rc0을 실행해라
bash-2.05# cd /etc/rc3.d
bash-2.05# ls
README S15nfs.server S50apache S77dmi S84appserv
S13kdc.master S16boot.server S52imq S80mipagent S89sshd
S14kdc S34dhcp S76snmpdx S81volmgt S90samba
S로 시작하는 파일들은 스크립트를 시작해라.

/etc/inittab를 참조하는 shutdown 명령어
shutdown -g 10 -i 6 -y “system reboot after 10 sec”
-y : yes, -n : no
-g : default 60 sec, 명령 실행 후 종료시까지의 시간
-I : default S, 런 레벨 지정
0, 1, s, 5, 6 런 레벨로만 변경 가능

'Unix' 카테고리의 다른 글

솔라리스(unix) 파일 시스템 관리(fsck, du....)  (0) 2014.10.31
unix 암호찾기  (0) 2014.10.31
unix swap,top 정의 및 명령어  (0) 2014.10.31
UNIX,LINUX 사용자 관리 및 그룹관리  (0) 2014.10.31
서버보안 및 원격접속  (0) 2014.10.31
unix swap,top 정의 및 명령어
Unix

Pseudo F/S and SWAP

  • Pseudo : 의사코드(~할 의사가 있다. 가짜코드), 설명할 용도의 F/S (File System)
  • 사용자가 건드리는건 아니고 pseudo는 커널이 건드림
  • /proc : 돌고 있는 프로세스 정보를 파일로 만들어 놓은 것임(돌고 있는 프로그램 명단)
  • sdt processe의 네트워크 버전 -> pr step
  • load avg : 평균 부하율

top 명령어

(top이라는 패키지가 설치되어 있어야한다.)

shift + p : cpu 우선순위
shift + m : memory 우선순위
k        : kill

Swap Space Overview

tmpfs File System : 램이 부족할 때 swap으로 쓸 때 씀
tmpfs의 size가 큰 파일은 프로그램 실행에 영향을 준다. - 솔라리스는 기본적으로 가상메모리에 tmpfs를 사용하도록 설정되어 있기 때문

  • swap command
  • swap { options } { argument }
    -l  : swap space List 표시
    -a : swap space 추가
    -d : swap space 삭제
    -s  : swap space 요약 정보
    

*주의사항
swap을 많이 쓴다는건 ram이 부족하다는건데 너무 남용하면 큰일남 해결책으로는 ram을 증설해주면 된다.

'Unix' 카테고리의 다른 글

unix 암호찾기  (0) 2014.10.31
unix crontab, runlevel,init 정의 및 사용법  (0) 2014.10.31
UNIX,LINUX 사용자 관리 및 그룹관리  (0) 2014.10.31
서버보안 및 원격접속  (0) 2014.10.31
NFS 서버로 원격접속하기  (0) 2014.10.31
UNIX,LINUX 사용자 관리 및 그룹관리
Unix

useradd

  • useradd -u uid(주민번호) -g gid(부서번호,메인그룹) -G gid(보조그룹) –d dir(홈 디렉토리)
    -m (리눅스는 안붙이고 유닉스는 붙여야함, 저게 없으면 login을 할수없음)
  • Bin/ksh(콘쉘) , Bin/ssh(쉬쉘) ,Bin/bash(바쉬쉘)

*useradd –D를 치면 기본값들이 나옴

*사용자 정보저장 위치:/etc/passwd ,

  • 암호저장 위치:/etc/shadow

*유저삭제 : userdel –r loginname

  • -r옵션을 안주면 계정만 지워지고 파일, 디렉토리는 남아있음
  • -r옵션을 주면 계정 및, 파일 디렉토리..계정에 속한 모든것들이 지워짐

usermod

usermod –u uid –o(overwrite) 자신의 정보를 보고 싶으면

bash-3.0.0# #id

passwd파일에서 root외에 uid가 0인 계정이 있으면 누가 호작질한거임
유저가 oracle이였는데 userdel –r(안줌) oracle 해서 확인
유저는 삭제 됐는데 oracle디렉토리가 남아있음
그래서 useradd u 100 oracle3으로 해서 예전 oracle uid를 따라감
그리고 디렉토리에 접속 할려고 했는데 노디렉토리 뜸. 안됨

userdell

-r : 디렉토리까지 모두 제거

bash-3.0.0# userdel oracle     /oracle 계정"만" 제거. 디렉토리 파일들은 모두존재
bash-3.0.0# userdel -r oracle  /oracle 계정과 디렉토리, 파일 모든것이 삭제

Passwd

그냥 passwd치면 현재 계정의 암호를 바꿀수 있고,
바로뒤에 Passwd username 하면 다른 유저의 계정 암호를 바꿀 수 있음.(root만 가능)

bash-3.0.0# passwd root


group

그룹이란 특정 폴더나 파일을 특정 권한이 있는 사용자들만이 함께 사용하기 위해
해당 사용자들에게 권한을 부여하여 그룹 단위로 묶어 관리할 수 있는 것

그룹 명령어

  • groupadd : 그룹추가
    bash-3.0.0# groupadd oracle
    
  • groupmod :그룹id나 이름 변경
    bash-3.0.0# groupmod -n 변경후이름 변경전이름
    
  • groupdel : 그룹제거
    bash-3.0.0# groupdel 그룹명
    
  • groups : 사용자가 속한 그룹 목록 표시
    bash-3.0.0# groups 계정명
    
  • usermod [옵션] [그룹명] [사용자명] : 그룹에 사용자 추가
    bash-3.0.0# usermod -G dba oracle
    

그룹 비밀번호 변경 / 사용자 관리
명령어

  • 그룹 비밀번호 변경 : gpasswd [그룹명]
  • 사용자 관리 변경 :gpasswd [옵션] [사용자명] [그룹명]

옵션

  • -A[사용자명] [그룹명] : 사용자를 해당 그룹의 관리자로 임명
  • -a[사용자명] [그룹명] : 사용자를 해당 그룹의 사용자로 추가
  • -d[사용자명] : 사용자를 해당 그룹에서 제거

'Unix' 카테고리의 다른 글

unix crontab, runlevel,init 정의 및 사용법  (0) 2014.10.31
unix swap,top 정의 및 명령어  (0) 2014.10.31
서버보안 및 원격접속  (0) 2014.10.31
NFS 서버로 원격접속하기  (0) 2014.10.31
solaris10 설치 + Oracle 10g  (0) 2014.09.02
서버보안 및 원격접속
Unix

서버보안

실패감사

/etc/default/login 에서 설정
RETRIES - 5 /5번 실패시 /var/adm/loginlog에 writing
Console = /dev/console 앞에 #으로 주석처리할 것

위 설정후 telnet local host로 접속후
계정과 틀린암호 여러번 입력하면 아에 프롬프트가 사라져버린다.
/var/dadm.loginlog

-를 안붙이면 환경설정이나 모든걸 자신껄 씀(root의 신분 그대로 이름”만” 바뀜)
-를 붙이면 아에 계정자체가 바뀜(신분자체가, 모든환경)

Gid : 14번 그룹은 조심해야함 사용자 계정 및 소프트웨어를 실행할수 있음(권한없어도)

CONSOLE=/DEV/CONSOLE 콘솔,네트워크 모두 가능
CONSOLE=/DEV/CONSOLE 콘솔에서만 접속 가능함
CONSOLE=#/DEV/CONSOLE 모두 불가함


Chown : 주인이 바뀌어버림.
Chown –R(하위경로까지) oracle.dba /경로
Passwd 파일 찾기

  • Find / -name passwd
  • Which passwd

setuid

  • 실행 파일을 실행시 소유자의 실행권한으로 실행
  • 4000 [ chmod 4555 file1 ]
  • s or S(접속 못함)
  • setuid,setgid를 같이 주고 싶으면 앞자리 (uid)4555 + (gid)2000 = 6555

useradd -d /export/home/oracle -m oracle



서버 원격접속 및 파일 주기

초기화 파일

  • 사용자마다 다른 설정
    1. 시스템 와이드 초기화파일 : 모든 사용자한테 알린다.
  • /etc/motd라는곳이 인사말을 출력해준다(모든 사용자한테)
    1. 유저 초기화 파일 : 특정 사용자한테만 알린다

파일주고받기

*유닉스1과 유닉스2끼리 공유 할려면 SCP(카피)로
서로 공유, 및 파일 디렉토리를 옮길수 있음(SSH는 접속)

*윈도우1과 윈도우2끼리 공유 할려면
윈도우1에 공유폴터만 있으면 쉽게 공유할 수 있다.

*유닉스1과 윈도우1끼리 공유할려면 WINSCP를 이용하면 가능하다.

# SSH (*)172.16.5.??? 하면 다른 서버의 유닉스로 들어갈수 있다.
여기에 ORACLE계정으로 들어가고 싶다 하면 SSH ORACLE@172.16….

파일주기

SCP temp/a.txt 172.16.5.110:/a103.txt

파일받기

SCP 172.16.5.103:/a103.txt /temp/

*처음 들어갔을 때 bash로 접속하는법
Vi /etc/passwd/ -> root쪽 쉘 bin/bash

원격접속

server A와 server B간의 접속

  • a,b서버간의 같은 계정이 있어야 한다.

1.server B : ip와 호스트서버명 추가

bash-3.0.0# vi /etc/hosts
#
#internet host table
#
127.0.0.1 localhost
172.16.5.100 server100
#
#
bash-3.0.0#

2.server B : 호스트서버명과 계정명 추가

bash-3.0.0# vi /etc/hosts.equiv
#
#
server100 oracle   /server100 oracle계정 접속허용
server100 +        /oracle말고 +를 입력하면 암호없이 접속허용
#
#bash-3.0.0#

3.root로 접속 가능하게 하기

bash-3.0.0# vi .rhosts
#
server100 +
#
#
bash-3.0.0#

4.server a -> server b접속하기

bash-3.0.0# rsh server100