2. System 관리에 관한 질문들
2.1. Root Partition의 용량을 작게 잡아서 가득 찼습니다.
여러 가지 방법이 있습니다. 가장 확실한 방법은 충분한 여유가 있는 Hard Disk를 붙여서 Boot Disk를 복사하는 방법입니다. 하지만 이 방법은 성공하기가 힘든(?) 단점이 있습니다. 임시방편으로는 몇 개의 Directory를 다른 Partition으로 옮기고 Link를 만드는 방법이 있습니다. 이때 많이 애용(?)되는 Partition으로 /var가 있습니다. /var 전체나 /var 안에서 Disk를 많이 차지하는 Partition을 다른 곳으로 옮기고 Link를 만들어 주면 됩니다. (절대 /sbin이나 /etc같은 Directory를 옮기지 마세요. ^_^)
2.2. Hard Disk Partition은 어떻게 잡는 것이 좋나요?
보통 관리자에 따라 두 가지 형태로 Partition을 관리합니다. 한가지 방법은 swap을 제외한 모든 Disk를 / Partition에 두는 방법이고, 다른 방법은 /usr등의 Directory를 각각 Partition을 나누어서 사용하는 방법입니다. 이 두 가지 방법 모두 장단점을 가지고 있어서 어느 것이 좋다고 할 수는 없습니다. 관리자가 편한 방법으로 선택하시면 됩니다.
Partition을 여러 개로 나눌 경우 개인적 취향(?), 사용하는 응용 Program에 따라 다릅니다. 아래는 안진수님이 News Group에 올려주신 내용입니다. (참고하세요.)
|
/ |
64MB |
|
/usr |
400MB 이상 (최경렬님은 최소 600MB이고, 보통 1GB이상을 잡는 것인 좋다고 Mail을 보내주셨습니다.) |
|
/var |
128MB 이상 (Recommended Patches를 설치하려면 적어도 100MB가 필요합니다.) |
|
Swap |
물리적 Memory의 2배에서 4배 |
|
/opt |
400MB 이상 |
|
/usr/local |
분리권장 |
저도 위와 비슷하게 Partition을 나누고 대부분의 Program은 /usr/local이나 /opt에 설치합니다.
2.3. swap영역이 모자라는데 어떻게 추가할 수 있나요?
Solaris 2.x에서는 초기에는 따로 Partition을 잡아서 swap영역을 사용하지만 나중에 추가할 경우 swap File을 만들어서 추가합니다. 이때 사용하는 명령어가 mkfile 입니다. 만일 /opt/swap이라는 200MB짜리의 File을 만들어서 swap영역으로 쓰고 싶다면 아래와 같이 File을 만들고 swap 명령어로 추가할 수 있습니다.
만일 항상 사용할 swap 영역이라면 /etc/vfstab에 추가하면 됩니다. 다음은 /opt/swap을 추가한 /etc/vfstab의 예제입니다.
2.4. inode full이 나옵니다.
File System에서 사용하고 있는 inode를 모두 사용했기 때문입니다. 이렇게 되면 더 이상의 File을 생성할 수 없습니다. File들을 Backup 한 후 (문제가 되는 File System만 Backup하면 됩니다.) newfs의 –i Option을 사용하여 inode의 개수를 늘이고 Backup한 File들을 복구해야 합니다.
2.5. 사용자마다 특정 크기만큼 Hard Disk를 할당하는 방법이 있을까요?
Solaris 2.x라면 quota를 설정하시면 됩니다. quota를 설정하는 방법은 Solaris Manual 중 System Admin Guide Vol. 2에 보시면 잘 나와 있습니다.
How to enable user storage space quotas for Solaris in a mounted file system
간략하게 설명하면 아래와 같습니다.
/etc/vfstab에서 quota를 설정하고자 하는 File System의 Mounting Option에 rq를 지정한다.
quota를 설정할 File System에 quotas라는 File을 만든다.
각 사용자에게 quota를 할당하기 위하여 edquota라는 명령을 사용한다.
여기에서 할당하고자 하는 양만큼 soft와 hard부분에 적어준다. 만일 20MB를 할당하려면 아래와 같이 해준다. (만일 quota를 제거하고자 한다면 0을 적어주면 된다.)
만일 다수의 사용자에게 같은 양의 quota를 할당하려면 하나의 사용자만 할당하고 복사할 수 있는데 아래는 louis 사용자의 quota설정을 aaa, bbb, ccc 사용자에게도 똑같이 할당하는 예제이다.
2.7. Network로 root 접속이 가능하게 하려면?
기본적으로 Solaris 2.x에서는 Network로 접속하고 root로 Login하면 아래와 같은 Message를 출력하고 접속이 안됩니다.
Solaris 2.x는 기본적으로 root사용자는 console에서만 Login이 가능합니다. (su는 제외) 이것을 console이외에서도 가능하게 하려면 /etc/default/login에서 CONSOLE=/dev/console에 주석을 달면 됩니다.
참고로 CONSOLE=/dev/console의 의미는 root는 /dev/console에서만 login이 가능하다는 의미입니다. 만일 root사용자로 Login이 불가능하게 하려면 CONSOLE= 와 같이 해두면 됩니다. (하지만 이 설정은 기본적으로 설치된 in.telnetd등에만 해당됩니다. 만일 ssh등을 사용한다면 이 File과 상관없이 root계정으로 Login이 가능합니다.)
2.8. Login 화면에서 나오는 Message를 바꾸려면?
telnet으로 접속할 때 UNIX(r) System V Release 4.0 (white) 같은 Message를 바꾸고 싶다면 Solaris 2.6의 경우 /etc/default/telnetd에서 BANNER 항목을 수정하면 되지만, 그 이외의 System에서는 특별한 방법이 없습니다.
몇 분들의 말을 따르자면 Binary File(in.telnetd)을 수정하면 가능하다고 하더군요 :)
Console에서의 white console login: Message는 /etc/inittab에서 수정할 수 있습니다. 기본적으로 "`uname -n` console login: "으로 되어있습니다.
Login 화면에 여러 줄의 내용을 출력하려면 /etc/issue에 적어주면 됩니다. 그리고 Login 후 여러 줄의 내용을 출력하려면 /etc/motd에 적어주면 됩니다.
Login 후 나오는 Message (motd 내용, 최근 접속일 등)들을 나오지 않게 하려면 $HOME/.hushlogin 을 만들면 나오지 않습니다. (touch $HOME/.hushlogin)
2.9. 한번만 접속을 하면 같은 이름으로 Login을 막고 싶습니다.
기본적으로 지원해 주는 건 아니지만 /etc/profile이나 /etc/.login에서 간단한 script를 써서 구현할 수는 있습니다. 또한 Michael P. Crider가 만든 idled를 사용하셔도 됩니다.
2.10. floppy Driver를 사용하려면 어떻게 해야 하나요?
Solaris 2.x에서는 vold(Volume Management Daemon)을 이용해서 floppy나 CD-ROM을 Mount합니다. 따라서 floppy를 사용할 때는 Driver에 Diskette을 넣고, volcheck 명령어를 실행하면 Mount가 됩니다. 보통 /floppy/floppy0에 Mount가 됩니다. 그리고 Diskette은 MS-DOS Format으로 되어 있어도 문제가 없이 Mount 됩니다. 그리고 다 쓰고 났을 때는 eject floppy를 입력하면 floppy가 빠져나오며 자동으로 Mount가 풀립니다.
2.11. CD-ROM Driver를 이용하려면 어떻게 하나요?
Solaris 2.x에서는 floppy와 마찬가지로 vold를 이용해서 Mount 합니다. 현재 vold가 수행 중일 때는 CD-ROM의 경우에는 CD를 삽입하기만 하면 자동으로 /cdrom에 Mount가 되고, CD를 빼고 싶을 때는 CD-ROM Driver에 있는 Button을 누르거나, eject cdrom이라는 명령어를 입력하면 됩니다. (가끔 CD-ROM Driver의 Button을 눌렀을 때 CD가 빠져 나오지 않는 경우가 있습니다. 이때는 eject cdrom 이라고 입력하면 잘 빠져나옵니다.) 참고로 vold의 설정 File 은 /etc/vold.conf 이며, 자세한 사항은 vold(1M)의 Manual을 참조하시기 바랍니다.
2.12. 다른 System의 CD-ROM Driver를 이용하려면?
만일 두 대의 Computer A, B가 있는데, A에는 CD-ROM Driver가 있고, B에는 없어서 B에서 A의 CD-ROM Driver를 이용하고 싶다면, A에서는 /etc/rmmount.conf 의 마지막에 아래와 같이 추가하고 vold Daemon을 다시 실행한 후
B에서는 /cdrom에 사용하고 싶다면
와 같이 연결해 두시면 됩니다.
참고로 Solaris에서는 CD-ROM이나 floppy 등은 vold(1M)가 관리합니다. 만일 어떤 사용자가 CD를 넣으면 vold는 그 일을 감지하고 rmmount(1M)를 호출해서 다시 Mount 해줍니다. rmmount(1M)는 CD나, floppy와 같은 장치들을 Mount할 때 사용하는데, 그 설정 File은 /etc/rmmount.conf입니다. 자세한 내용은 rmmount.conf와 rmmount의 Manual을 참조하세요.
2.13. Sun용 CD-ROM Driver가 따로 있나요?
따로 있지는 않습니다. Sun에서는 SCSI CD-ROM Driver 중 Buffer가 512Kbyte인 것만 지원합니다. 잘 돌아가는 Model에는 Sony의 경우 CDU-8012 Model(Sun 1배속 CD-ROM Driver), Toshiba의 4101TA Model(Sun 2배속 CD-ROM Driver), 3301B Model, 3401B Model, Apple의 CD 300i가 있으며, Plextor의 CD-ROM Driver의 경우 대부분 잘 돌아갑니다. 만일 구입을 하신다면 Plextor의 Model을 구입하시는 것이 좋습니다. (최경렬님, 이석찬님)
2.14. 새로운 장치를 달고 device file을 만들려면?
일단 다른 주변장치와 충돌하지 않는 SCSI 번호(CD-ROM Driver는 일반적으로 6번을 사용하고, Tape Driver는 일반적으로 4번을 사용합니다.)를 할당하고, PROM prompt에서 probe-scsi 명령으로 정상적으로 인식이 되는지 확인합니다. 여기에서 잘 나오면 boot –r 명령으로 /dev와 /devices의 File들을 갱신하면 됩니다.
보통 외장형 Tape Driver를 달고 이 작업을 수행하는데 이때 생기는 장치 File은 Solaris 2.x의 경우 /dev/rmt/0 (SCSI 4번을 쓴 경우), /dev/rmt/1 (SCSI 5번을 쓴 경우)이며, SunOS 4.x의 경우에는 /dev/rst0, /dev/rst1이 생깁니다.
2.15. Tape의 내용을 삭제하려면?
Tape의 내용을 삭제하려면 mt 명령을 사용하시면 됩니다. 만일 Tape Driver의 장치 File 이름이 /dev/rmt/0 라면 아래와 같이 입력하시면 됩니다.
2.16. Workstation의 화면 해상도와 색상수를 바꾸려면?
Sun Workstations의 경우 화면 해상도와 색상수 등을 변형하려면 사용하는 Video Card가 frame buffer를 지원해야 합니다. 보통 Creator 3D에서는 사용가능 합니다. 만일 Console의 해상도를 1280x1024로 변경하려면 PROM prompt에서 다음과 같이 입력하면 됩니다.
이렇게 PROM prompt뿐만 아니라 ffbconfig Program을 이용할 수 있습니다. 만일 Solaris x86에서 화면 해상도를 바꾸려면, kdmconfig 명령을 이용해서 화면 해상도를 변경할 수 있습니다.
Solaris x86에서 화면해상도를 변경하기
전에 현재 사용하고 있는 Graphic Adapter가 Solaris x86에서 지원하는지를 확인한 후 실행하시기 바랍니다. 색상수를 16bit 색상으로 바꾸려 할 때, openwin을 사용하신다면, openwin -dev [framebuffer 장치File명] defdepth 16 과 같이 하시고, CDE를 사용하시면 /usr/dt/config/Xconfig File에 Xsun -dev [framebuffer 장치 File명] defdepth 16 과 같이 설정하시면 됩니다. 제가 사용하는 Creator 3D의 경우엔 framebuffer 장치 Filename이 /dev/ffb0 입니다. (당연히 framebuffer가 지원하는 색상수를 지원해야 합니다.)
2.17. Solaris 2.x에서 두 개 이상의 Network Adapter를 설치하려면?
Network Adapter를 달고, /etc/hostname.hme?,/etc/hostname.le? (100M Network Adapter이면 hme0, hme1,.. 10M Network Adapter이면 le0, le1,..)에 각 Adapter의 Host 이름을 작성하고, /etc/hosts에 IP Address를 설정하면 사용할 수 있습니다.
2.18. Printer를 병렬포트에 연결하려면?
Sun Workstation의 병렬포트는 System의 종류에 따라 다릅니다. 일단 병렬포트가 있는지 확인하시고 형태에 맞는 병렬 Cable을 구입해서 사용하시면 됩니다.
2.20. Postscript File을 출력하려면?
postscript을 지원하지 않는 대부분의 Printer에서 postscript File을 출력하려면 gs(ghost script)를 사용하면 됩니다. 그리고 postscript를 지원하는 Printer일 경우에도 한글 File들을 출력하려면 gs를 사용하는 것이 좋습니다.
그리고 Inkjet Printer를 이용하여 Color로 출력하려면 해당 Printer의 gs dev File을 구하셔서 gs를 다시 Compile 하면 됩니다. stylus color Printer는 dev File이 기본적으로 들어있으므로 Compile이 Makefile의 DEVICE_DEVS에 stcolor.dev를 추가하면 됩니다.
2.21. Network을 지원하는 Printer를 설치하려면?
HP의 제품인 경우 HP의 Homepage에서 JetAdmin을 받아 Package를 설치한 후 (/usr/hpnp에 설치한 경우) /usr/hpnp/jetadmin으로 Printer를 추가하면 됩니다. 물론 IP와 Netmask등은 설정해 두셔야 합니다.
2.22. JAZZ Driver나 ZIP Driver를 달려면?
JAZZ Driver나 Zip Driver는 SCSI를 사용하는 경우 일반 Disk처럼 사용하실 수 있습니다. 단지 주의하셔야 할 내용은 Media를 뽑기 전에 umount를 하셔야 합니다.
2.23. Backup 하려면?
여러 가지 명령어가 있지만, 가장 기본적인 tar에 대해 말씀 드리겠습니다. 만일 /home Directory 이하의 File들을 /dev/rmt/0에 Backup 받으려 한다면 다음과 같이 입력하시면 됩니다.
나중에 Backup한 내용을 restore하시려면 /에서 다음과 같이 입력하면 됩니다.
tar를 사용하는 경우 원하는 File만을 restore하려면 아래와 같이 사용하시면 됩니다. (man tar에서 가져옴)
이 외에도 restore하고자 하는 File의 List를 File로 만들고(e.g list), 다음과 같이 사용하셔도 됩니다.
2.24. Solaris 2.x에서 /dev/rmt/에 있는 장치 File들의 의미
Solaris 2.x에서 Tape Driver를 달고 device File들을 만들고 나면 /dev/rmt/Directory에 많은 File들이 생깁니다. 이 File들은 그 이름에 따라 Tape을 사용하는 방법이 다른데 간단하게 알아보면 일반적으로 File명은 아래와 같이 생겼습니다.
l,m,h,c는 기록밀도입니다. 각각 low, medium, high, compress를 의미합니다. 단순히 장치 File만 생겼다고 모두 지원하는 것이 아닙니다. compress를 지원하는 Driver가 있고, 아닌 Driver가 있습니다. 그리고 b는 BSD호환의 의미이며, n은 no-rewind의 의미입니다. 따라서 n이 없는 장치 File을 이용해서 Backup을 하면 Backup이 끝난 후 rewind를 하지만, n이 붙은 장치 File을 이용하여 Backup을 하면 rewind를 하지 않습니다. 따라서 하나의 장치에 여러 개의 볼륨을 Backup하려면 n이 붙은 장치 이름을 사용해야 합니다.
2.25. 다른 System의 Tape Driver를 이용하려면?
여러 가지 방법이 있겠지만, 가장 간단한 방법은 rsh를 이용하는 방법입니다. 먼저 Tape Driver가 있는 System에 .rhosts File을 만들어서 다른 System에서 rsh로 접속할 수 있게 한 후 Tape Driver가 없는 System에서 다음과 같이 입력하시면 Backup 할 수 있습니다.
만일 Tape으로 부터 File을 풀려고 하면 아래와 같이 입력하시면 됩니다.
2.26. patch가 뭔가요?
Sun Microsystems에서 처음 Solaris등의 Program을 배포한 후 그 이후에 발견되는 Bug들에 대해 수정한 File을 patch File이라고 합니다. 만일 105393번을 patch하라고 한 경우 105393이 patch 번호입니다. 위와 같은 경우 105393번 patch File을 구해와서 patch해주면 됩니다.
patch중에는 일반 patch File과 recommended patch가 있는데, recommended patch는 이름에서 알 수 있는 것처럼 추천하는 patch입니다. 운영체제나 Program의 보안상의 Bug등 중요한 내용이므로 반드시 patch 해주는 것이 좋습니다.
patch File을 설치하는 방법은 patch File의 README에 잘 설명이 되어있습니다. 일반 patch File의 경우 압축을 풀고 Directory에 있는 install patch를 root권한으로 실행하면 됩니다.
현재 System이 patch한 patch File의 번호를 알기 위해서는 showrev -p 명령을 사용합니다. 다음은 그 예제입니다.
가끔 patch를 설치하려고 하는데, checkinstall이 실패했다고 나오는 경우가 있습니다. Solaris 2.x에서 patch File들은 nobody란 사용자가 읽을 수 있어야만 설치가 됩니다. patch File을 푼 Directory의 Mode를 확인하시고 nobody 사용자가 읽을 수 없는 Mode라면 다시 설정하시기 바랍니다.
2.27. SunOS 4.x의 passwd File을 Solaris 2.xSystem에 맞게 고치려면?
SunOS 4.x까지는 계정관리를 위해 /etc/passwdFile을 사용했지만, Solaris 2.x부터는 /etc/passwd와 /etc/shadow File을 함께 사용합니다. 따라서 SunOS 4.x에서 Solaris 2.x로 Upgrade를 했을 때 계정을 관리하는 /etc/passwd를 /etc/passwd와 /etc/shadow File로 바꾸어야 하는데 이때 사용하는 명령이 pwconv입니다. 단순히 pwconv라고 실행하면 바꿔줍니다. Solaris 2.x를 사용하시는 분들 중에 가끔 /etc/passwd File에만 계정을 추가하고 pwconv 명령어를 사용하여 /etc/shadow File을 갱신하는 분들도 계십니다.
2.28. /etc/passwd와 /usr/bin/passwd의 차이는 뭔가요?
/etc/passwd는 사용자의 정보(ID, UID, Home Directory, shell, 주석 등)의 정보가 들어있는 File이고, /usr/bin/passwd는 /etc/shadowFile에 있는 사용자의 비밀번호를 변경할 때 사용하는 명령입니다.
/usr/bin/passwd는 SUID가 설정되어 있습니다. 왜냐하면 /usr/bin/passwd가 수정하는 /etc/shadow File은 root만이 읽기/쓰기가 가능합니다. 따라서 일반 사용자가 자신의 비밀번호를 수정할 때 suid가 설정되어 있지 않다면 비밀번호의 변경이 불가능하겠죠? 다음은 제 System의 /usr/bin/passwd의 ls 결과입니다.
일반적으로 /etc/passwd의 Mode는 444로 되어있는데, 가끔 관리자중에는 일반사용자가 /etc/passwd File을 읽지 못하도록 Mode를 400로 변경하는 경우가 있습니다. 이 경우 비밀번호의 변경은 별 문제없이 가능하겠지만, ls의 경우 사용자 이름이 아닌 UID로 출력하게 됩니다. d왜냐면 UID를 사용자 이름으로 바꾸지 못하니까요. :)
다른 System에서는 그렇지 않지만 Solaris 2.x에서는 특이하게도 /etc/passwd, /etc/group, /etc/hosts 의 내용들을 가지고 응용 Program들에게 Naming Service를 해주는 nscd라는 Server Program이 있습니다. 이 Program 때문에 /etc/passwd의 Mode를 400로 해 두어도 UID가 아닌 사용자 이름이 나옵니다. 만일 nscd를 띄우지 않고 /etc/passwd등의 File의 Mode를 400로 한경우에는 UID만 나오게 됩니다.
2.29. NT와 Solaris의 비밀번호를 같이 관리하려면?
(이 부분은 제가 잘 몰라서 News Group에 올라온 몇 가지 글들을 종합해 봅니다.) 우선 Solaris 2.6을 써야 합니다. 그리고 Samba를 사용할 때 pam nt_dom이라는 모듈을 사용하시면 Solaris에서 NT의 비밀번호를 변경할 수 있습니다. 그리고 반대로 NT에서 Solaris의 비밀번호 등을 관리하려면 Solstice Intranet Extension (Sun의 Homepage를 보면 Solstice NFS Client 3.1라고 되어있습니다.) Program을 NT에 설치하면 됩니다. 이 Program을 사용하면 Solaris가 NIS/NIS+를 사용하셔도 변경할 수 있습니다.
2.30. root 비밀번호를 잊었습니다.
CD-ROM으로 Booting 하셔서 Hard Disk의 /etc/shadow File의 비밀번호 부분을 지우시면 됩니다. / Partition이 /dev/dsk/c0t0d0s0인 경우에 아래와 같은 작업을 하시면 됩니다.
2.31. /home에 File을 쓰려면 어떻게 해야 하나요?
Solaris 2.x에서는 /home을 automounter가 mount해서 사용하기 때문에 root라 할지라도 Directory나 File을 만들 수 없습니다. 하지만 실제로는 automounter를 쓰지 않는 경우에도 /home을 쓸 수 없다면 문제가 되겠죠? 이때 /home은 automount를 하지 않으려면 /etc/auto_master File에서 /home 부분을 주석처리 하면 됩니다.
2.32. 계정을 만들 때 자동적으로 .cshrc와 .profile등의 File을 만들려면?
/etc/skel Directory에 복사하고 싶은 File들을 만들어 두고 useradd나 admintool로 계정을 만들면 됩니다.
2.33. /etc/passwdFile에서 삭제를 했는데도 Login이 가능합니다.
만일 NIS를 사용하시면 NIS에서 계정을 삭제하고, NIS map을 rebuild해줘야 합니다. 자세한 내용은 NIS의 Manual을 참조하세요.
2.34. passwd를 실행했는데 없는 ID라고 나옵니다.
/etc/shadow나 /etc/passwd의 정보가 잘못되었을 때, 비밀번호를 변경하기 위해 passwd를 실행하면 아래와 같은 Message가 나옵니다.
따라서 이 두 개의 File을 찬찬히 살펴보신 후 필요 없는 라인이 추가되지 않았는지 아니면 계정에 들어갈 수 없는 글자가 있지는 않은지 확인해 보시기 바랍니다.
2.35. package란 뭔가요?
package는 원래 SVR4에서 Program의 설치와 삭제등을 쉽게하기 위해서 필요한 File을 묶어둔 것을 말합니다. 하지만 주로 Solaris에서 Program의 배포에 사용되는 형식을 지칭합니다.
package를 설치할 때는 pkgadd라는 명령을 사용하면 됩니다. 사용방법은 pkgadd -d [Directory명] [pkg명]입니다. 일반적으로 자주 설치하는 Package인 gcc인 경우 다음과 같이 입력하면 설치됩니다.
가져온 Package들을 gzip와 tar로 풀면 각각 Directory가 만들어지고, 필요한 File들이 그 Directory에 들어갑니다. 그리고 pkgadd 명령을 실행하면 설치 가능한 Package들이 나열됩니다.(만일 Directory는 분명히 있지만 화면에 나열되지 않는다면 Package의 Directory의 소유권이 적당한지 확인해 보시기 바랍니다.) 사용자가 원하는 번호를 입력하면 설치를 시작합니다. 일반적인 Package의 설치과정이 위와 같지만, 가끔 News Group으로 질문을 하시는 분들 중에Directory가 만들어 지지 않고 pkgadd -d . 를 해도 화면에 나오지 않는 경우를 질문하시는 분이 많습니다. 이때는 pkgadd -d [File명] 을 입력하시면 됩니다. 간단하게 예를 들어 보죠.
위와 같이 간단하게 입력하면 설치하실 수 있습니다. 참고로 Package들은 특별한 언급이 없는한 /opt에 설치됩니다. 그에 비해 Sun Site에서 가져온 Package들은 일반적으로 /usr/local에 설치됩니다.
2.36. CDE는 뭔가요?
CDE(Common Desktop Environment) (아직 추가하지 못했습니다. 죄송합니다.)
CDE는 Solaris 2.6이라면 OS에 포함되어 있고, 그 이하 버전이면 OS와 같이 들어있는 CD-ROM에서 구할 수 있습니다.
이 Directory에 가시면 File이 여러 가지가 있습니다. File 이름 중에 dev가 들어간 것은 developer를 의미하며 ab가 들어간 것은 answerbook이 포함되어있다는 의미입니다.
2.37. CDE Login(dtlogin)의 설정은 어떻게 하나요?
다음과 같은 문제를 생각해 보죠.
처음 CDE를 설치할 때 영문으로 설치를 했습니다. 나중에 한글 환경을 쓰려고 CDE에서 ko로 설정을 했는데 한번뿐이고 다시 Logout을 하면 영문으로 돌아갑니다. CDE의 기본언어를 설정하려면 어떻게 하면 되나요?
이 경우 여러 가지 방법이 있지만 다음의 방법을 이용해 보세요. 우선 /etc/dt/config Directory를 만듭니다. (만일 Directory가 있다면 만들지 마세요.) 그 다음 /usr/dt/config/Xconfig를 만든 Directory로 복사합니다. (/usr/dt/config/Xconfig는 수정하시면 안됩니다.) 그리고 /etc/dt/con fig/Xconfig중에서 Dtlogin*language의 값을 ko로 바꾸시고 저장한 후에 dtconfig -reset을 실행하면 됩니다.
또한 CDE를 설치하면 기본적으로 dtlogin이 뜹니다. 이 화면 대신에 원래 Login 화면을 사용하려면 dtconfig -d 와 같이 입력하시면 됩니다. 만일 CDE Login 화면이 뜨게 하려면 dtconfig -e 와 같이 입력하시면 됩니다.
2.38. Booting 할 때 마다 어떤 일을 수행하려면 어떻게 하나요?
Solaris에는 시작 Script가 /etc/init.d 에 모여있습니다. 이 Script는 대부분 구성이 아래와 같이 되어있습니다.
이와 같이 작성해 두시면 실행할 때는 start인자를, 실행중인 Process를 죽일 때는 stop인자를 사용하실 수 있습니다. 또한 Solaris는 /etc/rcX.d(X는 S, 0, 1, 2, 3)에서 필요한 Script를 수행합니다. 만일 Single User Mode로 Booting 했다면 /etc/rcS.d에 있는 File들을, 보통 때는 모두 다 수행합니다. 따라서 이들 중 한 Directory에 SXX filename (XX는 원하는 두 자리 숫자, filename은 임의의 이름)이라는 File을 /etc/init.d에 만들어 둔 Script에 Hard Link를 해 두면 됩니다. rc Process는 숫자가 작은 Script부터 차례로 수행해 줍니다. 그리고 SunOS 4.1.x에서는 /etc/rc.* File에 적어 넣으면 됩니다. 일반적으로 rc.local에 적는 경우가 많습니다. 그리고 그냥 Script를 작성하면 root 권한으로 수행됩니다. 하지만 몇몇 Program의 경우에는 root가 아닌 일반 User의 권한으로 수행되어야 하는 경우가 있는데 이때는 su 명령을 사용하시면 됩니다. 만일 /some/where/daemon을 nobody 권한으로 수행하고 싶다면 시작 Script에 아래와 같이 적어주면 됩니다.
2.39. Booting 시 Mount되는 순서는?
가장 먼저 /와 /usr는 읽기 전용으로 Mount합니다. 이때 문제가 있다면 Kernel이 두 개의 Partition에 대해 fsck를 수행합니다. 그리고 문제가 없다면 두 번째로 swap을 Mount합니다. 세 번째로 /와 /usr를 쓰기가 가능하도록 다시 Mount 합니다. 그 이후에 /usr/platform, /proc, /dev/fd 등을 차례대로 Mount합니다. /etc/vfstab을 보면 / /usr /var File System은 mount at boot항목이 no로 되어있습니다. 따라서 이 Partition이 언제 Mount되는지 궁금해 하시는 분들이 많은데, /, /usr, /var는 Booting 과정에 필요한 Partition이기 때문에 Kernel이 미리 Mount 합니다 그래서 /etc/vfstab에서는 no로 설정이 되어 있는 것입니다.
2.40. 다른 System의 X Window Program을 수행하고 싶습니다.
Display를 사용하는 System에서 xhost로 Program이 있는 System을 적어주고, Program이 있는 System의 DISPLAY 환경변수를 수정하면 됩니다. 만일 A가 현재 사용하는 Computer(X Server)이고 B가 응용 Program이 있는 Computer라면 아래와 같이 입력하면 됩니다. (csh를 사용한다고 가정)
2.41. Local System의 X Program을 실행했는데 display를 열 수 없다고 합니다.
같은 System이더라도 telnet이나 su로 한번 거쳐서 접속한 경우에는 아래와 같은 Error가 발생합니다.
Error: Can't open display: unix:0
이때는 su나 telnet전에 xhost + localhost등을 입력해 주고, su나 telnet 후 DISPLAY 환경변수를 localhost:0.0으로 설정하시면 됩니다.
2.42. libX11.so.6.1이 없다고 Error가 납니다.
Solaris 2.6이라면 openwindow가 X11R6를 지원합니다. 따라서 /usr/openwin/lib/libX11.so.4 를 가리키는 libX11.so.6.1을 만들면 됩니다. Solaris 2.5.1 이하라면 System의 Version에 맞는 X11R6 Package를 설치하시면 됩니다.
혹 LD_LIBRARY_PATH가 적절히 설정되지 않은 경우도 있습니다. 이 환경변수도 확인해 보시기 바랍니다. 참고로 LD_LIBRARY_PATH는 동적 Library(libX11.so.6등의 Library)가 있는 Directory들을 지정하고 있습니다. 만일 /usr/local/X11R6/lib를 추가하고 싶다면 아래와 같이 입력하면 됩니다. (csh이라고 가정)
2.43. 최근 login한 사람들에 대한 정보를 알수 없나요?
사용자들이 login하면 그 정보가 /var/adm/utmp에 저장됩니다. 이 File에 저장된 내용을 출력해주는 Program이 /usr/bin/last입니다. 그리고 참고적으로 /var/adm에는 utmp, utmpx, wtmp, wtmpx가 있는데 utmp, wtmp는 같은 File이고 utmpx, wtmpx는 utmp의 확장 File입니다. 만일 어떤 사용자의 최근 접속상황을 보려면 last id라고 하시면 됩니다.
utmp, wtmp, lastlog 등은 사용자가 System에 접속했을 때 Log가 기록되는 File로 /usr/bin/login Program에 의해 만들어집니다. 만일 만들고 싶지 않다면 login Program을 수정(?)하시든지, 아니면 주기적으로 지워주는 방법밖에 없습니다. 주기적으로 지워줄 때는 cron등을 이용하시면 편리합니다. 그리고 아예 만들지 않으려면 wtmpx 등의 File을 /dev/null의 Link File로 만드는 방법이 있습니다.
2.44. syslogd는 어떤 역할을 하나요?
언제, 어디서, 누가, 어떤 Service를 통해서 System에 접속을 시도했는지를 기록해주는 Server입니다. 대표적으로 telnet, ftp, mail등에 대한 Log를 만들어줍니다. 그리고 syslogd에 대한 설정File은 /etc/syslog.conf 입니다. syslogd에 의해 만들어진 log File은 /var/log에 생성됩니다. /etc/hosts에 보면 loghost라는 부분이 있습니다. 이 부분은 syslogd에 의해 사용됩니다. (추가설명 필요)
2.45. cron이 실행되지 않습니다.
crontab에 등록하려고 하니 다음과 같은 Message가 나옵니다.
이런 경우에는 cron을 사용하려면 cron.allow에 등록이 되어있어야 합니다. 첫 번째 Message는 cron.allow에 등록이 되어있지 않기 때문에 생기는 Message입니다. 그리고 cron은 /bin/sh를 기본 Shell로 사용하지만 /bin이 /usr/bin에 Link되어있기 때문에 두 번째와 같은 Error가 출력됩니다. 따라서 두 번째 Message는 무시하셔도 됩니다.
2.46. Solaris 2.x에서 System의 최대값을 알려면?
Solaris 2.x에서 System의 maximum값(maximum filesize, maximum stacksize 등등)은 ulimit를 사용하면 알 수 있습니다. 이 값을 바꾸려면 /etc/system File에 합니다. 다음은 사용자당 사용할 수 있는 최대 Process 개수와 System의 최대 Process 개수를 설정하는 예제입니다.
System의 Message큐 크기를 변형하려면/etc/system 에 msginfo_msgmnb xxx 와 같이 (xxx는 큐의 크기) 적으면 됩니다.
2.47. Solaris에서 hostid를 변경하려면?
host ID는 변경할 수 없습니다. (원칙) 하지만 가끔 변경하는 Program이 나오곤 하죠. (Solaris 2.5의 hid2, SunOS 4.1.3의 sethostid 등)
2.48. Solaris 2.x는 y2k에 안전한가요?
일반적으로 Recommended Patch를 설치하고, y2k Patch를 설치하시면 됩니다.
2.49. TT_DB/ Directory는 뭔가요?
Solaris의 Service 중에 rpc.ttdbservd가 TT_DB Directory에 Database를 생성, 삭제합니다. 따라서 rpc.ttdbservd를 띄우지 않는다면, 삭제하셔도 됩니다. (박창민님)
2.50. Solaris 2.6에서 2GB이상의 File을 사용하려면?
Solaris 2.6에서 Program이 2GB이상의 File을 지원하려면 2.6에서 아래의 Option을 사용하여 Compile해야 합니다. (이석찬님)
따라서 Solaris 2.6이 아닌 System에서 Compile된 Program은 위의 Option을 사용하여 다시 Compile 하셔야 합니다.
2.51. talk에서 한글을 쓰려면?
LANG 환경변수를 ko로 설정하고, /usr/SUNWale/bin/talk를 사용하면 됩니다.
2.52. 비밀번호 없는 계정을 만들려면?
SunOS 4.x까지는 /etc/passwd에 비밀번호를 지우면 되지만, Solaris 2.x에는 비밀번호를 관리하는 /etc/shadow의 비밀번호를 지워도 Login하면 다시 입력하게 되어있습니다. 이때 Login시 비밀번호를 입력하지 않도록 하려면 /etc/default/login에서 PASSREQ=NO로 만들면 됩니다.
2.53. 최대접속 가능한 Terminal 수를 늘이고 싶습니다.
SunOS 5.x에서 최대 Terminal 수는 /etc/system 에서 설정합니다. 만일 최대 접속 가능한 Terminal 수를 100으로 하고 싶다면 set pt_cnt = 100을 /etc/system File에 넣어주면 됩니다.
2.54. CD Writer를 사용하려면?
CD Writer를 이용할 수 있는 Program중 대표적인 Program으로 mkisofs가 있습니다.
'Operating System > Solaris' 카테고리의 다른 글
| System 성능 측정 (0) | 2007/07/16 |
|---|---|
| Network 설정 (정적 Routing) (0) | 2007/07/15 |
| Solaris에 gcc 설치하기 (0) | 2007/07/14 |
| ProFTPD 설치 (0) | 2007/07/13 |
| VI Editor 단축키 (0) | 2007/07/13 |
| System Log File과 Log 기록 삭제 방법 (0) | 2007/07/12 |
| Solaris FAQ (Network 관련 질문들) (0) | 2007/07/12 |
| Solaris FAQ (System 관리에 관한 질문들) (0) | 2007/07/11 |
| Solaris FAQ (일반적인 질문들) (0) | 2007/07/09 |
| Solaris FAQ (Category) (0) | 2007/07/09 |
| ufsdump를 이용한 Backup (0) | 2007/07/01 |