青島のしま〜Blue Islands〜


Linux Tips

Gentoo Linux Tipsはこちらを参照のこと

Debian(etch)にJDK,JREをインストール

Java5.0からは,sun-javaという名前になっているので注意
apt-cache search sun-java でパッケージが見つかると思います
apt-get install sun-java5-jre sun-java5-jdk

ついでに日本語の設定について.
Linuxで日本語を使うのは結構面倒ですが,結局のところ,以下2点をやればなんとかなりました.
・日本語フォント"kochi"のインストール
・/usr/local/jdk1.5.0_02/jre/lib/fontconfig.propertiesの設定
 fontconfig.RedHat.8.0.properties.srcをコピーして,kochiのpathを正しく書き換えてあげる

apacheのバーチャルホストの設定

httpd.confなどに,2つ目のVirtualHostタグを追加すればOK
ServerName www.hoge1.com    #メインのドメイン名
NameVirtualHost *

<VirtualHost *>  #メインのドメイン名に関する記述
#基本的にこちらはそのままでOK(先に書いたほうがデフォルトになる)
ServerAdmin webmaster@hoge1.com  #通知先メールアドレス
DocumentRoot /home/httpd/html    #デフォルトのパスが無難
ServerName www.hoge1.com    #メインのドメイン名
</VirtualHost>

<VirtualHost *>  #2つ目のドメイン名に関する記述
#2つめのVirtualHostタグを追加
ServerAdmin webmaster@hoge2.com  #通知先メールアドレス
DocumentRoot /home/2nd/html    #任意のパス
ServerName www.hoge2.com    #ドメイン名
#あとはスクリプト実行やエラーログの場所など必要に応じて追加
</VirtualHost>

サブネットマスクの書き方

サブネットマスクの書き方には2種類あります.
  • 255.255.255.0 (クラスC)
  • 192.168.0.0/24 (クラスC)
前者と後者の対応表を以下にメモっておきます.
CIDRサブネットの書き方IPアドレス個数
/32 255.255.255.255 1
/31 255.255.255.254 2
/30 255.255.255.252 4
/29 255.255.255.248 8
/28 255.255.255.240 16
/27 255.255.255.224 32
/26 255.255.255.192 64
/25 255.255.255.128 128
/24 255.255.255.0 256
/23 255.255.254.0 512
/22 255.255.252.0 1024
/21 255.255.248.0 2048
/20 255.255.240.0 4096
/19 255.255.224.0 8192
/18 255.255.192.0 16384
/17 255.255.128.0 32768
/16 255.255.0.0 65536
/15 255.254.0.0 131072
/14 255.252.0.0 262144
/13 255.248.0.0 524288
/12 255.240.0.0 1048576
/11 255.224.0.0 2097152
/10 255.192.0.0 (以下省略)
/9 255.128.0.0
/8 255.0.0.0
/7 254.0.0.0
/6 252.0.0.0
/5 248.0.0.0
/4 240.0.0.0
/3 224.0.0.0
/2 192.0.0.0
/1 128.0.0.0

特定IPアドレスのマシンのネットワークカードのMACアドレスを調べる

例えば,IP:192.168.0.2 が割り当てられているマシンのネットワークカードのMACアドレスを調べるには,以下のようにします.
ping 192.168.0.2 #一度通信を行う
arp -a 192.168.0.2 #MACアドレスを取得

XOOPSインストールTips

データベースのチェックで画面が真っ白になって止まる

・php-mysqlがインストールされてるかチェック
・/etc/php.iniで
extension=mysql
があるかチェック.
コメントアウトになってたり,書いてなければ追加.
編集後apacheを再起動.
参考: http://www.somacon.com/blog/page9.php

携帯メールに転送(postfix)

.forwardに設定を書きます
~/Maildir/
hogehoge@c.vodafone.ne.jp # 自分の携帯メールアドレス

携帯メールに転送(qmail)

.qmailに設定を書きます
./Maildir/
&hogehoge@c.vodafone.ne.jp # 自分の携帯メールアドレス

ハードディスクの空き容量を調べる

df コマンドを使います.
du コマンドを使うと,ディレクトリ毎の容量が分かります.

