月曜日, 8月 15, 2005

私はだ~れ。

サーバの管理者をしていると、自分が何にSwitchしたのかわからなくなることがある。
そんな時には、次のコマンドをたたく。
id - return user identity
 現在のユーザIDとグループIDが帰ってくる。
 つまり、Switch後のユーザが分かる

who am i - システムにログインしているユーザの表示
 使用している端末に関する情報を出力する。
 つまり、Switch前のユーザが分かる

火曜日, 8月 02, 2005

whoとlast

who - システムにログインしているユーザーの表示
/var/adm/utmpx を参照している。

last - ユーザ、ならびにターミナルのログイン、ログアウトの情報を表示
/var/adm/wtmpx を参照している。
> last reboot ・・・システムのリブート時間を表示

月曜日, 8月 01, 2005

グループの数を増やす方法

Solarisでは、各ユーザはグループに属する必要がある。このグループは、一次グループと呼ばれ、/etc/passwd のユーザアカウントエリアのグループ識別子によって指定される。また、各ユーザは、
二次グループと呼ばれる15までの追加グループに属することができる。二次グループは、/etc/group ファイルのみで指定することができる。

さて、グループの数は、NGROUPS_MAXというカーネルパラメタによて設定される。このパラメタは、最大32までのグループを対象として、/etc/systemファイルに設定できる。

水曜日, 7月 27, 2005

SMFについて

Solaris 10 から、サービスの管理に関して、今までおなじみのrcXスクリプトから、SMFに移行した。
これに伴い、スクリプトの修正だけで済んでいたサービスの起動、停止に関して、コマンドが用意されている。
また、inetdの設定も、ined.confではなく、inetadmを使う。

svcs - report service status
  • -a : 全サービスのリストを出力
  • [FMRI] : ステータスがdisable以外のサービスを出力。FMRIが指定されていればそのサービスの情報のみを出力
  • -d FMRI : 自身が依存しているサービスを表示する
  • -D FMRI : 自身に依存しているサービスを表示する
  • -H : オプション無しで起動した時の、カラムヘッダ(1行目)を省略する。
  • -l FMRI : FMRIの詳細な情報を出力する。
  • -p [FMRI] : 各サービスのプロセス情報を含めて表示する。
  • -v [FMRI] : Vervoseモード
  • -x [FMRI] : 各サービスの説明(デバッグ時に多用する)
svcadm - manipulate service instances
  • enable [-rst] FMRI ... : サービスを使用可能にしてオンラインにします
  • disable [-st] FMRI ... : サービスを使用不可にしてオフラインにします
  • restart FMRI ... : 指定されたサービスを再起動します
  • refresh FMRI ... : サービスの設定を再度読み取ります
  • mark [-It] <状態> FMRI ... : 保守状態を設定します
  • clear FMRI ... : 保守状態を消去します
  • milestone [-d] <マイルストン> : 特定のサービスマイルストンに進みます
inetadm - observe or configure inetd-controlled services
  • -? : ヘルプを出力します。
  • -p : デフォルトの inetd プロパティ値をすべて表示します。
  • -l : inet サービスの inetd プロパティ値をすべて表示します。
  • -e : inet サービスを有効にします。
  • -d : inet サービスを無効にします。
  • -m : inet サービスの inetd プロパティ値を変更します。
  • -M : デフォルトの inetd プロパティ値を変更します。

月曜日, 7月 11, 2005

FTPサーバの文字化け

Solarisのデフォルト言語をja(EUC)でインストールすると、FTPクライアントの接続時に
言語環境が LANG=ja となって、日本語環境となります。
 日本語環境ですと、ファイルのタイムスタンプが、日本語で表示されるのですが、
一部のFTPクライアント(IEや、FIREFOX)では、日本語のタイムスタンプを理解できずに、
文字化けを引き起こします。

