Solaris System Administration I

1장 Unix System 개념

<< Main Parts >>
· Kernel
· Shell
· File structure

 Kernel의 역할
- 디바이스, 메모리, 프로세스 관리
- 시스템 프로그램과 하드웨어사이의 함수 관리
- Swarp space, Daemon 관리
 OS Shells
- 명령어 해석기, 번역기
 File System
 - Solaris의 파일 구조는 트리형태로 되어 있으며, 디렉토리, 서브디렉토리, 파일등은 하이락키걸한 트리 구조로 연결되어 있다.

2장 The Boot PROM

 << Boot PROM contents >>
 Power-On self-test(POST)
 Device drivers
 User interfaces
 << NVRAM contents >>
 Ethernet address
 HostID
 Configuration parameters

Basic Boot PROM Commands
>OK banner
>OK boot (부팅 명령)
>OK printenv (prom,nvrom의 기본값을 보여준다)
>OK setenv
>OK reset (ROM 값을 적용. Reboot)

Boot Command Option
>OK boot --a (interactive  booting)
>OK boot --r (장치를 새로 달았을경우 사용)
>OK boot --s (Single mode booting)
>OK boot --v (Display detailed start up message)

Changing the Default Boot Device
>OK printenv
>OK setenv auto-boot? False
>OK reset

Keyboard Input at Power Up
 Stop -n (PROM값 default PROM값으로 변경)
 Stop -a (운영체제 booting후, PROM상태로 다시 돌아감) -> 운영체제로 go

Using the Solaris eeprom Command
>OK setenv boot-device disk
>OK auto-boot? False
#eeprom boot-device = disk
#eeprom “auto-boot?” = false

¨ Troubleshooting the Boot Process ¨
 Stop + a sequence
 Sync;
 go

3장 Solaris 설치 및 네트웍 설정 방법

<< System을 install한 후에 해야 할 일들 >>
1. /etc/hosts 파일 수정
> 호스트명, 주소 입력
127.0.0.1 localhost
203.234.247.214 sunedu214 sunedu214.suned.co.kr loghost

2. /etc/defaultrouter 생성
> geteway 정보 입력
203.234.247.254

3. /etc/nsswitch.dns /etc/nsswitch.conf
> DNS 서비스 정책 결정한다. COPY하여 설정한다.
 
4. /etc/resolv.conf
> DNS서비스를 해주는 호스트 정보 등록. IP,NAME
domain suned.co.kr
nameserver 203.234.247.1

5. /etc/default/login
> root의 telnet login가능하도록 지정 (주석처리)
..
..
# CONSOL=/dev/console
..
..
6. passwd -e
 shell변경 command
passwd -e
old shell : /sbin/sh
new shell : /bin/ksh (korn shell로 변경, 기능이 더 좋음.)
 
7. route add default 203.234.247.254
 Default gateway 설정한다. Rebooting시 지워짐.
 따라서 /etc/defaultrouter 파일에 기록
 
8. 네트웍 설정 완료. Ping test

제4장 Software Package Administration

Package
: Solaris System에 Software 웨어를 말하며, 이것을 설치하는 것을 “패키지를 설치”한다고 한다.

1. Pkg 관련 command
 #pkginfo -d /cdrom/…
> 시스템에 설치된 package 정보를 확인하며, -d 옵션은 서브 디렉토리의 package 정보를 볼 수 있도록 한다.
 #pkgadd -d /cdrom/..
 /cdrom/.. 디렉토리에 존재하는 software를 설치한다.
 #pkgadd -d /cdrom/.. -s /pkg : -s 옵션은 저장할 곳을 지정하는 옵션이다.

 pkgrm pkg명
> 패키지 지움

 pkgchk pkg명
 시스템에 설치되어 있는 패키지 확인

<< 패키지 설치 실습 : ftp로 가져와서 설치>>
ftp : ftp.sunfreeware.com
다운 받을 파일
- .xmemory
- .gzip
- top
- ghostview

1. ftp로 위의 4개 파일 받기
2. gzip부터 설치한다.
#pkgadd -d /tp/xx_local
    3. 다른 software 설치
#gzip -d 파일명(xxx.xxx.gz)
    4. 패키지 add
#pkgadd -d /tp/xxx_local
    5. ./profile 패스 지정하기!
       #. /.profile 파일에 /usr/local/bin 패스 추가