rootのパスワードを忘れたときに変更する

Linux起動時に
boot:linux single
で起動し、
passwd
コマンドで新しいパスワードを入力すればよい

シェルスクリプトを使用する

まず、sysbackup.shというファイルを作り、
tar cf /dev/nst0 /bin
tar cf /dev/nst0 /boot
tar cf /dev/nst0 /etc
tar cf /dev/nst0 /home
と記述します
そして、
$ sh sysbackup.sh とやればファイルの内容を実行できます。

ファイルの最初に次のように書くと実行プログラムを設定できます。
#!/bin/sh
さらに、次のように、ファイルに実行属性を付けると
$ chmod u+x sysbackup.sh 次のように実行できるようになります。
$ ./sysbackup.sh

標準エラー出力をリダイレクトする

「2>」がエラー出力のリダイレクトのやりかたです。 $ ./sysbackup.sh > log.txt 2> err.txt また、つぎのようにすると、すべての出力がlog.txtに記録されます。
$ ./sysbackup.sh > log.txt 2>&1

あるディレクトリ以下では,指定したグループでファイルを作成させる

$ chmod g+s test     ←ファイルにセット・グループIDを付加する
$ ll
-rwxrwsr-x   1 hoge     hoge-grp      154 Nov 01 00:00 test

Helix Universal Serverの操作

起動させる

# cd /usr/local/helix
# Bin/rmserver rmserver.cfg &

終了する

# cd /usr/local/helix
# kill `cat Log/rmserver.pid`

ソースRPM(SRPM)をビルドする

rpm --rebuild packagename.src.rpm
ですが,最近のrpmコマンド(rpm4以降)では,--rebuildオプションが廃止されたため
unknown optionエラーがでて使えません.
以下のコマンドを使います.
rpmbuild --rebuild packagename.src.rpm
そして,
rpm -ivh packagename.rpm

ユーザの追加

useraddコマンドを使います.
-mを使うと,/etc/skel以下のファイルをコピーします.
# /usr/sbin/useradd -d /home/username -g groupname -m -s /bin/bash username

RPMのパッケージのバージョンを調べるには

$ rpm -qa | grep XFree

sshの鍵作成について

puttygenで作成した鍵(ssh2:rsa)は,なぜかそのままでは使えない.
作成した公開鍵を以下のように,多少変更して,
/home/username/.ssh/authorized_keys
にコピーすればOK.
ssh-rsa AAAA....... comment
※改行も取り除きましょう.

fml Tips

MLの新規作成

###fmlユーザで作業
$ sudo -s
# su - fml
$ /usr/local/fml/makefml newml test-ml
$ exit

### root権限で作業
$ sudo -s
# ln -s /var/spool/ml/etc/qmail/alias/.qmail-test-ml* /var/qmail/alias/
# emacs /var/qmail/users/assign
  ("+test-ml:fml:518(fmlのUID):518(fmlのGID):/var/spool/ml/etc/qmail/alias:-:test-ml:"を追加)
   (/var/qmail/users/assignファイルの最後に"."がないとダメ)
# /var/qmail/bin/qmail-newu

メンバーの追加は次のファイルへ

members:投稿可能なメンバーのアドレスのリスト
actives:配信するメンバーのアドレスのリスト
# fml権限で作業
$ emacs /var/spool/ml/test-ml/members
$ emacs /var/spool/ml/test-ml/actives

設定を変更する

###fmlユーザで作業
$ sudo -s # su - fml
$ /usr/local/fml/makefml config test-ml あとは,対話形式にしたがって変更していく.
例えば,投稿権限を誰でもOKにする場合は,
1→1→2→0→0→0

MLの削除

# fmlユーザで作業
$ cd /var/spool/ml/
$ rm -rf test-ml
# rootで作業
# rm /var/qmail/alias/.qmail-test-ml*
# rm /var/spool/ml/etc/qmail/alias/.qmail-test-ml*
# emacs /var/qmail/users/assign
  削除したMLの部分を削除
# /var/qmail/bin/qmail-newu

RPMのソースからのビルド方法

