Windowsでワークグループ名を変更できなかった。コントロールパネル→システム→コンピュータ名→変更、できるはずなのだが、ワークグループ名の欄が編集できなくなっていた。調べてみると、ローカルエリア接続→プロパティ、でWindowsネットワーク用クライアントをインストールすると解決した。
Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。
2009年9月28日月曜日
2009年9月24日木曜日
FTP over HTTP Proxy
本記事では、lftpというFTPクライアントで、HTTP Proxyのsquidを経由でファイル転送をする方法を説明します。GUIのFTPクライアントでは、FileZillaがHTTP Proxy経由でファイル転送できたと記憶しています。
まず、プロキシを設定します。HTTP_PROXY環境変数をエクスポートしていたのですが、私の環境ではこれは反映されていませんでしたから、lftpの設定ファイルに以下の記述しました。この設定ファイルは~/.lftp直下にrcという名前で作成します。
set hftp:proxy プロキシサーバ
次に、以下のコマンドを打ちます。
$ lftp -d -u FTPサーバのアカウント名 hftp://FTPサーバ
後は、パスワードに答えてログインできると思います。
WebサーバでDigeset認証をつかってアクセス制御する。
本記事では、Webサイトのとあるディレクトリ以下をパスワードで保護したいときに、認証によりアクセス制御する方法をまとめる。
認証方式にはいろいろある。おそらく最も基本的なのはBasic認証だが、パスワードを平文のまま送信するので、盗聴の危険性がある。そこで、今回は、MD5でハッシュ化してパスワードとユーザ名を送信するDigest認証を使ったアクセス制御をまとめる。参考URL:「Digest 認証の仕組み」。
まず、Webサーバで公開しているディレクトリで、パスワードで保護したいディレクトリを作成する(既にある場合はもちろん作成不要)。ここでは、ユーザ(hoge)のpublic_html以下をWebに公開しており、その直下のprivateをパスワード保護する場合を説明する。
$ cd $ pwd $ /home/hoge $ cd public_html $ mkdir private
次に、apacheの設定ファイル/etc/httpd/conf/httpd.confでDigest認証をどこそこで利用するといった設定を記述する。保護したいディレクトリ毎にhtaccessファイルを配置してもよいが、大元のhttpd.confに記述しておくの良いとどこかに書いてあった(保守性?)。
<Directory /home/*/public_html/private> <--- 念のためhogeユーザだけでなく任意のユーザに対してルールを設定 AuthType Digest AuthName "Secret Zone" AuthDigestDomain /private/ AuthUserFile /etc/httpd/conf/.htdigest <--- 後で作成するパスワードファイル Require user ユーザ名 </Directory>
次に、パスワードファイルを作成する。既にパスワードファイルがある場合は、cオプションは不要。cオプションを付けないと、新規ユーザの情報を書き込むことになる。レルムは、httpd.confでAuthNameに設定した文字列"Secret Zone"を指定する。パスワードファイル名も、上の設定ファイルで指定した名前とする。
# cd /etc/httpd/conf # htdigest -c パスワードファイル レルム ユーザー名
最後に、apacheをリロードする。
#/etc/rc.d/init.d/httpd reload
試しに動かしてみる。うまく動かないときは、AllowOverride all になっていないか確認する。
2009年9月22日火曜日
プロバイダのメールサーバにメールをリレーしてもらう。
本記事では、自宅のメールサーバからポストしたメールを、プロバイダのメールサーバにリレーしてもらうための方法をまとめる。最近は、スパムメールが横行しているため、メールサーバはSASL認証などによりアクセス制御している。以下の説明では、自宅のメールサーバ=postfix、プロバイダ=eoと仮定し、メールサーバの(SASL認証以外の)設定は済んでいるものとする。
設定方法
まず、/etc/postfix/main.cfに利用するプロバイダのリレーホストを記述する。
relayhost = smtpauth.eonet.ne.jp:587
次に、同じ設定ファイルでSASL認証のための設定を記述する。
smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_sasl_mechanism_filter = plain, login, cram-md5
ここで、smtp_sasl_...となっていることに注意する。というのは、smtpd_sasl_...という設定パラメータも存在するから。前者は、クライアントとして(サーバの提供する)SASL認証を利用する場合の設定パラメータを意味し、後者は、サーバとしてSASL認証を提供する場合の設定パラメータを意味する。
次に、SASLパスワードを記述したパスワードファイルを作成する。以下で作成するパスワードファイルは、/etc/postfix/sasl_passwdとする。
smtpauth.eonet.ne.jp:587 アカウント%キーワード.eonet.ne.jp:パスワード
作成したらpostmapを実行し、ルックアップでーブルを作成し、パスワードファイルを消去する。
# pwd /etc/postfix # postmap sasl_passwd # rm sasl_passwd
最後に、postfixをリロードしておく。
# /etc/rc.d/init.d/postfix reload
2009年9月14日月曜日
今更ながらchangelogメモ
本記事では、普段のメモを効率的に記録、管理、活用するための方法で、changelog+chalowを使う方法をまとめる。新しいネタではないが、新しい環境でセットアップすることがあったので、そのときに調べたことなどをまとめる。
ChangeLogの概要
ソフトウェア開発で変更履歴(changelog)を1つのファイルにまとめて書いておくことがある。emacsでは、changelogを簡単に書くための機能が備わっている。Ctrl-x4aでchangelogのバッファがオープンされ、すぐに新規事項を記入できるようになっている。
デフォルトでは、ホームディレクトリに下にChangeLogというファイルが作成され、追加したメモはそこに蓄えられていく。1つのファイルに、日記やTodoリスト、覚書などすべてのメモが蓄えられるので、管理が楽である。普段からemacsを使う人には、思いついた側から即座にメモることができる。メモした内容を検索するための機能もemacsには備わっている。詳細は、横着プログラミング第1回参照。
Chalowについて
chalowは、changelogをhtmlに変換するためのスクリプトである。aptでインストールできる。apt-cacheでパッケージを調べてみると以下の通り。
# apt-cache search chalow chalow - weblog tool that converts ChangeLog to HTML
インストールするには、お決まりのapt-getで次の通り。
# apt-get install chalow
chalowの使い方は、helpによると次の通り。詳しくは、chalow on the webを参照。
$ chalow usage: chalow [options][file]... -n, --top-n=NUM write NUM days to "index.html" -o, --output-dir=DIR directory to output -c, --configure-file=FILE configure file -s, --stop-date=DATE date to stop processing -u, --update-by-size overwrite only if sizes are different -C, --css=FILE css file -q, --quiet quiet mode -8, --utf8 utf8 mode -d, --debug debug mode
基本的には、変換するChangeLogの場所を指定して、それをhtmlに変換したものを出力するディレクトリ、および、変換時に使用する設定ファイルを指定している。以下に、例を示す。
$chalow -o ~/html -c ~/etc/cl.conf ~/ChangeLog
ちなみに、cl.confは以下の場所にある(と思う)サンプル設定ファイルcl.conf.gzを解凍し、それを自分用にカスタマイズして使っている。
# cd /usr/share/doc/chalow/examples # ls cl-en.conf.gz cl.conf.gz conf # cp cl.conf.gz ~/ # cd # gunzip cl.conf.gz <--- サンプルのcl.confが得られる。
基本的にカスタマイズした箇所は、README(ChangeLog on the web参照)に書かれていた以下の箇所ぐらい。
※7 tDiary のテーマ (CSS ファイル) をそのまま使うために必要。 tDiary のテーマを使うには以下のような設定を行うと良い。 - $item_header_style = 1 or 2 (イメージアンカーを使うとき) - $use_h3_for_item_header = 1 - $css_file = "tDiaryのテーマのCSSファイル.css" - $item_template で h3 で header を囲む。
tDiaryのテーマが使えるらしいので、テーマをtDiary.orgからダウンロードする。
$ wget http://www.tdiary.org/download/tdiary-theme-2.2.2.tar.gz $ tar zxvf tdiary-theme-2.2.2.tar.gz $ cd tdiary-theme-2.2.2 $ ls 3minutes dice hatena-white nahanaha savanna 3pink digital_gadgets hatena_cinnamon nande-ya-nen scarlet 90 dog hatena_japanese narrow seam-line README dot hatena_leaf natrium sepia alfa dot-lime hatena_rainyseason natural_gray shirakaba などなど
大量のテーマが入っているので、自分の好きなものを選んで、そのフォルダ毎webサーバにアップロードする。
そして、先ほどのcl.confに書き込む。例えば、webサーバ上のcssディレクトリにkaeruディレクトリを置いた場合は次のようにする。
# ---------------------- # CSS ファイル #$css_file = "diary.css"; $css_file = "css/kaeru/kaeru.css"; <---相対URLで指定しているが、ここは各自の環境に合わせて適宜変更。
後は、chalowでhtmlに変換すれば良い。上の例では、~/html以下にファイル一式が生成されるので、これら一式をWebサーバにアップする。
以下のようなスクリプトを書いておくと、次からは楽で良い。
#!/bin/sh chalog=${HOME}/ChangeLog <--- 適宜変更 conf_dir=${HOME}/etc/cl.conf <--- 適宜変更 out_dir=${HOME}/html <--- 適宜変更 chalow -o $out_dir -c $conf_dir $chalog echo "$chalog ---> $outdir/index.html... fin"
私は、ssh接続の可能なwebサーバを利用しているので、rsync (over ssh)を使って~/htmlディレクトリ以下をwebサーバ上のディレクトリと同期させるスクリプトも使って、コマンド1つで簡単にアップロードも済ませている。プライベートな内容も含まれるので、htaccessなどによりアクセス制御をしている。
2009年9月4日金曜日
(第1回)asymptoteを使ってみる。インストール編
「asymptote」というベクタグラフィックス記述言語を試しに使ってみたので、まとめてみる。
ことの始まり
latex文書中に、球面や放物線などの数学的な図形を挿入するための図形描画ソフトで、以下のようなイメージにあうものを探していた。
- ベクター画像として描画。
- 手書きでない。
- 手軽に描画できる。
ネットで調べると、例えばTexWiki(の「関連ツールなど」のところ)に、かなり詳しい情報がまとめられていた。latex文書に挿入する画像は、「tgif」や「Inkscape」で作成することが多かったのだけど、手書きで描画したくなかったので却下した。また、「gnuplot」や「OpenGL」など他の選択肢もあったのだけど、今回はasymptoteが合ってそうなので、試しに使ってみた。
Asymptoteは、sourceforgeやgnuなどのサイトに詳しい説明が書いてある。
aptでインストール
ubuntu 9.04へのインストールは極めて簡単で、以下のようにコマンドラインからapt-getで入れるか、synapticを使ってインストールします。ちなみに、ポストスクリプトビューアの「gv」が入っていないならば、これもインストールしておきます(他のポストスクリプトビューアでも良いのかもしれないけれど、試していないので不明)。
# apt-get install asymptote
インストールして少し使ってみたら、3次元図形を描画するときにエラーが出てうまくいかないことが分かった(理由不明)。インストールされていたバージョンは1.43-1だったので、最新のに比べて古いようだ。よって、アンインストールして、最新のソースをダウンロードし、インストールすることにした。
# apt-get remove asymptote
ソースからインストール
公式サイトから最新のソースファイルをダウンロードする。私は、バージョン1.85のもの(asymptote-1.85.src.tgz)を入れた。Document->Installation->2.6 Compiling from UNIX sourceに書いてあるように、garbage collectorが必要なようです。# wget http://downloads.sourceforge.net/asymptote/asymptote-1.85.src.tgz # gunzip asymptote-1.85.src.tgz # tar -xf asymptote-1.85.src.tgz # cd asymptote-1.85 # wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/gc-7.1.tar.gz # ./configure # make all # make install
最初にapt-getでインストールしたときに、実行ファイルasyが/usr/binにあったけど、ソースからインストールした方は/usr/local/binに配置される。これを通知するためにリハッシュしておく。
# hash -r
動作確認
詳しい使い方は、sourceforgeにある公式サイトにDocumentが置いてあります。また、wikiもあって、分かりやすく書かれています。まず、次のようにターミナルからasyで起動します。後は、描画コマンドを順次発行して、対話式に描画していきます。以下では、原点から(100,100)に向けて線を引くように命令しています。
$ asy Welcome to Asymptote version 1.43 (to view the manual, type help) > draw((0,0)--(100,100));
すると、gvが起動して、きちんと線が描かれていることが確認されました。

対話モードを終了するには、次のようにする。
> quit $
また、graph3を使って3次元図形を描画するコードを動かしてみました。このコードは、Documentに書いてあるものを使っています。エディタで、次のコードを書いてtest.asyで保存します。
import graph3; size(0,200); size3(200, IgnoreAspect); currentprojection=orthographic(4,6,3); real x(real t) {return cos(2pi*t);} real y(real t) {return sin(2pi*t);} real z(real t) {return t;} path3 p=graph(x,y,z,0,2.7,operator ..); draw(p,Arrow3); scale(true); xaxis3(XZ()*"$x$", Bounds, red, InTicks(Label, 2,2)); yaxis3(YZ()*"$x$", Bounds, red, InTicks(beginlabel=false, Label, 2,2)); zaxis3(XZ()*"$x$", Bounds, red, InTicks);
そして、実行して、epsファイルが生成されていることを確認します。
$ asy test.asy $ ls test.asy test.eps $ gv test.eps &

キーワード
お気に入り
お気に入りのWebサイト(一部、外部サイト)へのリンクの一覧です。