2. 패키지 인스톨 정보는 /var/sadm/install/contents 파일에서 명시되어 있다.

3. 패키지의 default spool은 /var/spool/pkg 이다.
   > 다른 디렉토리에 Software 복사후 설치하기.
# pkgadd -d /cdrom/s0/solaris2.7/product -s /export/pkg SUNWaudio

4. admintool를 이용해서 패키지 설치가능

제5장 Maintaining Patches
 Patch 파일을 다운받아 설치하는 것

<< Patch 설치 방법 >>
1. ftp sunsolve.sun.com에서 다운 받는다.
/pub/patches
2. patch report down 받아, 참조한다.
3. patch 파일, readme 파일 다운 받는다.
6. /usr/bin/unzip ./xxxx.zip 압축을 푼다.
<참조> 압축관련된 참조사항
 .tar.Z
 #uncompress xxx.tar.Z >> 결과:xxx.tar
 #tar xvf xxx.tar >> 결과: xxx
 zcat/gzcat
 #zcat xxx.tar.Z | tar tar xvf - >> 결과: xxx
 #gzcat

5. patchadd command를 이용하여 patch설치
# patchadd xxxx

제6장 The Boot Process

<< Booting 과정 - 1>>

1. PROM 단계
2. Boot Block Read
3. Kernel
4. Init

<< Booting 과정 - 2 : 자세히 >>

1. PROM
> (POST)
2. banner
 boot device 확인
3. label
파 티션 확인
4. boot block read
 sector 1-15
 file system reader
5. ufsboot
 실질적 booting : kornel 구동
 /platform/`uname -m`/ufsboot
6. 커널 모듈 실행(load kernel modules)
7. read /etc/system
 사용자와 kernel간의 변경사항 없는지 확인
8. init 실행
> read /etc/inittab

Booting 과정

<< Boot PROM phase >>
1. PROM runs self-test diagnostics
 시스템 하드웨어, 메모리 self test
2. OK printenv boot-device
 system 정의 banner
(model type, keyboard type, PROM revision number, PROM serial number, Ethernet address, hostID)
3. OK boot
reads disk label (sector 0)
 default boot device에 sector 0의 disk label를 읽는다.(파티션 확인)
4. Reads book block (sector 1-15)
 boot PROM 프로그램이 bootblk이라는 시스템 primary boot 프로그램을 읽는다.
5. PROM loads boot block (bootblk)program
 boot 프로그램을 load시킴. 메모리에 boot 프로그램 로드
 /platform/’uname -m’/ufsboot
<< Boot program phase >>
실질적 booting : kornel 구동 단계
6. The boot block program loads the boot (ufsboot) program
7. The boot (ufsboot) program loads the 32bit or 64bit kernel
<< Kernel initialization phase >>
8. Load kernel modules
 커널 모듈 실행
9. Read /etc/system file
 사용자와 kernel간의 변경사항 없는지 확인
 < 변수 >
 moddir variable : default module directory 설정
 rootdev variable : root file system 의 물리적 path
 exclude variable : 배제 변수
 forceload variable : 부팅시, force module 변수
 set variable : kernel 변수 값
10. The kernel initializes itself and starts the init process
<<The /sbin/init phase>>
11. The init process starts the run control scripts

1. /etc/system  파일 변경
 # cp /etc/system /etc/system.old
 # 변경
 # 커널 변수 변경후 reboot
 #init 0 -> ok> boot -r
 #reboot -- -r

2. Boot Run Levels

Run Level Function
0 PROM 상태
1 Administrative state (single-user mode with file systems mounted and user logins disabled)
2 Multi-user level ( with no resources shared)
3 Multi-user level (with resources shared)
4 Not currently used
5 Halt(and turn off Sun-4m and Sun-4u architectures)
6 Reboot to default run level 3
S,s Single-user mode with user logins disabled

<< run level 확인 command >>
# who -r

3. /etc/inittab file 구조
s3:3:wait:/sbin/rc3
s3: id
3: run level
wait : init가 취해야할 action
/sbin/rc3 : /sbin/rc3가 실행될 동안 wait 한다. 위의 것과 관련 있음.

4. init Process , /etc/inittab file

/sbin/autopush
 메모리에 커널 모듈을 올리는 프로세스
/sbin/soconf
 socket load
/sbin/rcS
/sbin/rc2
/sbin/rc3
/usr/lib/saf/sac
 포트 모니터를 감시하는 데몬
