리눅스의 rpm과 마찬가지로 솔라리스에서도 거의 모든 오퍼레이팅이
패키지화 되어 있습니다.
솔라리스의 패키지는 sunfreeware.com에서 쉽게 구하실 수 있습니다.

아래는 패캐지 관련 명령어와 사용 방법입니다.

1. pkgchk : 패캐지를 채크 합니다.

ex)
# pkgchk -l -p /usr/bin/mkdir ----> -l 은 리스트를 말하며 -p는 위치를 의미하는 옵션 입니다.

Pathname: /usr/bin/mkdir
Type: regular file
Expected mode: 0555
Expected owner: bin
Expected group: bin
Expected file size (bytes): 10264
Expected sum(1) of contents: 4598
Expected last modification: 10월 06 16:42:34 1998
Referenced by the following packages:
SUNWcsu
Current status: installed

위와 같은 결과를 보여 줍니다.

2. pkginfo : 인스톨 되어 있는 패캐지 리스트를 보여 줍니다.

ex)

# pkginfo
system AUBtocsin Auburn Univ. Engineering tocsin network scan detector
system FJSVhea SunOS Header Files for FUJITSU platform specific
system FJSVvplr Fujitsu platform specific symlinks (Root)
system FJSVvplu Fujitsu platform specific symlinks (user)
application FSFgzip gzip
application GLIB glib
application GNUbash bash
tools GNUgzip GNU gzip
tools GNUrcs GNU rcs and diffutils
application GNUwget wget
application GTK+ gtk+
system INTACT INTACT Change Detection System
application IZzip zip
application JSparm parm V5.0b2 - Performance Analysis Report Maker
application LWperl perl
application MHmpg123 mpg123
system MRsnort Marty Roesch's Snort (/usr/local)
utility NRMXkstat NRM Xkstat 0.90 SPARC Solaris 7
application NSCPcom Netscape Communicator
tools PARCdaily DailyCronJob
application PPkde KDE Desktop (PatriotSoft Packages)
application PPqtgif QT (PatriotSoft Packages)
...

3. pkgadd : 패캐지를 Add(설치) 합니다.

ex)
# pkgadd -d ntop-1.1-sol7-sparc-local

다음과 같은 패키지를 사용할 수 있습니다.
1 SMCntop ntop
(sparc) 1.1

처리할 패키지(들)를 선택하십시오.(또는 모든 패키지를
처리하려면'all'을 입력하십시오.) (default: all) [?,??,q]:all

4. pkgrm : 패키지를 지웁니다.

ex)
# pkgrm SMCntop ---> 이렇게 하면 SMCntop만 지워지겠죠.
현재 설치되어 있는 패키지는 다음과 같습니다:
SMCntop ntop
(sparc) 1.1

이 패키지를 제거하겠습니까? y

# pkgrm ----> 패캐지 리스트를 열거해줌으로 선택하여 지울수 있습니다.

5. pkgproto : prototype file 의 형태를 보여 줍니다.

ex)

# cd /usr/local/apache
# find . -print | pkgproto > prototype ----> 형태를 prototype 파일에 저장 합니다.
d none bin 0755 root other
f none bin/httpd 0755 root other
f none bin/ab 0755 root other
f none bin/apachectl 0755 root other
f none bin/htpasswd 0755 root other
f none bin/htdigest 0755 root other
f none bin/dbmmanage 0755 root other
f none bin/logresolve 0755 root other
f none bin/rotatelogs 0755 root other
f none bin/apxs 0755 root other
d none libexec 0755 root other
d none man 0755 root other
d none man/man1 0755 root other
f none man/man1/htpasswd.1 0644 root other
f none man/man1/htdigest.1 0644 root other
f none man/man1/dbmmanage.1 0644 root other
d none man/man8 0755 root other
f none man/man8/httpd.8 0644 root other
f none man/man8/ab.8 0644 root other
f none man/man8/apachectl.8 0644 root other
f none man/man8/logresolve.8 0644 root other
f none man/man8/rotatelogs.8 0644 root other
f none man/man8/apxs.8 0644 root other
....

여기서 f는 파일을 의미하며 d는 디렉터리를 의미합니다. 위에서 보듯이 퍼미션 코드와 유저 그룹도
알수 있습니다...
2005/07/04 14:28 2005/07/04 14:28
login을 접근 했다가 실패한 경우 그 로그를 저장 할수 있습니다.
만약 솔라리스 서버에서 /var/adm/loginlog 파일이 없다면 아래와
같이 생성하여 사용할 수 있습니다.

다음과 같은 작업으로 log파일을 저장할수 있습니다.
슈퍼 유저에서 합니다.

# touch /var/adm/loginlog
# chmod 600 /var/adm/loginlog
# chgrp sys /var/adm/loginlog

#more loginlog
michaelk:/dev/pts/24:Mon Sep 22 15:22:27 2003
michaelk:/dev/pts/24:Mon Sep 22 15:22:48 2003
michaelk:/dev/pts/24:Mon Sep 22 15:23:07 2003
michaelk:/dev/pts/24:Mon Sep 22 15:24:03 2003
4321:/dev/pts/19:Fri Oct 10 11:25:45 2003
guest:/dev/pts/19:Fri Oct 10 11:26:16 2003
guest:/dev/pts/19:Fri Oct 10 11:26:44 2003
guest:/dev/pts/19:Fri Oct 10 11:27:08 2003
guest:/dev/pts/19:Fri Oct 10 11:27:35 2003
agere:/dev/pts/3:Sat Oct 11 19:10:10 2003
agere:/dev/pts/3:Sat Oct 11 19:10:19 2003
agere:/dev/pts/3:Sat Oct 11 19:10:39 2003
agere:/dev/pts/3:Sat Oct 11 19:11:01 2003
agere:/dev/pts/3:Sat Oct 11 19:11:17 2003
guest:/dev/pts/28:Mon Oct 27 17:30:12 2003
guest:/dev/pts/28:Mon Oct 27 17:30:19 2003
info:/dev/pts/28:Mon Oct 27 17:30:30 2003
info:/dev/pts/28:Mon Oct 27 17:30:37 2003
info:/dev/pts/28:Mon Oct 27 17:30:45 2003

위의 결과를 토대로 로그인 실패된 유저에 대해서
확인해 볼 필요가 있습니다. (보안상의 이유)
2005/07/04 14:28 2005/07/04 14:28
1.login 유저 status 알아 보기

su 계정에서 logins 명령어를 이용해서 알아 볼수 있습니다.

ex)
# logins -x -l isseo
isseo 318799 test 9102
/hosting/isseo
/bin/csh
LK 010170 0 0 0

isseo : login user를 나타냅니다.
318799: UID를 나타냅니다.
test : 유저가 속한 그룹입니다.
9102 : 그룹 ID를 나타 냅니다.
/hosting/isseo : 유저 디렉터리를 나타 냅니다.
/bin/csh : 사용자의 쉘을 의미 합니다.
LK 010170 0 0 0 : 패스워드 관계 파일 입니다.
마지막으로 패스워드를 바꾼 날짜와 바꿀시간등을 나타 냅니다.

2. 패스워드가 없는 유저 알아보기

다음과 같은 명령어로 알아 볼 수 있습니다.
# logins -p
2005/07/04 14:27 2005/07/04 14:27