.src.rpmの形で提供されるパッケージをRPMにビルドする方法.
・SRPMのインストール
# rpm -ihv perl-DBD-DB2-0.76-8.src.rpm 
・RPMのビルド
# cd /usr/src/redhat/SPECS/
# rpmbuild -bb perl-DBD-DB2.spec 
・RPMのインストール
# rpm -ihv perl-DBD-DB2-0.76-8.i386.rpm
※依存関係のエラーが出るときは「--nodeps」オプションを付けてみる
参考: http://www.atmarkit.co.jp/flinux/rensai/db2_03/db2_03a.html

ユーザを大量に作成(追加・登録)する

・newusers コマンドを使用すると,ユーザリストファイルからユーザをバッチ的に登録することができます.
コマンド
# newusers user_list
user_listファイルの例
# username:password:uid:gid:name:home dir:shell
akasata:Hogehoge:511:511:akasata:/home/akasata:/bin/bash
ikisiti:mogeMoge:512:512:ikisiti:/home/ikisiti:/bin/bash
しかし,これだけだと,これらの作成したユーザは,ログインが出来ないので以下をする必要があるらしい?
仮ユーザを作って,削除するだけで,なぜかログインできるようになる(謎)
パスワードファイルを更新するのかな?
# useradd test
# userdel -r test