/sbin/lib/saf/ttymon
 login시 창을 제공하는 데몬

<< /etc/init.d에 실행화일 만들고, /etc/rc2.d에 링크걸어 시스템 rebooting >>

1. testrc 생성
2. ln testrc /etc/rc2.d/S80banner
3. 실행화일 testrc는 /etc/init.d에 존재
(이곳은 실행화일이 존재하며, /etc/rc2.d에는 링크화일들 존재)
4. chmod a+x testrc
5. shutdown -y -g- -i6 (reboot)

제7장 Changing System States (shutdown..)

<< System Shutdown , Power off 관련 Command >>

Clean Shutdown
<< rc0 script를 읽음>>
1. init
2. Shutdown
위 init, shutdown command의 차이는 사용자에게 메시지를 보여주느냐, 아니냐의 차이이다.

Non clean Shutdown
<< rc0 script을 읽지 않고 실행>>
1. halt
2. poweroff
3. reboot (#reboot -- -s)


1. PROM MODE
# init 0
2. Boot Command
ok> boot -a : interactive boot
ok> boot -s : single user mode boot
3. Shutdown Command
# shutdown -y -g -I [message]

제8장 System Security

1. /etc/passwd
root:x:0:1:Super-User:/:/sbin/sh
 User ID
 패스워드 : 사용안함
 User ID
 Group ID
 Comment
 home Directory
 login shell : /bin/ksh

2. /etc/shadow
root:Lxeokt/c/oXtw:6445::::::
 Group ID
 패스워드 (*LK*- Lock login 불가능, NP - No password 패스워드 없음)
 lastchg - 패스워드가 마지막으로 변한 날짜

 min - 패스워드 유지될 최소기간
 max - 패스워드 유효한 최대기간 (over시 lock 발생)
 warn - 경고기간 (expire되기전 경고기간)
 inactive - 패스워드 유효한 기간
  ex) 5일이면, 5일에 한번은 들어가야 한다.
 expire - 패스워드 유효한 만기 기간

3. /etc/group
groupname:password:GID:userlist
ex) root::0:root
 group name
 패스워드
 GID
 userlist
참조사항: sysadmin Group : 14

4. id
 본인의 user ID, user name, group ID, group name 확인시 사용하는 command

5. User 변경 Command
<< 실습 예제 >>
# su user01 ( user ID 변경)
 id 변경
 패스워드 묻지 않음.
 # 상태 변경 안됨
# su - user01 ()
 id 변경
 home directory 변경
 # 상태에서 -> $ 상태로 변경
위의 두 command의 차이는 .profile의 실행 차이이다.

# who am I (login한 original id)
# whoami (현재의 id)

6. Ownership 관리 : chown command 관리
# chown lister:staff mydocs
소유자/그룹 동시에 변경
참조: chown command는 root만 사용가능

7. /etc/default Directory 에 존재하는 파일
  보안 관련 파일 : 3개
 passwd

 login
> ULIMIT=0
사용자가 사용할 수 있는 DATA BLOCK(514K). 현재 제약없음.
> CONSOLE=/DEV/CONSOLE
  LOGIN 가능한 CONSOL, #처리시 REMOTE LOGIN
> PASSREQ=YES
모든 사용자는 패스워드를 소지해야 한다.
> ALTSHELL=YES
사용자 SHELL변경할 수 있도록 처리
>PATH
DEFAULT PATH
>TIMEOUT=300
로그인 타임 아웃
>UMASK=022
CSHELL에서만 적용가능.
>SYSLOG=YES
로긴시 로그를 남기도록 처리

 su
> SULOG=/VAR/ADM/SULOG
슈퍼 유저 로그인시 모든 파일 WRITE
> #CONSOLE=/DEV/CONSOLE
  일반 사용자가 root로 성공한 경우만 보여줌
참고: CONSOLE 변수에 대한 설명없으면 NETWORK 로그인 안됨.
USER로 로그인하고 SU로 로그인해야한다.

제9장 Adding Users

사용자를 추가하는 방법
첫번째: admintool를 이용한다.
두번째: command를 사용한다. useradd
우리는 여기서 두번째 방법을 사용한다.

<< 실습 예제 - 사용자 등록>>
1. group 추가
#groupadd -g 100 mgt