対処:対処方法は、二つ:
  1. inetd 自体を LANG=C で起動。
    /etc/initd/inetsvcの最後の行を次のようになおします。

    #/usr/sbin/inetd -s
    LANG=C /usr/sbin/inetd -s -t &

  2.  ftpd だけを、 LANG=C で起動。
    この場合は、inetd から呼ばれる、in.ftpd をラップするスクリプトを書く。/usr/local/sbin/in.ftpd
    ----------------------
    #!/bin/sh
    LANG=C;export LANG
    exec /usr/sbin/in/ftpd $*
    -----------------------
    上記ファイルを、/etc/inetd.conf の ftp のエントリーに指定する。

PROMモニタモードで、システムのEthernetアドレスを表示する方法

ネットワークインストールをするときには、インストール先のマシンのMACアドレスが必要。
そんなときは、PROMモニタモードで、
banner
とすればよい。
bannerにより、PROMのバージョン、搭載メモリ、シリアル番号、MACアドレス、HOST IDが分かる。

金曜日, 6月 17, 2005

パッチの管理

Solarisのパッチ管理には、PatchProを使う。詳細は、マニュアルに譲るが、基本的な使い方は、以下。
>smpatch update

なかには、「ポリシーによってインストールできません。」なんてメッセージが表示されることがあるが、良く読むと最後に、「ポリシーによって許可されていないパッチIDが、ファイルに書き込まれました」とメッセージがでて、その後のフォローがある。
>smpatch add -x idlist=/var/sadm/spool/disallowed_patch_list

これらは、すぐにシステムをリブートする必要があるといった後処理が必要なため、自動でパッチが適用できないことを示しているので、手動で実施し、後に、init 6 すればよい。

火曜日, 6月 14, 2005

pkg-getのインストール

Solarisのfreewareは、Sunfreeware.comでバイナリーが入手できる。
また、このパッケージをダウンロードからインストールまでを一括して行えるツールとして、pkg-getがある。パッケージの依存関係を調べて必要なパッケージを同時にインストールしてくれるので大変便利。

1)pkg-get のパッケージが配布されているので、これを入手し、pkgadd.
# pkgadd -d ./BOLTpget.pkg

2)環境設定ファイルを編集
/opt/csw/etc/pkg-get.conf
+-------------------------------------------
|###
|url=ftp://ftp.sunfreware.com/pub/freeware
|###
|ftp_proxy=http://proxy.hogehoge:8080
|http_proxy=http://proxy.hogehoge:8080
|export http_proxy ftp_proxy
|###
|use_gpg=true

3)後は、wgetやgzipにパスを通して、pkg-get を実行
・ダウンロード可能なパッケージの一覧
>pkg-get -a
・パッケージ(hogehoge)のインストール
>pkg-get -i hogehoge

木曜日, 6月 09, 2005

コンソールから、rootでログインさせないようにする

Solaris9/10で、コンソールからもrootでログインさせないようにするには、次のようにする。
・/etc/default/login を編集
-----------------------
・・・
#CONSOLE=/dev/console
CONSOLE=
-----------------------

この変更で、su で rootになるしかないので、だれが root になったか、
/var/adm/sulogに、全て記録される。
なお、設定ファイルの内容が似ているが、/etc/default/su ではないので、
気をつけること。こちらを直して、コンソールからrootでログインするとおかしなことが起こる。

loginの失敗を記録する

Solaris9/10 で、ログインの失敗を記録する時には、次の事を行う。
>touch /var/adm/loginlog
>chmod 600 /var/adm/loginlog
これで、5回以上の連続ログインミスを記録できる。

ただし、ここにログが残るのはコマンドユーティリティを使った場合で、CDEからログインした場合は、何も残りません。

水曜日, 5月 25, 2005

in.ftpd のUMASKを変更する

Solaris の in.ftpd のUMASKを変更するためには、以下の設定をする必要がある。
Solaris 9 OS より前のバージョンでは、UMASK 値を /etc/default/ftpd ファイルに追加する。
Solaris 9 OS では、/etc/ftpd/ftpaccess ファイルで定義されている defumask パラメータを設定します。
詳細は、in.ftpd(1M) または ftpaccess(4) (Solaris 9 OS の場合) のマニュアルページを参照してください。