もう1つ問題がある.
useraddを使ったときのように,/etc/skel/ 以下のテンプレートファイルがコピーされないので,
手動でコピーしてやる必要がある.
さらに問題なのが,
cp -r /etc/skel/* とやっても,
.bashrcなどのドットが先頭にあるファイルがコピーされない.
そこで,perlなどで,次のコマンドをメンバー分繰り返すスクリプトを生成するとよい.

# hoge001〜hoge100までのユーザに,/etc/skel以下をコピーするスクリプトを生成するスクリプト
$bodyCount = 100; # 人数
$skel = '/etc/skel'; # テンプレートがおいてあるディレクトリ
$file "$skel/.bashrc $skel/.bash_history $skel/public_html"; # コピーするファイル
print "#!/bin/sh\n";

# 人数分くりかえす
for ($i = 1; $i <= $bodyCount; $i++) {
    $newUser = "hoge" . sprintf('%03d', $i);
    print "cp -r $file /home/$newUser\n";
    print "chown -R $newUser /home/$newUser*\n";
    print "chgrp -R hoge /home/$newUser*\n";
}

ユーザ作成時に自動的にコピーするファイルのテンプレートを指定する方法

/etc/skel 以下においておくと,useraddでユーザ追加時に自動的に ~/ にコピーされる
※ただし,newusersなどのコマンドではコピーされないので手動でコピーする必要アリ

emacsの設定

Ctrl-h をバックスペースに変更する(必須)

;;;C-h を BS に変更。
(global-set-key "\C-h" 'delete-backward-char)

quotaの使い方

ユーザやグループ毎にディスクの使用量制限をかける
・rpmをDLしてきてインストール
# rpm -ivh quota-???.rpm
・/etc/fstab の変更
 defaultsのあとに,usrquotaをつける
/dev/hda3   /home/hoge   ext3    defaults,usrquota   1 1
・正しくfstabが変更出来ているか確認
# mount -o remount /home/hoge
# mount
(rw,usrquota)などとなっていればOK.

・記録するためのファイルを生成する
# quotacheck -avug.

・クォータの設定する
# edquota username
viが起動するので,それで書き換える.
前半のsoftとhardをKB単位で指定する.
・ソフトリミットを超えてからの有効期限
# edquota -t

・他のユーザ人にも同じ設定を適用する
# edquota -p username newUsername

テープのドライブを使う

tarコマンドで出来ます.
・テープに書き込む
$ tar -cvf /dev/st0 filename ・テープの中身を確認
$ tar -tvf /dev/st0 ・テープから他のディスクに取り出す(コピーする)
$ tar -xpvf /dev/st0 dirName

#テープはランダムアクセスじゃないので,
 mountできないかも?

viの使い方

http://claris.hp.infoseek.co.jp/vi/vi_3.html http://www.ne.jp/asahi/hishidama/home/tech/unix/vi.html

・「Shift+Z×2」セーブして終了
・「:q!」セーブしないで終了

・「jkl;」が上下左右の移動(カーソルキーでもできる)

Linuxでのパーティションの分け方

パーティションの構成(分割方法)と,ディスク容量の目安です.
ディスク容量によって適当に分けてください
/boot  128MB               カーネルなどの起動に必要なシステムを入れる
/      2Gぐらい?          システムの設定やアプリケーション
swap   メモリの倍          スワップ領域
/home  たくさん            ユーザディレクトリ
/var   2Gあればいいかな?  ログやその他
(/usr)
(/tmp)

apacheで.htaccessを使えるようにする

指定したディレクトリのところで,以下を追加
Options FollowSymLinks
AllowOverride All

dhcpd(dhcpサーバ)の設定

/etc/dhcpd.conf (最初はないので自分で作成する)
option subnet-mask 255.255.255.0;       # サブネットマスク
option broadcast-address 192.168.0.255; # ブロードキャストアドレス
option domain-name-servers 192.168.0.1; # DNSサーバのIPアドレス
option domain-name "hoge-local.net";    # ドメイン名
option routers 192.168.0.1;             # ルータのIPアドレス

subnet 192.168.0.0 netmask 255.255.255.0 { # サブネットの範囲
        range 192.168.0.128 192.168.0.192; # DHCPで割り当てるIPアドレスの範囲
}

# MACアドレスで固定IPを割り振る
host hogename {
  hardware ethernet xx:xx:xx:xx:xx:xx;
  fixed-address 192.168.0.3;
}

ランレベルの変更

・デフォルトランレベル
/etc/inittab を編集
id:3:initdefault:
※3にするとX Windowが起動しなくテキストモードで起動する
・一時的にランレベルを変更する
telinit 5

Fedora Coreで,コンソールの日本語が文字化けする

export LANG=ja_JP.eucJP 
とすればOK.再起動してもよいようにするには,以下を参照.
・デフォルトの文字コードが utf-8 なので EUC-JPにしてやります.
/etc/sysconfig/i18n の以下の2行を変更.
 LANG="ja_JP.eucJP"
 SUPPORTED="ja_JP.eucJP:ja_JP:ja"
・すると man が文字化けるので,
 export MANPAGER=lv
を ~/.bash_profile などに追加したらよいです.
参考: http://kazuaki.homelinux.com/pukiwiki/index.php?Fedora%20%A5%E1%A5%E2

ASUS P4P800のギガビットイーサのネットワークコントローラを認識させる

・ASUSのページから,3com 3c940のLinux用ドライバ(046_Linux.zip)をダウンロード
 (3Com Gigabit LOM (3C940) Driver V1.00.00.0046 for Linux)
 ※ASUSのページで,P4P800:ドライバーで検索
・ZIPファイルを解凍し,あとはreadmeに従ってインストール
・tar -zxvf 3c2000.tar.gz
・cd 3c2000
・make load
ifconfig eth0 up

mailman(メーリングリストマネージャの設定)

インストール

・ユーザmailmanの作成
# useradd mailman

・mailmanインストールディレクトリ(rpmでインストールならば,これはやらなくていいかも)
# mkdir /var/mailman
# chgrp mailman /var/mailman
# chmod a+rx,g+ws . /var/mailman

・httpd.confの編集(追加)
ScriptAlias /mailman/ /var/mailman/cgi-bin/ 
Alias /pipermail/ /var/mailman/archives/public/

・rpmをダウンロードしてインストール
# rpm -ivh /usr/src/redhat/i386/mailman-2.1.1-8.i386.rpm

・パッチをあてる
# patch < Mailman/mailman-2.1.1+patch.20030214
※パッチを当てないと,件名のprefixにつく連番が使えなかったり,
 いろいろなエラーが出ます.

・所有者の変更
# chown mailman.mailman /var/mailman/data/aliases*

・パーミッションの変更
# chmod g+w /var/mailman/data/aliases.db

・crontabの設定
# su - mailman
$ cd /var/mailman/cron
$ crontab crontab.in

・Apacheの再起動
# /etc/init.d/httpd restart

設定ファイル(mm_cfg.py)の修正

DEFAULT_URL_HOST = 'hogehoge.jp'
DEFAULT_EMAIL_HOST = 'hogehoge.jp'
DEFAULT_SERVER_LANGUAGE = 'ja'
# 件名の先頭にML名と連番を付ける
DEFAULT_SUBJECT_PREFIX = "[%(_internal_name)s:%%04d] "
MTA = 'Postfix' # SMTPサーバはPostfixを使用する

以下は,必須ではないが,やっておくと便利な設定

# BCCを許可
DEFAULT_REQUIRE_EXPLICIT_DESTINATION = No

# ユーザ追加ポリシー 3:申し込み+承認が必要
DEFAULT_SUBSCRIBE_POLICY = 3

# reply-to をこのMLに
DEFAULT_REPLY_GOES_TO_LIST = 1

# フッタは不要
DEFAULT_MSG_FOOTER = ""

# to に含められる最大数
DEFAULT_MAX_NUM_RECIPIENTS = 20

# max message size(KB)
DEFAULT_MAX_MESSAGE_SIZE = 2048

# 投稿が保留されたときに,送信元の人に通知するか
DEFAULT_RESPOND_TO_POST_REQUESTS = No

# 退会した人に通知するか
DEFAULT_SEND_GOODBYE_MSG = No

# 入会した人に通知するか
DEFAULT_SEND_WELCOME_MSG = No

# ML書庫を公開にするか 0:公開, 1:会員限定
DEFAULT_ARCHIVE_PRIVATE = 1

  • Postfixの設定ファイル(/etc/postfix/main.cf)の書き換え
  • alias_maps = hash:/etc/postfix/aliases, hash:/usr/local/mailman/data/aliases

  • aliasの更新?
  • /var/mailman/bin/genaliases

  • Postfixの再起動
  • /etc/init.d/postfix restart

  • パスワード設定
  • /var/mailman/bin/mmsitepass

コマンドメモ

・メーリングリストを削除する方法
#Webから削除ができないのでメモしておきます
/var/mailman/bin/rmlist -a リスト名

・メーリングリストのメンバー一覧を表示
/var/mailman/bin/list_members -f ML名

・エラーでshuntにたまったメールを処理する
shuntしてしまうメール(qfiles/shunt/* と lists/ML名/digest.mbx)をリネームor削除してから
/var/mailman/bin/unshunt

参考サイト:

<Postfix関連>
・http://acorn.zive.net/~oyaji/mail2/postfix.htm
<mailman関連>
・http://ito-web.dip.jp/server_conf/mailman2_1_1+postfix.html
 Mailman-2.1.1のインストールPostfix編
・http://mm.tkikuchi.net/
 Mailman, Japanese Home Page
・http://www.fkimura.com/mailman0.html
 Mailman を動かすためのメモ
<その後の設定>
・BCCで送ると承認が必要になるのを直す.
プライバシーオプションの受信者フィルターに
投稿にはリスト名があて先(to, cc) に含まれて
いなければならないでしょうか?
というのがあります。「いいえ」にしてみてください。
http://mm.tkikuchi.net/pipermail/mmjp-users/2003-September/000480.html

メール関連

・APOP使うなら/usr/sbin/popauth -user username

LANの認識:# modprobe 8139too

NIC:SMC1211TX(8139too)
NIC:3c940(sk98lin,tg3,bcm5700,3c2000)

CtrlとCapsを入れ替える

VineかRedhatなら,keyboardcfg
それ以外なら,
/etc/sysconfig/keyboard

KEYTABLE=jp106_Ctrl_CAPS
に変更する
#ただし,無い場合は
/usr/lib/kbd/keytables/jp106.map.gz を
/usr/lib/kbd/keytables/jp106_ctrl_caps.map.gz にコピーし,
keycode 29 = Control
keycode 58 = Caps_Lock
を逆にする. そして, /etc/sysconfig/keyboard を以下のように書き換 える.
KEYTABLE="/usr/lib/kbd/keytables/jp106_ctrl_caps.map"
RedHat 5.2 では上記のファイルは /usr/lib/kbd/keymaps/i386/qwerty/以下
変更後 loadkeys usxを行う.
※Xの場合は,XF86Setup の Keyboard section でも行える.

スクロールマウスを使う

XF86Config の編集
# cp /etc/X11/XF86Config /etc/X11/XF86Config.working
# emacs /etc/X11/XF86Config
Section "InputDevice"
# Identifier and driver
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "IMPS/2" #ここと
Option "ZAxisMapping" "4 5" #ここを変更

emacsのCtrl-hでバックスペース

;;; C-h を BS に変更。
(global-set-key "\C-h" 'delete-backward-char)

自動実行に関して

参考
サービスに追加:/sbin/chkconfig --add service_name
サービスのランレベル変更:/sbin/chkconfig --level 35 service_name on
サービスを調べる:/sbin/chkconfig --list

/etc/inittab # 起動時に一番最初に実行される
/etc/rc.d/??? # 起動時に実行(※ファイル名の数字が優先度)
/etc/rc.d/rc.local 起動時の最後のほうに実行される
/etc/profile # bash起動時に起動(システム共通)
/etc/.bashrc # シェルを起動するたびに起動される(aliasなどを記述)
/etc/.xinitrc # Xアプリケーションの自動起動スクリプト

/etc/crontab # 定期的に実行される
/etc/cron.daily # 毎日実行される(※crontabに書いてあれば)

X Window起動時にプログラムを自動起動させる

xinitrcを.xinitrcという名前でホームディレクトリにコピーします。
$ cp /usr/X11R6/lib/X11/xinit/xinitrc ~/.xinitrc そして、コピーしたファイルを開いて、最後の行に、
次のように起動したいプログラム名を記述します。
exec kterm

ktermの起動時のサイズを変更

~/.Xdefaults に、以下を追加
KTerm*VT100*geometry: 90x45

ユーザをグループに追加する

/usr/sbin/groupadd groupnameコマンドでグループを作成します。
/usr/bin/gpasswd -a loginname groupnameコマンド
# あるいは usermod -g gropuname username

webminのインストール

webminはWebブラウザで各種セッティングができてとても便利です.
http://www.webmin.com/ から rpm をダウンロード ・cd /usr/src/redhat/RPMS/noarch
・rpm -ivh webmin-1.110-1.noarch.rpm
・インストールが終わったら,localhost:10000 にアクセスすればOK
・Webminで,Webminのアクセス制限を設定しておきましょう(セキュリティのため).
 #IPアドレス指定で,localhostだけからしかアクセスできないようにする.
 #インターネットを通してできるようにする場合は,SSLの設定にしておきましょう.

webminにログインできない(パスワードが違うと言われる)

Vine Linux 2.6r3で,Webminを入れた直後に,ログインができない問題.
次のようにすればOK.
# /usr/libexec/webmin/changepass.pl /etc/webmin root パスワード

aptのインストール

aptをいれると,apt-getでインストールやアップデートができるので便利です.
http://apt.freshrpms.net/ から rpm をダウンロード ・cd /usr/src/redhat/RPMS/i386
・rpm -ivh apt-0.5.15cnc3-0.1.fr.i386.rpm
・設定書き換え
/etc/apt/sources.list → 使用しているディストリビューションを指定(コメントアウトをはずす)
/etc/apt/apt.conf → そのままでもいいかも
・早速アップデート
apt-get update          // パッケージ情報を更新する
apt-get check           // 依存関係を調べる
apt-get install w3m     // w3mをインストールする
apt-get upgrade         // パッケージを更新する
apt-get dist-upgrade    // ディストリビューションの更新
参考サイト:
http://www.nurs.or.jp/~sugi/redhat-apt.htm

その他

・suできるユーザを限定するためにwheelユーザを登録する


作成日: 2008年07月22日22時28日33秒
更新履歴
2008年07月22日 2008年02月08日 2008年02月06日 2008年02月05日 2007年10月25日 2006年12月20日 2006年12月19日 2006年12月05日 2006年09月20日 2006年06月18日 2006年06月12日 2006年04月22日 2006年03月30日 2006年02月28日 2006年02月23日 2006年02月18日 2006年01月13日 2005年12月21日