2. user 추가
(일반 사용자추가는 UID 100번이상 사용한다)
#useradd -u 1006 -g 15 -G mgt -d /export/home/user06 -m -s /bin/ksh user06

3. user 추가후 패스워드 지정
#passwd user06
(root권한으로 사용자의 패스워드 지정)

<< 실습 예제 - 사용자 id 변경 >>
1. usermod -d /export/hoem/myguest -m -l myguest(new id) guest(old id)

2. 사용자 삭제
# userdel -r user06 (디렉토리까지 삭제)

제10장 Administration of Initialization Files

1. .dtprofile file
/usr/dt/config/sys.dtprofile에
DTSOURCEPROFILE=true로 설정해야 사용자들의 shell 초기화일(.profile, .kshrc, .cshrc, .login)을 읽는다.

2. /ect/profile file
 LOGNAME과 같은 환경변수 지정
 PATH
 TERM
 /etc/motd file의 내용 display
 default permission : umask
 메일 체크 부분

3. /etc/skel directory
사용자 등록시 초기 profile 정의

제11장 Advanced File Permissions

1. Oictal Mode
# chmod u:r-x,g:rw-,o:r- file명

File max permission 666
Directory max permission 777

2. setfacl command
Access Control List (ACLs)
특정한 사용자에게 파일 퍼미션을 부여하는 것

<< 실습예제 >>
#setfacl -m u::7,g::4,o::0 파일명
= chmod 740 aaa

<<친구 추가>>
#setfacl -m u:st(사용자명):7 m:4 bbb
m: mask값으로 친구가 가질 수 있는 최대의 퍼미션 권한

#setfacl -m user:user06:6 aaa
#확인방법 : ls -l aaa
#삭제방법 : setfa치 -d user:user06:6 aaa
파일에 존재하는 ACLs 정보확인
#setfacl aaa

2. setuid, setgid Permission
>> 실행시킨 사람이 임시적으로 setuid, setgid root권한으로 파일을 실행시킬수 있는 권한이다. 예를 들면, 패스워드 파일, shadow파일 같은 것이다.

· setuid
실행화일에 사용됨. Ex)root
· setgid
같은 project에 실행권한을 주기위해서 setgid사용 ex)sys
· stiky bit
디렉토리에 준다. 디렉토리에 write/read 가능하도록 하기 위해서 준다.
Ex) /var/tmp 모든 사용자가 사용가능하다.
지우는 사람: root, file 삭제자는 file 생성자만 가능.

사용 관련 사항
4 = setuid
2 = setgid
1 = sticky bit

#chmod 4755 setuid_program
#chmod 2755 setgid_program

