SUN Solaris 8/9/10 各種設定
【概要】
Solaris 8/9/10 で新規にマシンをセットアップする際の手順をまとめる。ホスト名・DNS・NFS などのネットワーク設定、不要サービスの停止によるセキュリティ対策、カーネルパラメータの調整、ssh の設定、グラフィックドライバの導入に加え、日本語 emacs・mew によるメール環境の構築までを扱う。
【目次】
【サイト内の関連情報】
事前に調べておく事項
- Solaris マシンの IP アドレス:
(以下、XXX.YYY.ZZZ.bbb のように書く)
- Solaris マシンのマシン名:
(以下、hogehoge のように書く)
- Solaris マシンの DNS ドメイン名
(以下、DNS ドメイン名は「mydomain.hoge.com」と書く)
- DNSサーバの IP アドレス
(以下、「XXX.YYY.ZZZ.160」のように書 く)。
Solaris の設定
(必要な場合) NIS サーバへの登録
NIS サーバにマシン名、IP アドレスを登録する。但し、「NIS サーバが LAN 内にあり」かつ「マシンが、プライベートで無く 固定の IP アドレスを持つ」場合に限り、NIS サーバに登録する。
(必要な場合) DNS サーバへの登録
DNS サーバにも、マシン名、IP アドレスを登録する(順引き、逆引きの両 方)。これは、「プライベートで無く固定の IP アドレスを持つ」場合に限り、DNS サーバに登録する。
固定の IP アドレスを持っていないが、どうしても DNS サーバに登録した いときは、Dynamic DNS 等の利用を検討する。
(必要な場合) NFS クライアントとしての設定
NFS クライアントとして動かしたいときは、 /etc/fstab に記述を行なう。
/etc/hosts の設定
/etc/hosts は次のように設定しておいた方が便利である。 要するにマシンの FQDN 名を書く。
変更前
127.0.0.1 localhost XXX.YYY.ZZZ.bbb hogehoge loghost
変更後
127.0.0.1 localhost XXX.YYY.ZZZ.bbb hogehoge hogehoge.mydomain.hoge.com loghost
/etc/resolv.conf の設定
DNS クライアントとしての設定である (これは、上で書いた「DNS サーバへの登録」とは別の話である)。 次のように設定する。
nameserver XXX.YYY.ZZZ.160 domain mydomain.hoge.com search mydomain.hoge.com
/etc/nsswitch.conf の設定
これも DNS クライアントとしての設定である。 /etc/nsswitch.conf に hosts の行は、次のようにする。 nsswitch.conf は記載した順に左から検索するので、下記では「files(/etc/hosts)」→「DNS」→「NIS」の順で探すという設定を書いている。セキュリティ上の問題もあるので、意味が分かった上で設定すること。
hosts: files dns nis
- Solaris 9 あるいはそれ以前の場合
セキュリティ上の理由から、必要の無い「NIS」、「DNS」が入っていたら消しておいた方が良いので、 念のために確認しておく(例えば、次のようにする)。
aliases: files
rdate による時刻の設定
次のコマンドを実行する。
rdate dnsmail
(「dnsmail」のところは、好きなマシン名あるいは IP アドレスを書く)
/etc/notrouter の作成
普通は、ルータとして動作させないので /etc/notrouter という名前のファイルを作成する(中身は何でもよい)。 次のコマンドを実行する。
cd /etc; echo -n > notrouter
broadcast に対する応答を OFF に
NIS サーバのマシンで無ければ、次のコマンドを実行する。
ndd -set /dev/ip ip_respond_to_echo_broadcast 0 ndd -set /dev/ip ip_forward_directed_broadcasts 0
ip_respond_to_echo_broadcast は、broadcast に対する応答を制御するパラメータである。 ip_forward_directed_broadcasts は、broadcast あての ping を転送するかどうかを制御するパラメータである。
/etc/system の設定
共有メモリを広げる設定を行う(Solaris のカーネルチューニング可能パラメータによる、伝統的な設定方法である)。
set shmsys:shminfo_shmmax=268435456 set shmsys:shminfo_shmmni=512 set shmsys:shminfo_shmseg=150 set semsys:seminfo_semmap=350 set semsys:seminfo_semmni=350 set semsys:seminfo_semmns=1000 set semsys:seminfo_semmnu=700 set semsys:seminfo_semume=100
ssh の設定
ssh の設定については、 SSH サーバ の Web ページを見る。
Solaris 10 の場合、sshd の再起動は、
svcadm refresh svc:/network/ssh:default
で行なう。
m64config
SPARC マシンで、PGX64 搭載マシンに限る。
m64config -prconf m64config -res 1280x1024@85 nocheck -depth 24 (うまくいかない場合:Solaris のバージョンによっては「1280x1024x85」かも知れないので man m64config 等で確認のこと)
NVIDIA ドライバ
SPARC マシンで、PGX64 搭載マシンに限る。
NVidia 社の Welcome to the NVIDIA software download Web ページから、 Solaris x64/x86 用の NVidia グラフィックカードドライバがダウンロードで きる。
ダウンロード手順
[Step 1] Graphic Driver, [Step 2] Quadro, [Step 3] Solaris x64/x86
インストール手順
sh NVIDIA-Solaris-x86-x1.0-????.run reboot -- -r
NVIDIA ドライバでの困ったときのヒント
NVidia のカードを持っている場合には、 NVidia 社の Welcome to the NVIDIA software download Web ページで配布されているドライバを、 試す価値がある。
「ようこそ画面」の前、あるいは、「ようこそ画面」でログインした直後に NVidia の画面が一瞬現れるはずである。 そうなれば、ドライバのインストールに成功していると考えてよい。
うまくドライバが動かない場合、 xorg.conf を編集すると、うまく動くようになる (Java Desktop 起動時のエ ラーを回避できる可能性がある。実機での作業で、下記の手順により実際に解決できた例である)。
- cp /usr/X11/xorg.conf.nvidia /usr/X11/xorg.conf
- xorg.conf の vidmode 関係等は解除する
Option "DisableVidModeExtension" Option "DisableModInDev"
- xorg.conf のキーボードレイアウトの行は、正しく設定できていること
を確認する
Option "XkbModel" の行 Option "XkbLayout" の行
- 好みの解像度を正しく設定する
設定例 Depth 8 を囲んでいる SubSection "Display" を削除 Depth 16 を囲んでいる SubSection "Display" を削除 Depth 24 を囲んでいる SubSection "Display" については、「Modes "1280x1024"」 のように設定
以下、「ようこそ画面」でログインしたが、真っ黒なままという場合のヒントである。
- 「ようこそ画面」では、「オプション」メニューで「コマンド行ログイ ン」を選んでからログインする。ログインしたら、kdmconfig を実行し、Xsun で無く、Xorg の方を選ぶ。
- 「Xorg -configure」などを実行する必要は無く、 cp /usr/X11/xorg.conf.nvidia /usr/X11/xorg.conf で動く。
再起動
以上で、設定作業は終了したので、再起動する。 (「reboot -- -r」とあるのは、ドライバをインストールしたためである) 再起動時に、エラーメッセージなどが出ていないことを確認する。
sync sync sync sync sync reboot -- -r
Solaris の設定の続き
(1) Solaris 10 の場合
パッチ
smpatch update 最後に表示される「メッセージ」の指示に従うこと。 reboot
一般ユーザの追加
SMC を使って、簡単に一般ユーザを追加できる。 今後は、root でログインせずに、一般ユーザでログインすることにする (スーパーユーザーになりたいときは su 等を使用する)。
/usr/sbin/smc 「このコンピュータ」 「システムの構成」 「ユーザー」 root のパスワードを入力 「ユーザーアカウント」 「アクション」 「ユーザを追加」 「ウィザードを使用...」 ウィザードが開くので、質問に答える
不要なサービスの停止
Solaris 10 では、SMF を使用する。 svcs コマンドで、現在のサービスのリストが得られる。 svcadm disable svc:/hogehoge/hogehoge で、サービスを無効にできる。 svcadm restart svc:/hogehoge/hogehoge で、サービスを再起動できる。
以下の手順で、telnet, ftp, finger, rlogin, rsh を停止する。
svcadm disable svc:/network/telnet:default svcadm disable svc:/network/ftp:default svcadm disable svc:/network/finger:default svcadm disable svc:/network/login:rlogin svcadm disable svc:/network/shell:default
(2) Solaris 9 あるいはそれ以前での場合
ここでは、不要なサービスを止める。これは、性能アップが目的ではなく、セキュリティ対策である。 IPFilter でセキュリティ対策 の Web ページも参考にする。 以下、Solaris 9 あるいはそれ以前での手順である。
sendmail は止める
この時点で、いったん、sendmail は止めることにする。 確かに、sendmail は便利であるが、 設定も済んでいないのに sendmail を動かしておきたくないというのが理由である。
sendmail を使う予定なら、後で、最新版の sendmail を自力でインストール するとともに、sendmail の設定を行う。
cd /etc cd rc2.d mv S88sendmail a_S88sendmail
autofs は止める
autofs を使わない場合は、止める。
/sbin/umountall -F autofs /usr/bin/pkill -x -u 0 automountd cd /etc cd rc2.d mv S74autofs a_S74autofs
不要なサービスは停止
以下に不要なサービスの「例」を書いているが、どのサービスが不要である かは、よく検討する。
cd /etc/rc2.d
echo Web-Based Enterprise Management
mv S90wbem a_S90wbem
echo Power Management
mv S85power a_S85power
echo cssd
mv S90loc.ja.cssd a_S90loc.ja.cssd
cd /etc/rc3.d
echo NFS server
mv S15nfs.server a_S15nfs.server
echo DHCP
mv S34dhcp a_S34dhcp
echo SNMP
mv S76snmpdb a_S76snmpdb
echo Solstice Enterprise Manager
mv S77dmi a_S77dmi
echo Samba
mv S90samba a_S90samba
カスタマイズ
/etc/shells
- /etc/shells に以下の行を追加する。
(設定例) /sbin/sh /usr/bin/tcsh /usr/local/bin/tcsh
- 古い Solaris は tcsh を持っていないので、必要な ら自前でインストールする。参考: http://www.tcsh.org
設定ファイル
以下、自分のディレクトリの .cshrc, .bash_profile, .bashrc の設定例を書 く。
~/.cshrc の作成
~/.cshrc の設定例を次に書く。
setenv LANG ja_JP.eucJP
setenv LC_MESSAGES ja_JP.eucJP
# setenv LANG C
# setenv LC_MESSAGES C
set path = ( \
/usr/bin /usr/sbin /sbin \
/usr/local/bin /usr/sfw/bin /usr/ccs/bin /usr/X11/lib /usr/openwin/bin /usr/dt/bin /usr/openwin/demo/bin /usr/local/X11R6.8.2/bin \
/opt/SUNWspro/bin /usr/ucb /usr/local/netpbm/bin /opt/sfw/bin \
)
setenv LD_LIBRARY_PATH /usr/lib:/usr/local/lib:/usr/ccs/lib:/opt/sfw/lib:/usr/X11/lib:/usr/dt/lib:/usr/openwin/lib:/usr/local/X11R6.8.2/lib:/usr/ucblib:/opt/SUNWspro/lib:/opt/SUNWdtpcv/lib:/opt/SUNWits/Graphics-sw/xil/lib:/opt/SUNWits/Graphics-sw/xgl-3.0/lib
alias ls 'ls -F'
alias h 'history'
unalias rm
unalias cp
unalias mv
set savehist
set history=200
set histdup = "erase"
set filec
~/.bash_profile
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
~/.bashrc
PATH=/usr/bin:/usr/sbin:/sbin:/usr/local/SUNWspro/bin:/usr/local/bin:/usr/ccs/bin:/usr/openwin/bin:/usr/dt/bin:/usr/openwin/demo/bin:/usr/local/X11R6.8.2/bin:/opt/SUNWspro/bin:/usr/ucb:/usr/local/netpbm/bin:/opt/sfw/bin export PATH LD_LIBRARY_PATH=/usr/lib:/usr/local/lib:/usr/ccs/lib:/opt/sfw/lib:/usr/dt/lib:/usr/openwin/lib:/usr/local/X11R6.8.2/lib:/usr/ucblib:/opt/SUNWspro/lib:/opt/SUNWdtpcv/lib:/opt/SUNWits/Graphics-sw/xil/lib:/opt/SUNWits/Graphics-sw/xgl-3.0/lib export LD_LIBRARY_PATH umask 022
日本語 emacs
ここでは、GNU emacs のインストール法を書く。(英語キーボードを使用している場合のみ) /usr/X/lib/X11/ja/app-defaults/Htt の設定について
Solaris では、英語キーボードを使用している場合、「Ctrl + SPC」 で ATOK が起動、終了を行う。 しかし、emacs では 「Ctrl + SPC」 は、mark-set の意味なので、使いづらい。 結局 「Ctrl + SPC」 で ATOK を起動することをあきらめることにする。
とりあえず、/usr/X/lib/X11/ja/app-defaults/Htt を次のように変更して、 「Shift + space で ATOK が起動する」ように変えておく。
- ATOK の終了は、Ctrl + SPC のままで、変えることができないようなので、このことには注意する。
- Shift + space も押しづらい(頻繁に使うと指が痛くなりそう)ので、自分の好みにあうように設定する。
変更前
*conversionOnKeys:Henkan_Mode<Ctrl>space<Ctrl>at
変更後
*conversionOnKeys: Henkan_Mode <Shift>space
/usr/X/lib/X11/ja/app-defaults/Htt の設定
次に、GNU emacs のミニバッファに「ATOK」の文字が表示されるのを回避するために、 /usr/X/lib/X11/ja/app-defaults/Htt に次の1行を追加しておく。
Emacs*disableStatusArea: True
GNU emacs のインストール
# sh あるいは bash を使って作業する
# download emacs-21.4a.tar.gz
# download leim-21.4.tar.gz
cd /tmp
if [ ! -f emacs-21.4a.tar.gz ]; then
/usr/local/bin/wget https://www.kkaneko.jp/tools/src/gnu/emacs-21.4a.tar.gz
fi
if [ ! -f leim-21.4.tar.gz ]; then
/usr/local/bin/wget https://www.kkaneko.jp/tools/src/gnu/leim-21.4.tar.gz
fi
rm -rf /tmp/emacs-21.4
cd /tmp
/usr/bin/gzip -d < /tmp/emacs-21.4a.tar.gz | tar -xvof -
/usr/bin/gzip -d < /tmp/leim-21.4.tar.gz | tar -xvof -
# もし、emcws を使いたい場合には、下記の 「# gzcat ../emcws-21.3-20030507.gz | patch -p1」の手順が追加になる。
# gzcat ../emcws-21.3-20030507.gz | patch -p1
/tmp/emacs-21.4/configure --with-gcc --with-mule --with-xim --with-xll --with-site-lisp --with-xfs --with-x-toolkit=motif --with-wnn --with-wnn-includes=/usr/lib/locale/ja/wnn/demo/include --with-wnn-libraries=/usr/lib/locale/ja/wnn/lib
/usr/ccs/bin/make
/usr/ccs/bin/make install
たまご
cd /tmp cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/tamago login cvs -d :pserver:anonymous@cvs.m17n.org:/cvs/tamago co tamago cd tamago ./configure make make install
.emacs の設定例 (Wnn)
Solaris の Wnn サーバ(jserver)と通信して、日本語入力できるようにするための設定である。
- "localhost" とある部分は、jserver が動いているリモートのマシン名に置き換えても動くはずである。
(set-language-environment "Japanese") (set-terminal-coding-system 'euc-japan) (set-keyboard-coding-system 'euc-japan) (set-buffer-file-coding-system 'euc-japan) (setq default-input-method "japanese-egg-wnn") (setq wnn-jserver "localhost") (setq jserver-list (list "localhost"))
「、を , に」、「。を . に」したいときは、
(setq use-kuten-for-period nil) (setq use-touten-for-comma nil)
sendmail
「Solaris で sendmail インストール/バージョンアップ」の Web ページを参考に、sendmail のインストールと設定を行う。mew
emacs でメールの読み書きができるように設定する。.emacs の設定例
(autoload 'mew "mew" nil t)
(autoload 'mew-send "mew" nil t)
(setq mew-icon-directory /usr/X11R6/include/X11/bitmaps/icon") ;; if using XEmacs/Emacs 21
;; Optional setup (Read Mail menu for Emacs 21):
(if (boundp 'read-mail-command)
(setq read-mail-command 'mew))
.mew.el の設定例
(setq mew-name "First Last") ;; (user-full-name) (setq mew-user "username") ;; (user-login-name) (setq mew-mail-domain "domainA.com") (setq mew-pop-server "mailserver.domainA.com") (setq mew-smtp-server "mailserver.domainA.com") (setq mew-demo nil) (setq mew-use-cached-passwd t) ; (setq mew-file-max-size 100000000)
- mew の Web ページ: http://www.mew.org/