<< 실습예제 >>
$cp /bin/ksh $HOME/ksh
$su root
#chown root $HOME/ksh
#chmod 6755 $HOME/ksh
(setuid, setgid 설정: 파일 실행시 owner 권한을 가짐. 소유자가 root권한을 가지게 한다.
exit
$./ksh
(실행시킨 사람이 소유권을 가지게 된다. Root가 소유권을 받아 #상태가 된다)
$who am I : root
$id : user

제12장 Process Control

# ps -ef
#kill 1400
> default signal 15 (제거 signal)
> 강제 : 9
#pgrep -lf sendmail
> 프로세스 실행 확인 command
#pkill sendmail
> 프로세스 kill

#at 1045
> 10시 15분에 특정한 job를 수행하도록 처리한다.

#/var/spool/cron/crontabs 파일을 수정하여 주기적으로 job을 수행하도록 한다.
참고사항:명령어는 full path을 지정해야 한다.

제 13장

instance Names
 물리적 장치에 약어적인 이름 부여
 부팅시 /etc/path_to_inst file 읽음.
 만약 지우고 booting하면, booting이 느려짐.

Dmesg command
시스템에 연결된 디바이스을 확인가능하다.
디바이스의 물리적 이름과 instance 이름을 확인할 수 있다.

Format command
물리적, 논리적 디바이스 이름 보여준다.

Prtconf command
시스템의 하드웨어 장치 확인 가능
(system configuration info, memory, peripheral configuration)

<< 새로운 디스크를 추가하는 방법 >>
 create a /reconfigure file
 set the SCSI target number
 Connect the new disk to the system
 Turn the power on
 Boot the system

<< 파티션 나누기 >>
 format > patition
 fsch/newfs
 mount

제 14장 Disks, Partitions, and Format

Format Utility
 새로운 디스크를 파 티션 나누고, 재파 티션 할 수 있다.
 Disk label (VTOC)
- disk의 label은 disk VTOC라도 한다.

<< 파티션 나누는 방법 >>
1. label
2. fsck /dev/rdsk/c0t0d0s6
fsck /dev/rdsk/c0t0d0s7
3. newfs /dev/rdsk/c0t0d0s6
newfs /dev/rdsk/c0t0d0s7
4. mkdir /p2
5. mount /dev/dsk/c0t0d0s6
6. mount /dev/dsk/c0t0d0s7


etc/format.dat
파 티션 정보 지정화일
#prtvtoc : label 정보 display

제16장 Mounting File Systems
Mounting Files
: file system에 나누어진 프로세스들이 file tree structure에 붙는 것을 말한다.
Mounting,unmounting 파일 시스템은, 시스템 startup, shutdown되는 동안에 /etc/vfstab 파일에 entry들을 기본으로 발생한다.

#mount Command
mount에 관련된 정보는 /etc/mnttab file에서 참조한다.
#mount -o logging /dev/dsk/c0t3d0s6 /usr
transaction log 남김. Log 참조하여 부팅. 부팅시간 빠르다.
#mount -o nolargefiles /dev/dsk/c0t3d0s7 /export/home
2기가 이상 mount안된다, 2기가 이상이면, fsck를 실행하고 mount한다.

#mountall, unmount command
 mountall -l : local만 mount
 mountall -r : remote만 mount (NFS)
/etc/vfstab 참조

<< 새로운 File System Mounting >>
1. #mkdir /database
2. #mount /dev/dsk/c0t2d0s5 /database
3. /etc/vfstab file에 디스크 추가한다.
<< File System Type는 다음 순서로 mount >>
1. -F option으로 file system 인식
2. /etc/vfstab file로 file system 인식
3. /etc/default/fs로 ufs file system 인식
4. /etc/dfs/fstypes로 file system 인식

<< NFS Client Access, Server 작업 >>
Server쪽 작업
 /etc/dfs/dfstab 수정 (추가)
  #share -F nfs -o rw -d “script” /p1
 #dfshares [hostname]확인한다.
 #/etc/init.d/nfs.server stop
   #/etc/init.d/nfs.server start (공유실행)
 directory permission 변경
#chmod 647 p1

Client쪽 작업
 #dfshares sun240(hostname) : 공유해준거 확인
 #mount -F NFS sun240:/p1 /mnt
Client 자동 부팅시 mount되도록 처리
 #/etc/vfstab 수정 (추가)
sun240:/p1 - /mnt nfs - yes -
 halt, rebooting
#shutdown -y -g0 -i6

<< root 패스워드 상실시, 처리 방법 >>
1. cr-rom으로 solaris 7부팅
2. single-user mode booting
#boot cdrom -s
3. fsck /dev/rdsk/c0t3d0s0
4. mount /dev/dsk/c0t3d0s0 /a
5. #TERM=sun
#export TERM
#vi /a/etc/shadow
<delete root password>
:wq!
6. #cd /
#umount /a
     7. #init 6

제15장 File System

<< file system 의 종류 >>
Disk Based file system types
Ufs : solaris의 file system
Hsfs : CD Rom file system
Pcfs : personal computer (PC) file system
Network-based File System types
NFS : client에서 server쪽 file system를 공유하여 access하는 file system
RAM-based File System Types
Physical memory에서 올려져서, operating system이 운영된다.


1. Solaris ufs File System
 Boot Block
15번 disk sector 다음에 존재. Root file system일 경우만 활성화된다.
 Super Block
Cylinder Group block, Data Blocks수, inode table, Data Block의 정보를 가지고 있다.
 Backup superblock
super block의 정보 저장
 cylinder group block
inode data block 정보 저장
 inode table
inode 정보 존재. Ls -al했을 경우 나타나는 정보들..
 data block
Data 존재

2. Inodes
파 일에 대한 file, access mode의 type 정보
 user id, group id
 file size
 file access time
 file 의 사용가능한 data block수, 할당 data block수

4. fsck utility
super black, inode block, data block간의 정보의 동기화를 이루어지록 한다.
#lost+found : fsck가 파일의 위치를 적어준다.
· fsck를 사용하는 경우
 시스템의 부적절한 셧다운
파 워 문제
 하드웨어 문제

3. fsck  사용법

#fsck /dev/rdsk/c0t030s7

#fsck -o f,p /dev/rdsk/cotodos5
 -o : non interactive
 f : 강제
 p : preen mode (중대한 결함이 있을 경우 out)

4. UFS logging and Access Time Option
#mount -o logging /dev/dsc/c0t0d0s7 /export/home
 log 정보를 확인하며 mount. 더욱 안전함. Super block 상태를 clean하게 고정.
#mount -o noatime /dev/dsk/c1t0d0s3 /morespace
> access time 기록을 하지 않는 file system

제 16장 Mounging File System

1. Mounting File
/etc/vfstab
부팅시 파일을 체크해서 어떤 파일 시스템을 mount할 것인지 확인
/etc/mntlab
#mount
mount시 mount point가 참조된다.

2. Adding a New Disk (디스크 추가)
1. 하드웨어 물리적 셋업. 점퍼 세팅
2. #boot -r
3. 디스크 파4. 트션 작업
5. #newfs, fsck 실행
6. #mkdir /p1
7. #mount /dev/dsk/c0t2d0s5 /p1
8. /etc/vfstab 파9. 일에 추가

3. File System 인식 절차
 -F option를 사용하여  file system 인식 (없으면)
 /etc/vfstab 파 일을 참조하여 인식 (없으면)
 /etc/default/fs 파 일 인식 (없으면)
 /etc/dfs/fstypes 파 일 인식 (없으면)

제17장 Backup and Recovery

Logical Tape Device Names
/dev/rmt/nln
n: tape 장치의 순서(logical tape number)
l: tape 장치의 밀도(tape density,h,m,l,c,u)
n: tape 밀도(backup이 끝나더라도 앞으로 감지 말아라) , No rewind

Types of Backups
 Full dumps
 Incremental dumps
 Multivolume dumps(backup장치 여러대에 backup)

ufsdump command (backup command)
#ufsdump options
options
0-9 : 0:full dump, 1~9:incremental backup
u : /etc/dumpdates에 write, incremental backup 가능하도록 처리
f : device 장치 명시, 디볼트는 tape
v : view

<< 실습예제 >>
#ufsdump 0uf /dev/ rmt/0 /p1
#ufsdump Euf /dump/back /p1

ufsrestore command (restore command)
#ufsrestore options
options
I : I부분만 restore 수행
R : 전체 restore
T: 복구, test
X: command line에 명시된 파일만 복구
F : 장치명
전체복구 : rvf
#ufsrestore rvf /dump/back 현재 디렉토리에 dump 복구
참조: 다른 디렉토리에 복사한(cp)후에 옮겨 복구하는 것이 안전하다.

<<실습예제>>
#mkdir /dump
#ufsdump 0uf /dump/back /p1 : 참조:ufsdump 0uf /dev/rmt/0 /p1
#man cp >> help_cp
#ufsdump 1uf /dump/back1 /p1
#ufsdump 2uf /dump/back2 /p1
복구
#cd /var/tmp
#ufsrestore rvf /dump/back

<<ivf mode 사용>>
#cd /var/tmp
#ufsrestore ivf /dump/back
>extract
>volume number # “1”
>set ower/mode ..? [y/n]n (backup mode)
>q(quit)
#ls -al

tar command
#tar cvf (파일 결합)
#tar xvf (파일 풀기)
tar는 압축기능은 없다. 1개의 파일로 만들어줄뿐이다.
참조: tape backup 확인 옵션 : #tar tvf

 

'OS or 이론 > Solaris' 카테고리의 다른 글

solaris 에서 ~ 와 - 사용 불능  (4) 2008.05.10
[솔라리스] c0t0d0s0  (0) 2008.05.05
[솔라리스] 패스워드 잃어버렸을때  (2) 2008.05.04
[솔라리스] 해상도 변경  (0) 2008.05.04
:
BLOG main image
어떤것은 절대 바뀔 수 없지만 어떤것은 바뀌거든. by keiruX

카테고리

분류 전체보기 (524)
끄적끄적 (418)
음악 (8)
세상 (44)
책 체크 (9)
OS or 이론 (11)
Programming (12)
Hacking & Security (2)
Site (0)
Tip (13)
Tool (6)
창고 (0)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

글 보관함

달력

«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Total :
Today : Yesterday :