fc2ブログ

実名と匿名について思うこと

最近は、ソーシャルネットワークという映画の影響もあり、
FaceBook の話題が増えてきました

その中で、実名で行うため、信頼性が高いという話をよく聞きます
ただ、個人的にはこの実名がほんとうに信頼できるかは微妙ですが

基本的にほとんどの人は会社や学校で実名で過ごしますが
果たしてそこまで信頼できるかといえば
私はNOです

それはさておき、信頼性がないといわれる匿名ですが
実はこの匿名にもメリットがあると思います

1つは、いままでのレッテルが存在しないということです
匿名なので、本人かどうかわからないので
実はこういうことができるということをベースに
ネットで稼ぐということもできますし、いままでのレッテルがないため
発言する時にも、よくも悪くもゼロからの信頼性のスタートになります

もっとも発言を重ねていけば
それが信頼性を生みますので、いつまでもニュートラルではありません

質問をするときにも、これが反映されます
質問をするときに、そんなことも知らないの?ということを
言われることもあまりありませんし
質問力をつけていけば、適切に回答してくれる人もたくさんいます

他業種への転職や。新しく独立するときの相談なども
匿名であるがゆえに、トラブルを招かずに進めることもできると思います

結局は匿名、実名に限らず、本人の行動次第で信用は
積み重ねられると思います
スポンサーサイト



テーマ : お金の勉強
ジャンル : 株式・投資・マネー

ネットでものを売る経験を得るということ

Android アプリの開発を進めたりするのには
どうしても勉強したりするので、資金がかかってきます

そこで、ネットで収入を得てみようと考えています

とはいっても、怪しいものではなく、
オークションや、中古の売買を行ってみようと思います

ほとんどの場合、古本や使わなくなったものは
中古ショップにもっていきます
最近では、買い取りにくるというケースもありますが
ほとんど、業者の言い値となり、だめならそのまま残る
というケースです

しかし、ネットオークションや
Amazon のマーケットプレイスを使えば
自分で価格設定できるのではないのでしょうか?

ということで、まずは情報収集です

オークションといえば、ヤフオクが有名です
やり方などが詳細として載っているサイトとして
初心者のためのYahooオークション講座
を参考にして、勉強してみようと思います

また、Amazon のマーケットプレイスは
いままで中古品で買えるということで使っていましたが
これからは
販売することも考えて見ようとおもいます

ラノベなどは、中古本でもっていくと、ほとんど10円単位になってしまうので
Amazon などで販売したほうがよいのではないでしょうか
こちらについては
Amazonマーケットプレイスで儲けよう!
を参考にしていこうと思います

テーマ : お金の勉強
ジャンル : 株式・投資・マネー

アプリケーションをAndroidマーケットに登録

3月になり、いつもなら、日本企業の資金還流によって
円高になるので、この機会にAndroid マーケットへの登録をして
おこうと思います

Android マーケットに登録するには

Googleアカウント

クレジットカード

そして開発者登録費用の
25ドルになります

クレジットカードの決済には最終日の為替レートで
計算されやすいので、この円高の機会に行って
おこうと思います

ちなみに、この登録は、無料アプリで
有料アプリを公開するには、また別の方法が必要のようです

アプリケーションをAndroidマーケットに登録する

書籍、Google Android アプリ開発ガイド 第2番
を参考にすすめていきます

まず。Google アカウントですが、
Androidマーケットなどに情報として公開されること
そして
もし、DevPhone を購入するときのパケットの問題を回避するために
新規にアカウントを作成したほうがよさろうです

私は、新規にアカウントを作成しました

新しくアカウントを取得したら、
http://market.android.com/publish
へアクセスし、登録を開始します

書籍情報だと古い可能性が高いので
念のため 検索し
Android Market に開発者登録してみた [日記]
も参考にしました

開発者の登録画面は、現在では日本語化されているようです

デベロッパー名には、開発者名
つまり、自分のハンドルネームでよいとおもいます

メールアドレスは、Google のアカウント
というか g-mail のアドレスがデフォルトで入っているので
そのままです

ウェブサイトは、自分のブログとかでもいいと思うのですが
(というより、私はこのブログしかありませんので)
空欄でも問題はないです

まぁ問題がでてきたら、のちのち修正しようかなと思っています

また、電話番号を登録する必要がありますが
これは国際電話の番号になります

Android Market に開発者登録してみた [日記]

Google Android アプリ開発ガイド 第2番
によれば、
先頭に「81」をつけ、市外局番の先頭の0を取り除いた番号
とのことですが

そもそも固定電話など使わないし、携帯しか使っていないので
ここは
携帯の番号に +81
をつけてみました

この電話番号は非公開扱いで
何かトラブルとかがあった場合に Google から連絡をするためのもの
とのことです

規約は変わりますので、今後もこのままとは限りませんが
とりあえずは、携帯にしておきました

続いて、チェックアウトの画面にいきますが
このときに、念のために、Android マーケットデベロッパー販売/配布契約
のところをクリックし
画面の規約書を名前をつけて保存しておきます
(なにかあったときに、契約書は証拠にもなります)
まぁAndroid の普及具合からして問題はないとおもいますが

ただ、カード番号登録の画面で、国際電話ではなく
日本の携帯電話で普通に登録をしてしまいました

まぁ問題があれば、そのうちメールが届くでしょう

ここまでで、アプリのアップロードはできるようですが
まだ登録が完了していないようです

土日なので、もしかしたら休みなのかもしれません

テーマ : プログラミング
ジャンル : コンピュータ

拡張正規表現と egrep その3

今回は、複数の正規表現を組み合わせてみました

1:山田太郎:男:43:東京
2:井上直子:女:19:埼玉
3:山本真一:男:43:福岡
4:千葉信夫:男:16:東京
5:秋山敬一郎:男:44:秋田

100:藤本信:男:40:東京
101:藤本信:男:40:東京
102:加藤純子:女:35:千葉
103:福岡勲:男:41:香川
104:桂井昭宏:男:53:福岡

という内容の costomer.txt というファイルを使い
最初の会員番号を示すフィールドから
指定した会員番号のところを表示するようにします

egrep "^(1|5|103):" costomer.txt
とします
 
結果は
1:山田太郎:男:43:東京
5:秋山敬一郎:男:44:秋田
103:福岡勲:男:41:香川
となります

"^(1|5|103):"
というように、^ の後を囲うことで、行頭の数字になるように
設定しています

もし、"^1|5|103 とすると
最初は目論見どおりですが
後の5 103 は行頭の指定が反映されません

このため、任意のところにしたいときには()での指定が
必要になります

また、egrep のオプションで -o をつけると
マッチする部分のみ表示することも可能です

egrep -o "^(1|5|103):" costomer.txt
とすると
1:
5:
103:

となります

これは、スクリプトなどで修正したときに確認するのに使えそうです

また、このマッチする部分というところを利用して
範囲指定もできます

egrep -o "[0-9].*[0-9]" costomer.txt
とすれば、数字に囲まれている間だけを表示できます

1:山田太郎:男:43
2:井上直子:女:19
3:山本真一:男:43
4:千葉信夫:男:16
5:秋山敬一郎:男:44
100:藤本信:男:40
101:藤本信:男:40
102:加藤純子:女:35
103:福岡勲:男:41
104:桂井昭宏:男:53

応用すれば、単語で範囲指定とかもできそうです

テーマ : Linux
ジャンル : コンピュータ

拡張正規表現と egrep その2

引き続き、拡張正規表現 egrep についてです

今回は、会員番号で検索するというのをやってみます

使用するファイルは
costomer.txt
です

内容は
1:山田太郎:男:43:東京
2:井上直子:女:19:埼玉
3:山本真一:男:43:福岡
4:千葉信夫:男:16:東京
5:秋山敬一郎:男:44:秋田

101:藤本信:男:40:東京
102:加藤純子:女:35:千葉
103:福岡勲:男:41:香川
104:桂井昭宏:男:53:福岡
となっています

それでは、会員番号3桁のところだけを調べます

egrep "^[0-9]{3}:" costomer.txt
これで

101:藤本信:男:40:東京
102:加藤純子:女:35:千葉
103:福岡勲:男:41:香川
104:桂井昭宏:男:53:福岡

となります
まず、最初の^で行頭を意味し
次の [0-9] で 0~9まで
そして {3} で3回繰り返す

つまり、100~999までになります


また、ゾロ目の数値だけを取り出すこともできます

今回は
年齢のフィールドを対象にして年齢がゾロ目の人を表示します

ゾロ目を表示するには、
文字列を()で囲ってグループ化し
さらに
\1 を使って後方参照します
後方参照は \1 を使ってのグループ呼び出しです

egrep ":([0-9])\1" costomer.txt
を実行すると
5:秋山敬一郎:男:44:秋田
となります

この
([0-9])\1
の部分がゾロ目を意味しています


テーマ : Linux
ジャンル : コンピュータ

拡張正規表現と egrep

拡張正規表現は、標準の正規表現にメタキャラを追加し
より柔軟なパターンを追加したものです

以下は、egrep だけで使える正規表現の一例です

?
直前の正規表現の0回もしくは1回の繰り返し

+
直前の正規表現の化言い条の繰り返し

{n}
直前の正規表現のn回の繰り返し

{n,}
直前の正規表現のn回以上の繰り返し

{n,m}
直前の正規表現のn回~m回の繰り返し

正規表現1|正規表現2
いずれかのパターンにマッチ

(正規表現)
正規表現のグループ化

\n
グループ化された n番めの正規表現に
マッチした文字列を呼び出す

というようになります

日経 Linux 2011-03
に例題が載っていますので、明日以降
また例題をみながらやっていきます

テーマ : Linux
ジャンル : コンピュータ

正規表現で grep 検索を便利に その5

引き続き、正規表現です

正規表現にはメタキャラがあります

主なものとして

^
行の始まり


行末

.
任意の1文字

*
直前の正規表現
もしくは
0回以上の繰り返し

[文字列]
いずれかの文字
例:[abc]
ならa か b か c になる

[^文字列]
この文字列以外の文字
例:[^abc]
ならabc を含まない行をしめす

\b
単語の区切り

\<
単語のはじまり

\>
単語の終わり

\w
すべての英数字
[[:alnum:]]
と同じ意味になる

\W
すべての英数字以外
[^[:alnum:]]
と同じ意味

というようになります

一番使えそうなのが、みたところ単語なのですが
この単語とは
スペースや Tab , ; などで区切られた文字列なので
なれないと使い勝手はよくありません

試しに、FTPサーバー構築のために、ファイルを grep で調べてみたのですが
grep "\" /etc/vsftpd/vsftpd.conf

anonymous_enable=YES
local_enable=YES
write_enable=YES
#anon_upload_enable=YES
#anon_mkdir_write_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
#chown_uploads=YES
xferlog_std_format=YES
#async_abor_enable=YES
#ascii_upload_enable=YES
#ascii_download_enable=YES
#deny_email_enable=YES
# directory. If chroot_local_user is YES, then this list becomes a list of
#chroot_local_user=YES
#chroot_list_enable=YES
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES
userlist_enable=YES
tcp_wrappers=YES

としてYESを含む単語はでますが

ascii の単語を含む行をだそうとしてもでませんでした

また、単語で調べるときには、日本語だとうまく動作しないようです

テーマ : Linux
ジャンル : コンピュータ

正規表現で grep 検索を便利に その4

今回は、メタキャラをつかってみようと思います

とくに一番使う * を使ってみます

* は端末で一番使うことが多いと思います

例えば grep *.txt
として .txt の拡張子のものを調べたりといろいろ活用できます

ただし、正規表現になると意味が変わっていますので要注意です

^が行頭だったのに、正規表現にしたら 否定になっているように

*も、~を含むすべて、というような意味合いから
正規表現では
直前の文字、もしくは0回以上のパターンの繰り返し
という意味になっています

0回もカウントしてしまうので、空文字も含みます

まずは、わかりやすく、サンプルを用意しましょう

vi sample.txt
でファイルを作成し

内容を
aa lx
laaaax
lbx 13
11 lax
345
4444456
laas
lbbx

という内容にします


この中から、l で始まりaの繰り返しが何個からあり
最後はx で終わるものを検索するには
grep "laa*x" sample.txt
とします

結果は
laaaax
11 lax
となります

間違えて
grep "la*x" sample.txt
とすると、空白入りの行がでてきます

この応用で、数字だけの行をだせます
grep "^[0-9][0-9]*$" sample.txt
これで
345
4444456
となります

. と * を組み合わせて任意の文字列とマッチさせるというのが
よく使われるそうです

ただし、1個以上の任意の文字列にするなら
.*
ではなく
..*
としますのでご注意

テーマ : Linux
ジャンル : コンピュータ

正規表現で grep 検索を便利に その3

サーバー設定に便利になりそうだったので、
正規表現をあれこれやっていますが

文字クラスの範囲指定が思いつかないので
日経Linux 2011-03 の記事を参考にします

そして、今回はサンプルファイルとして、costomer.txt
というファイルを使います

内容は
1:山田太郎:男:43:東京
2:井上直子:女:19:埼玉
3:山本真一:男:43:福岡
4:千葉信夫:男:16:東京
5:秋山敬一郎:男:44:秋田

101:藤本信:男:40:東京
102:加藤純子:女:35:千葉
103:福岡勲:男:41:香川
104:桂井昭宏:男:53:福岡
というものです

ここから、東京に住んでいる人だけを調べます
grep ":[東].$" costomer.txt
これを実行すると
1:山田太郎:男:43:東京
4:千葉信夫:男:16:東京
101:藤本信:男:40:東京

となります

$ は行末、そして . は任意の文字数になります
今回は :[東].$ なので、
意味は行末より2つ左の文字で、東を含むものを検索するという意味になります

また、通常は ^ は行頭を意味しますが
[] の中に記述すると、~でないという意味になります

例えば
grep ":[^東].$" costomer.txt
とすると、
2:井上直子:女:19:埼玉
3:山本真一:男:43:福岡
5:秋山敬一郎:男:44:秋田
102:加藤純子:女:35:千葉
103:福岡勲:男:41:香川
104:桂井昭宏:男:53:福岡

というように、東京に住んでいない人がでます


また、年齢で検索するという場合には
grep ":[3][0-9]:" costomer.txt
とすることで、30代の人を割り出すこともできます
最初の [3] で3を含む
そして
[0-9] で0~9までの数値、つまりこれで30代になります

もちろん複数指定も可能です
grep ":[13][0-9]:" costomer.txt
とすれば、10代と30代がでてきます

2:井上直子:女:19:埼玉
4:千葉信夫:男:16:東京
102:加藤純子:女:35:千葉

あまり使い道はないように見えますが
テキストエディタで、メモしたときには検索するときに役立つと思います

例えば、お小遣いの記録とかには使えそうです

ちなみに、指定する時には名前付文字クラスで代用できます

主なものとして
[:alnum:]
すべてのアルファベット、10進数を示す
つまり
0-9A-Za-z を指定したのと同じ意味

[:alpha:]
すべてのアルファベット
つまり
A-Za-z と同じ

[:blank:]
空白文字
これは
スペースやタブなど

[:digit:]
10進数の文字
0-9 と同じ

[:lower:]
アルファベットの小文字
a-z と同じ

[:upper:]
アルファベットの大文字
A-Z と同じ

[:space:]
空白文字
こちらは、スペース、タブ、そして改行

[:xdigit:]
16進数につかう文字
0-9A-Fa-f と同じ

ちなみに、使うときには
[] で囲って
[[digit:]] というように使います

今回のように10~30代を調べるには
grep ":[13][[:digit:]]:" costomer.txt
とします

もちろん意味は変わらないので

2:井上直子:女:19:埼玉
4:千葉信夫:男:16:東京
102:加藤純子:女:35:千葉
と表示されます

テーマ : Linux
ジャンル : コンピュータ

正規表現で grep 検索を便利に その2

引き続き、正規表現をつかった grep の操作です

今回は、行頭をしめす ^

そして行末を示す $

これらを使った便利な検索を行っていこうと思います

まずは ^ からです

設定ファイルに追記し、記述があっているかわからない
もしくはエラーメッセージで何行目にエラー
となったときに、ファイルを開かずとも
該当するところを grep で表示できます

例えば
SetEnvIf Request_URI default.ida no_log
SetEnvIf Request_URI cmd.exe no_log
SetEnvIf Request_URI root.exe no_log
SetEnvIf Request_URI Admin.dll no_log
SetEnvIf Request_URI NULL.IDA no_log

を追記し、その確認をしたいのなら
行頭が SetEnv で始まっているので、今回の ^を使います

$ grep -n "^SetE" /etc/httpd/conf/httpd.conf
511:SetEnvIf Request_URI default.ida no_log
512:SetEnvIf Request_URI cmd.exe no_log
513:SetEnvIf Request_URI root.exe no_log
514:SetEnvIf Request_URI Admin.dll no_log
515:SetEnvIf Request_URI NULL.IDA no_log

これで行番号もでますので、ミスがあれば
sed コマンドで置き換えすれば修正できます


また、行末の単語で検索すれば、かなり便利に検索できます

例えば
Webサーバー構築(Apache)
にあるように、最後の文字が80ならば
$ grep -n "80$" /etc/httpd/conf/httpd.conf
133:#Listen 12.34.56.78:80
134:Listen 80
262:ServerName www.example.com:80
980:#NameVirtualHost *:80
というように、 vi でテキストを開いて / で単語をいれて検索するよりも
より効率的に調べることができます

テーマ : Linux
ジャンル : コンピュータ

正規表現で grep 検索を便利に

いろいろと検索するときに使える
grep コマンドですが、オプションや正規表現を使えば
さらに便利になります

とくに、設定スクリプトをつくりたいときに使っています

まずは、文字の検索です

grep "探したい文字" ファイル名
これで、ファイルのなかから任意の文字をさがせます

例えば
SELinuxの設定を無効にするため、
enforcing という場所がどこにあるかをみるには
grep "enforcing" /etc/sysconfig/selinux

で見れます
ただし、該当する行が全部でます

実行結果は
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
SELINUX=enforcing
となりました

"" で囲んであるのは、*などのメタキャラを含む場合に
シェルに展開されないようにするためです


続いて -c オプションをつけて、該当する行がいくつあるか数えます

今回は SELINUX とかかれている行の数を表示します
grep -c "SELINUX" /etc/sysconfig/selinux
4

これで該当するのは4行ということがわかりました


また、OR検索をするには
-e オプションをつけます
これはいくつか連続してできますが、絞り込みにはなりません

例えば
enforcing と SELINUX を含む行をだすには
grep -e "SELINUX" -e "enforcing" /etc/sysconfig/selinux
としますが
絞り込めていません
両方のうち、どちらかを含む行がでてきます

# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
SELINUXTYPE=targeted

このため、絞り込みをするには、一度 grep で検索した結果を
パイプでさらに検索すれば絞り込み可能になります

grep "SELINUX" /etc/sysconfig/selinux | grep "enforcing"
これで
SELINUX=enforcing
となり、目的どおりの絞り込みができました

さらに -n オプションをつければ、行をしらべ
sed コマンドで簡単に書き換えできます

このときに注意するのは
最初のgrep コマンドで -n オプションをつけてから
絞りこみするということです

正解:$ grep -n "SELINUX" /etc/sysconfig/selinux | grep "enforcing"
7:SELINUX=enforcing

誤り:$ grep "SELINUX" /etc/sysconfig/selinux | grep -n "enforcing"
2:SELINUX=enforcing

このように、後にオプションをつけると行が変わってしまうのは
絞り込んだあとで行を数えているからです

このため。本来なら原文の7行めになるはずが
絞り込んだら2行めなので、2行めと表示
というようになってしまいます

sed などで一気に改造したいときには、調べるときに
こういった順番の誤差に気をつけましょう


テーマ : Linux
ジャンル : コンピュータ

月曜日はIMMのポジション量発表

IMMのポジション量によれば、一番ロングが積もっているのがポンド

ちなみに円はショートになりつつあるため、円買いの可能性あり

ポンドに関しては、史上最大までもう少しだけど、ドル円がはっきりしないと危険

あとはスイスだけど、これは中東不安からきてるとのこと
よくある有事のスイスフラン買い
金融危機、かつてのリーマンショックのときに、対スイスフランはすごい上昇


カナダは原油高が要因でロング拡大

こちらも中東不安により原油高になり、結果カナダロング拡大につながるようです
ただし、先行きは微妙

NZドルは、金利が人気だけど、金利の先行きが微妙

むしろ、食料輸出国の強みと、最近の食料価格高騰による景気拡大が理由でロング拡大

豪ドルが一番わかりにくく
銀行格下げや、洪水被害、があるけど金利差が人気、そして資源価格高騰が理由でロング拡大らしい
ただ、欧米の金利があがると、金利差はなくなり、レバトリになるリスクもあるかもしれません

毎週 月曜日にはIMMのポジション量発表になりますので
ある程度の参考にはなります

史上最大のロングや、ショートとでてきたら、要注意です

ちなみに、IMMのポジション量は対ドルになりますので
クロス円と間違えないようにしましょう

シェルスクリプトで chown

シェルスクリプトで

chown コマンドを使うようにしてみました

test.txt というファイルをつくり、中身を適当に用意します

vi test.txt
で作成し

aaaaa
bbbbb
という内容にします

今回は、所有権の変更なので、中身は適当です

通常、chown ユーザ名 ファイル名
となりますが

今回は
vi chowntest.sh
でスクリプトを作成してみました

#!/bin/bash
echo "変更するユーザ名を入力"
read name
chown $name. test.txt

という内容です

これを
sh chowntest.sh
とすれば

所有権が入力したユーザ名に変わります

ただし、存在しないユーザを入力するとエラーになります

このスクリプトを使えば、
よくある
chmod ユーザ名. /var/www/html/
のときに簡単に設定できそうです
(通常は root 権限なので、変更は必須ですから)

構文の中にある read は
キーボードからの入力をするために使っています

シェルスクリプト :: read コマンド
そして
【 文字列の入力 】
を参考にしてみました

テーマ : プログラミング
ジャンル : コンピュータ

fedora13 64bit へ Flash plugin

fedora13 64 bit へ flash plugin を入れてみました

参考サイトは
Flash Player "Square" Preview Release 2 on Fedora 13 64bit

Adobe Labs
から
ownload plug-in for 64-bit Linux (TAR.GZ, 4.1 MB)
をダウンロードします

他にもセッティングできるように
cp $HOME/ダウンロード/flashplayer10_2_p3_64bit_linux_111710.tar.gz

でファイルを Dropbox へコピー

その後、
tar zxvf $HOME/Dropbox/flashplayer10_2_p3_64bit_linux_111710.tar.gz -C $HOME/.mozilla/plugins/
を実行することで
$HOME/.mozilla/plugin
へファイルをコピーします

ちなみに、-C オプションは、指定したディレクトリに
ファイルを展開するというものです

これを
vi setup_fedora13_64.sh

で スクリプトを作成し、内容を

#!/bin/bash
tar zxvf $HOME/Dropbox/flashplayer10_2_p3_64bit_linux_111710.tar.gz -C $HOME/.mozilla/plugins/

としてDropbox へ一緒に保存しておけば
ほかの fedora13 64bit へも簡単に適用できます

ただし、セットアップしたら、firefox を再起動しましょう

これで 64bit でも Youtube が見れます

テーマ : Linux
ジャンル : コンピュータ

wireshark

サーバー公開とセキュリティの勉強のため、
パケット関連の勉強をはじめようと思います

手始めに、パケット解析などを行えるツール
Wireshark を使ってみます

今回、実験するのは
ubuntu 10.10 です

sudo apt-get -y install wireshark
でインストールできます

これで、準備はできたのですが、起動するときには、
一般ユーザではなく、管理者権限で実行します

端末を開き、
sudo wireshark &

もしくは
sudo su
wireshark &
と実行することで、起動できます

一般ユーザでも起動できたのですが、
解析するインターフェースを選ぶことができませんでした

管理者権限で起動したら、調べたいインターフェースを選択します
すると、キャプチャが開始されますので、
これでネットワーク監視が可能になります

とはいっても。なれないとまったく意味が分かりません

Source はデータの転送元
Destination は データの転送先になるようです

Protocol は TCP や UDPなどの通信プロトコル
info には詳細情報が載ります

このinfo に、ネットに接続して閲覧しているときの情報がでます
PNG などの文字があれば、画像を閲覧していることがわかります

このときにキャプチャした画像は

File > Export > Objects > HTTP で表示されます
この画像を保存しておくには
Save All を選択し、任意の場所を選び、ディレクトリ名を
名前 のところの欄へ入力し。OKを押します

私の場合は、
/home/wiki/ドキュメント

samplechap
というディレクトリ名で保存しました

ただし、すべてのファイルを保存することはできませんでした
画像関連については、ほぼ問題なく保存されていると思われます

Wireshark を終了するときに
Quit without Saving
を選べば、キャプチャ内容を保存せずに終了します

Wireshark に関しては
ネットワークエンジニアを目指して
というサイトに詳しい説明が載っていましたので
参考にしながら勉強していこうと思います

テーマ : Linux
ジャンル : コンピュータ

Android アプリ作成(タッチ処理編)その4

Android アプリ作成(タッチ処理編)その3
の続きになります

まず、
public class test2Activity extends Activity {
の下に
SoundPoll sp;
int sound;
を記述し、
赤いラインがでているので、
SoundPoll のところへカーソルを持っていって
import SoundPoll (Android widget)
をクリックし、インポートします

int sound は音声ファイルの読み込みに使うための変数です

次に、
sp = new SoundPool(1,AudioManager.STREAM_MUSIC, 0);
を記述します
例のごとく、自動的に候補がでますので
実際にはかなり楽に書き込めます

続いて
sound = sp.loa
まで書き込むと候補がでてきますので
load(Context context, int resid, int priolity); int - SOundPool
を選択すれば自動的に書き込まれます

context を this へ、
resid を R.raw.dummy-message
と指定しようとしたのですが


[2011-02-19 00:07:17 - Test2] res/raw/dummy-message.wav: Invalid file name: must contain only [a-z0-9_.]
となるため、ファイル名を変更します

Eclipse の raw > dummy-message.wav
を右クリックし
Refactor > Rename 
もしくは
Shift + Alt + R
を押してファイル名を変更します

ファイル名を dum.wav
にして
resid を R.raw.dum
pliority を 1
へ変更します

そして

Button button = (Button)findViewById(R.id.Button02);
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

sp.play(sound, 1.0f, 1.0f, 0, 0, 1.0f);
}

});

を追加します

sp.play(sound, 1.0f, 1.0f, 0, 0, 1.0f);
は、音声再生の設定です

play()
の中の数値ですが、左から
サウンドの番号
左スピーカーの音量 (0.0~1.0)
右スピーカーの音量 (0.0~1.0)
優先度 (0が最優先数値になる)
再生速度 (1が標準。2で倍速、0.5で半分)

となります


かなりわかりにくくなったので、以下が
main.xml の全文になります
-------------------------------------------------------
package jp.co.nikkeibp.test2;

import android.app.Activity;
import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class test2Activity extends Activity {
SoundPool sp;
int sound;

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

sp = new SoundPool(1,AudioManager.STREAM_MUSIC, 0);
sound = sp.load(this, R.raw.dum, 1);

Button button = (Button)findViewById(R.id.Button02);
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

sp.play(sound, 1.0f, 1.0f, 0, 0, 1.0f);
}

});
}
}

------------------------------------------------------

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成(タッチ処理編)その3

Android アプリ作成(タッチ処理編)その2
をさらにカスタマイズし、音がでるように改造します

参考資料は、日経Linux 2011-03 です

新しく res の下に raw というディレクトリを作成します

まず
res ディレクトリの上で右クリックし

New > Folder
で設定ウィンドウがでてきますので

Folder name: の欄へ raw と入力し
Finish
をクリックします

これで、ディレクトリが作成されます
ちなみに、英語なのは
私の場合
DropBox とスクリプトで開発環境
にあるように、スクリプトでインストールしたときに
日本語化処理を行っていないためです

今後、英語のサイトなどを使うときの練習として
なるべくプログラミングは日本語化せずにできそうなものは
英語にしてみようと思っています

幸い、Eclipse は日本語化されて説明されていることが
多いので単語を置き換えながら
進めれば、なんとかなります

習慣化してくれば、気にならなくなります

日経 Linux 2011-03では don.wav
というファイルを使っているそうですが、
ubuntu には入っていませんし、再現性の問題から
デフォルトで入っている音源を使おうと思います

サンプルの音声が
/usr/share/sounds/
の中にありますので、好きなディレクトリの中のファイルから
使うことにします

今回は
ubuntu 10.10
の中の
/usr/share/sounds/speech-dispathcer/
の中にあるダミーメッセージファイルになる
dummy-message.wav
を使います

これをドラッグ&ドロップして、Eclipse の
raw ディレクトリにもっていきます

これで、音声ファイルが用意できましたので
それでは、引き続き java コードの改造をしていきます

今回、追加するのは
SoundPool クラス
(ゲームやボタンクリックの効果音など
 比較的短い音声再生につかうらしいです)

load メソッド
(音声ファイルの読み込みに使用)

playメソッド
(音声ファイルの再生に使用)

今回は、変更するために、いちど
setContentView(R.layout.main);
の下からの部分を切り取ります

切り取るのは

Button button = (Button)findViewById(R.id.Button02);
button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
TextView textView=(TextView)findViewById(R.id.TextView01);

textView.setText("ボタンをクリックしたよ");

}
});


の部分です

念のため、後で直せるように

アプリケーション > 
アクセサリ > Tomboy メモ
で新しいメモを開き、
張り付けておきます

これで、最悪の場合、この部分を張り付けて元に戻します

これで、バックアップもできたので

安心して機能を追記できます

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成(タッチ処理編)その2

Android アプリ作成(タッチ処理編)
の続きになります

ちなみに、参考書籍は 日経 Linux 2011-03です
写真入りの解説なので、わかりやすいです

ここで、main.xml のTexiView01 を取得し、 Text の
内容を変更する処理を追記します

public void onClick(View v) の下に追記します

TextView textView=(TextView)findViewById(R.id.TextView01);

今回もインポートすることが必要になるので
import TextView (Android widget)
をクリックします

これにより、文字列を表示する機能
TextView を使えるようになります

そして、その下へ文字列を表示する設定を記述します
文字列を表示するには
setText()
を使います

textView.setT
まで入力すると、候補がでてきますので
setText(CharSequence text);void
を選びます

そして、() の中を
"ボタンをクリックしたよ"
というように書き換えます

textView.setText("ボタンをくりっくしたよ");
という文になります

あとは保存して、実行すればボタンを押すことで
ボタンの下の文字が変わることを実感できるはずです

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成(タッチ処理編)

今度は、簡単な処理をする動作をつくってみます

まず、TextView を追加します
追加するには
Graphical Layout で
TextView をドラッグ&ドロップします

さらに
Show in > Propeties

T3ext の値を @string/hello
へ変更します
また、
main.xml の layout?height を wrap_content
にして文字に合わせ
layout_width を fill_parent にして
画面に合わせました

ここからは処理機能を追加するので、java のソースコードを改造していきます
まず、
src
というディレクトリの2階層下にある
Activity.java
を開きます

もう少し正確にいえば
アプリケーション名(testapplicationなど) >
src >
パッケージ名(jp.co,nikkei.testapplicationなど) >
Activity.java

という階層になっています

今回は Button2 をクリックしたら
TextView の内容が変わるというシンプルなものです

まず、
setContentView(R.layout.main);
の下に
Button button = (Button)findViewById(R.id.Button02);
を追記します

まだButton が java の標準機能に組み込まれていないので
Eclipse で赤い下線が引いてある Button にカーソルを合わせ

import "Button" (Android wodget)
をクリックすることでインポートされます

これを行うことで、
import android.widget.Button;
が追記されます

この次に、ボタンを押したときの処理を書きます

ボタンをクリックしたときの処理は
setOnClickListener() を使いますが
全部入力せずとも
Button.setOnC
まで入力すれば、Eclipse で候補をだしてくれるので
該当するものをダブブクリックすれば自動入力されます

このときできた
Button.setOnclickListener(1)
の1の部分を消し

new View.setOnClickListener
を追記するのですが

new View.OnC
まで入力すれば、さきほどと同じように Eclipse が候補を選別してくれます

これにより、自動的に
public void onClick(View v){
}
が追記されます

Eclipse ってほんとに便利だと思います

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成(ボタン表示編)その3

引き続き。Android プログラミングです

今回は、前回までとは異なり、main.xml ではなく
string.xml
を変更していきます

一般的に、レイアウトはmain,xml
文字列は string.xml で記述するようです

文字列を追加するには
string.xml の
Resource タグをクリックし、GUI で設定するか、もしくは
string.xmlを改造します

Resources で文字列を追加するには
Add > string
で設定画面をだし
Name に button1
Value に ここを押して
と入力します

これで、自動的に string.xml に追記されています

これで、新しくボタンを
Graphical Layout で Button をドラッグ&ドロップし
作成します
プロパティを変更したいので
ボタンの上で 
右クリック ≫ Show in > Properties でプロパティ画面をだします

今回は、 string.xml の設定を反映させてみたいので
Text の部分に @string/button1 を記述します
さらに、
layout width を fill_parent へ変更します

これで、新しくできたボタンには
ここを押して
という文字が表示されています

また、main.xml には
<Button android:id="@+id/Button02" android:layout_height="wrap_content" android:text="@string/button1" android:layout_width="fill_parent">
というコードが追記されます

今回の例からわかったのは
string.xml ファイルから
<string name="button1">ここを押して
を呼び出しているように

string.xml からソースを読み込むには
@string/NAMEの値
を指定するということです

つまり、今回の場合なら
<string name="button1">ここを押して
になるというわけです

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成(ボタン表示編)その2

引き続き、ボタン設定の続きです

今回は、作成したボタンの設定をかえてみます

ボタン作成については
Android アプリ作成(ボタン表示編)
に箇条書きでメモってますので
参考にしてください

ボタンのレイアウトを変更するため、
XMLを変更します

現在、初期の状態では
Layout height
つまり、ボタンの高さ

そして
Layout witdh
ボタンの幅

の設定が
wrap_content
になっています

このwrap_content
文字のサイズに合わせて、自動でサイズ調整する
という意味になります

これを画面の幅に合わせるようにするには
fill_parent
に変更します

変更の方法ですが
Graphical Layout を使う方法と、
main.xml を編集する方法があるのですが

Grahical layout を使って
表示されているボタンの上で 右クリック > Properties > fill_parent
となるはずですが
私の環境ではできなかったので

直接 main.xml
を編集しました

main.xml のなかに

%lt;Button android:id="@+id/Button01" android:text='"ぽちっとな (笑)"' android:layout_width="wrap_content" android:layout_height="wrap_content">

という部分がありますので
この wrap_content を fill parent へ変更します

%lt;Button android:id="@+id/Button01" android:text='"ぽちっとな (笑)"' android:layout_width="fill_parent" android:layout_height="wrap_content">
これで、ボタンの横幅が文字ではなく
画面の大きさに合わせたものに変わります

また、サイズ指定も可能です

%lt;Button android:id="@+id/Button01" android:text='"ぽちっとな (笑)"' android:layout_width="100px" android:layout_height="wrap_content">
というようにすれば、サイズも指定できます

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成(ボタン表示編)

こんどは、ボタンの表示についての勉強です

前回は、文字の表示の変更でした

今回は、ボタンを配置します
前回、使用した main.xml ファイルにある
<TextView
android:layout_widh="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
の部分を削除します

ちなみに、この意味ですが
fill_parent は画面と同じ幅で文字を表示

wrap_content で高さを自動的に調整

@string/hello で string.xml のhello の値を画面に表示

となります


では、今回のボタンの配置になります

XMLを記述するという方法もありますが
残念ながら、面倒でもあり、そもそもXMLを理解できていないため
GUIで操作できる
Graphical Layout を使い、Buttonをドラッグ&ドロップし
右側にある画面に配置します

これはIDEなどでアプリを作るときによく使います
このパズルのような画面と、ソースコードがリンクしているので
このパズルのような画面に部品を
ドラッグ&ドロップで配置すると
main.xml の中にもXMLのソースが自動的に記述されます

この追加したボタンのうえで右クリックし
Show in > Properties を選択すると、プロパティを出せますので
この中の値から、Text を探し、
Value のところに好きな文字を記述します

英語でなら問題ないのですが
日本語の場合、value に記述するときには
"" で囲みましょう
<例>
"このボタンを押しましょう!!"

これで、文字を変更したときのように、
実行をすれば、ボタンを配置したアプリが起動します

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成(画面レイアウト編)その2

ひきつづき Android プログラミングの勉強です

アプリの画面レイアウトには
XMLをいじる

もしくは
javaソースコードを改造する

のどちらかを使います

今回は、XMLをいじります

Eclipse の左側にある
Package Explorer を最大化し
プロジェクト名 > res > layout >
main.xml というファイルをダブルクリック

その main.xml の中に
android:text ="@string/hello"
という文があります

この意味は、res ディレクトリの中の
values の中にある string.xml を参照し
hello 属性の値を読み込む
ということになります

このことから
string.xml で表示する文字を管理
main.xml でどこに表示するか決定
Activity に反映

というのが文字表示の流れになっています

極端な話、
プロジェクトでできたアプリの文字列を変更したいなら
string.xml の中の
<string name="hello"> Hello world testr Activity </string>
のタグの中の部分を
<string name="hello"> アンドロイド実験です </string>

というよにタグの中を表示したい文字にするだけで変更可能です

あとはこれを保存し、実行すると変更が反映されます

また、アプリの名前を変更するには
<string name="app_name"> test</string>
のタグの中のtest の部分を 好きなアプリ名に変更することで
アプリ名を変更できるようになります
たとえば、
<string name="app_name">実験アプリ</string>
とすると、アプリ名が実験アプリになります

このように、固く考えず
まずはソースの改造くらいから行うと
おもしろく開発できるようになっていくと思います

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成(画面レイアウト編)

Android アプリ開発では
Activity を書き換えて拡張するそうです

この Activity ですが。
Android アプリの基本画面の制御につかわれるようです
例えば、ボタンの配置とか、ディスプレイタッチの検出など
そういった動作を処理しているようです

1つの Activity につき、Ⅰ画面なのですが
画面とはいっても、ボタンや検索欄などいろいろなパーツがあります

この入力欄などのパーツを view といいます

食べ物で言えば、Activity がトレイ
view が料理みたいなかんじです

トレイのどこに、配膳するか?みたいなかんじです

さて、この view 部品ですが、レイアウトするには
2つの方法があります

1、Activity の中で java でつくる

2、XMLで作って、resフォルダへ保存
  さらにjavaから読み込む

どちらが楽か?というと
2のほうが楽です

1では、java のソースコード(設計図)を改造します


今回は。XMLを改造します
Eclipse の左側にある
Package Explorer を最大化し
プロジェクト名 > res > layout >
main.xml というファイルをダブルクリックします

この .xmlがXMLファイルになります

このときに、Graphical Layout ならGUIで
main.xml なら XMLコードで記述して改造することになります

ちなみに、ここで、メイン処理を行っている java ソースコードについての
解説です
とはいっても、今回は改造しませんので
関数の解説です

onCreate() は Activity の初期化処理をかくところです
レイアウトを画面に適用する処理などは、ここに書くことになります

また、setContentView(R,layout.main);

この Activity に
res フォルダ内の
layout フォルダの中の
main.xml ファイルで定義した画面設定を適用

という内容になります

ということで
画面レイアウトの設定ファイルの指定は
setContentView() の中に
設定するという意味になるようです

それはさておき、main.xml の中を除いてみましょう

HTML や PHP のように タグが存在します

</textview>
/>
という部分がありますが、これが画面に文字列を表示するための
View になっています

さすがに長くなってきたので、解説はまた明日以降になります

テーマ : プログラミング
ジャンル : コンピュータ

Android アプリ作成(プロジェクト作成)

日経Linux 2011-3 を参考に
Android アプリの開発の勉強です

開発環境に関しては ubuntu 10.10 を使用しています

Eclipse の設定(プラグイン追加など)は
スクリプトではできないので、Eclipse から操作しました

その他については
DropBox とスクリプトで開発環境
をベースにスクリプトで設定するようにしました

では、本題の Android 開発です

まずEclipse をたちあげ
File > New > Project

Android Project を選択して
next
を押します

次の画面で

ProjectName には プロジェクト名
Build target では アプリの動作対象のandroidバージョン

ApplicationName はアプリ名

Package name はパッケージ名
Android マーケットで管理するときに使用するようです

Create Activity は
アプリの起動直後に表示される画面を制御するための
基本プログラムの名前

Min SDK Version は
動作対象の Android API Level になります
どのバージョンでも動かすなら
空白にするようです

これらを入力した後に
Finish
を押すとプロジェクトができます

テーマ : プログラミング
ジャンル : コンピュータ

Webメールアプリ RoundCube その4

ようやく RoundCube の設定完了したので、ログインして
使用してみました

http://サーバーIPアドレス/roundcube
今回は
http://192.168.10.141/roundcube
でアクセス

すると
ログイン画面になるので
ユーザ名。パスワードを入れます

入れるパスワードは IMAP4 のユーザとパスワードです
今回の一連の例なら
ユーザ名 fedora
パスワード fedora のパスワード

となります

ほとんど、見たとおりでわかりやすいのですが
ちょっと分かりにくそうなものがあったのでメモ

新規フォルダを作成するには
個人設定 アイコンをクリック
次に、フォルダ一覧 のタグをクリック
左下の新規フォルダ作成を意味する + をクリック
これに、フォルダ名をつけ保存すれば完了

メールの作成をするには
電子メール アイコンをクリック
左から2番めの 新規メール作成 のアイコンをクリック
これでメール作成画面がでてきます

また、メール作成には、通常はプレーンテキストで行いますが
画面右下の エディタの種類 をHTML へ変更すれば
HTMLメールの作成ができるようになります

また、スキンファイルを変更することで、見た目を変更できます

ただ、今回使用しているver0.5 では完全対応したスキンが
まだないようです
スキンファイルは、Roundcube のコミュニティサイトから
ダウンロードできます
URLは
http://www.roundcubeforum.net/dlcat-thems-skins-1/
となります

もし、気に入ったスキンがあるなら
ダウンロードしてから unzip で解凍し
ディレクトリごと
/opt/lampp/htdocs/roundcube/skin
へコピー
という方法を行うようです

個人的にはスキンは特にデフォルトのままで問題ないので
そのままにしています

RoundCube のエラーログは
/opt/lampp/htdocs/roundcube/logs
に残ります

また、これは問題点となるのですが、
RoundCube 自体には
メールの自動振り分け、
迷惑メール対策
ウィルス対策
などに対する備えがないので、
あらかじめ メールサーバーでその設定をしておく必要性があります

今回の設定では
この設定を行っていないため
Fedoraで自宅サーバー構築などを参考に
設定することが必要になります

テーマ : Linux
ジャンル : コンピュータ

Webメールアプリ RoundCube その3

ようやく、スクリプトを使って
ローカルメールサーバーが構築できましたので
これに RoundCube をインストールしていきます

/optlampp/lampp start
でXAMPP を起動します

スクリプトの設定どおりにいっているなら
メールサーバーも起動しているのですが
念のため Thunderbird から
自分あてのメールを送受信してみます

これで、自作のメールサーバーから
送受信が確認できたなら
いよいよソフトの導入開始です

まず、Firefox で
http://サーバーIPアドレス/roundcube/installer
へアクセスします

今回の場合なら
http://192.168.10.141/roundcube/installer
となります

一番下に
START INSTALLATION
というボタンがあるので、これをクリック

次の画面で
必要な条件を満たしているかがでますので
ここで条件が OK となっているなら
NEXT
をクリック

次の画面でインストール画面になります

product_name には
サイトのタイトルを記入します
私は実験なので、そこまで深く考えず
デフォルトのまま Roundcube Webmail にしました

次に、
Database setup
のところで、自分のデータベースの情報を入力します
この情報を確認するには
/optlampp/bin/mysqlshow -uroundcube -p roundcubeemail
で確認します

ちなみに、本来の構文は
/opt/lampp/bin/mysqlshow -uユーザ名 -p データベース名
です

パスワードは、Webメールアプリ RoundCube その2
で設定したもので、今回は
pass です

設定を順番に書くと
Database type には
MySQL

Database server(omit for sqlite)
には
localhost

Database name (use absolute path and filename for sqlite)
には
roundcubeemail

Database user name (needs write permissions)(omit for sqlite)
には
roundcube

Database password (omit for sqlite)
には
pass

を入力します

さらに、IMAP Setting があるのですが
DNSが構築できていないので、今回は
サーバーIPアドレスにしてみました
このため、
The IMAP host(s) chosen to perform the login
には
192.168.10.141

同様に、SMTP Setting にも
サーバーIPアドレスを使用します
smtp_server
には
192.168.10.141
としました

さらに、SMTP認証をつけてあるので
smtp_user/smtp_pass
の設定をします
smtp_user には fedora@linuxwiki.com
smtp_pass には hebereke
を入力します

SMTP 関連については
echo "hebereke" | saslpasswd2 -p -u linuxwiki.com -c fedora
のところです
構文は
echo "SMTPパスワード" | saslpasswd2 -p -u ドメイン名 -c ユーザ名
となります


次は言語設定になります
Display setting & user prefs

language のところで
ja_JP
を入力し、日本語をデフォルトにします

ここまで入力が完了したら
CREATE CONFIG をクリックし、次の画面を表示します

すると、
main.inc.php (download)
db.inc.php(download)
という項目がありますので、
青くなっている download の部分をクリックし
ダウンロードします
ただし、ページはそのままです

そして、このファイルを
/opt/lampp/htdocs/roundcube/config
へコピーします

大抵は、$HOME/ダウンロード
にダウンロードされますので、
一度ダウンロード先に cd で移動し
cp main.inc.php db.inc.php /opt/lampp/htdocs/roundcube/config/
で設定ファイルをコピーします

これで次に進めるようになりましたので
ダウンロードした項目の下に
CONTINUE というボタンをクリックし

次の画面で送受信テストを行います

Test SMTP config
では送信テストを行います

Sender には送信するメールアドレス
Recipient には受信するメールアドレスを入れます
今回は、ローカル内での送受信になるので、
両方とも
fedora@linuxwiki.com
にしました

成功すれば
Thunderbird にメールが届きます

続いて、受信するサーバーのテストになります
Test IMAP config

server に IPアドレス(今回は 192.168.10.141)
Port には 143
Username には fedora
Password にはログインパスワード
となります

ちなみに、このfedora というユーザは
ssh接続ができない一般メールユーザとして作成したもので
このようなユーザを作成するには
useradd -s /sbin/nologin ユーザ名
で作成できます

これで、送受信がOKであることを確認できたら、
インストールウィザードは使わないので
アクセス不能にするためにパーミッションを変更します

cd /opt/lampp/htdocs/roundcube/
chmod 700 installer/

これで、設定が完了です
次回からは、実際に RoundCube へログインし、
使用してみます

テーマ : Linux
ジャンル : コンピュータ

ubuntu 10.04 へbacktrack4

Linux にはいろいろなディストリビューションがあります

そんななか、初心者向けではないけど
セキュリティテストに向いているものがあります

backtrack4 というものです

ただし、初心者の人には向きません
コマンドを使ってネットワーク接続したり、GUIを起動するので
普通に使うなら ubuntu を使いましょう

今回は、そんな backtrack 4 を
ubuntu へ入れしましたので、
メモです

ただし、完全な backtrack 4 の環境を使うことはできませんでした
本来。Ctrl + Alt + F3 でコマンドラインモードで startx
でGUIが立ち上がるのですが、残念ながらエラーになり、コマンドは使えるものの
GUI画面で行うものができませんでした

まず、今回の実験をするには
backtrack4 の Live DVD などが必要です
この用意に関しては、以前
BackTrack4
に書いたのを参考に用意しました

次に、backtrack4 のDVDをドライブへ入れ
次に
cd /media/BT4/casper
でファイルシステムのある場所へ移動
次にsudo -s
でroot シェルへ

mount -o loop -t squashfs filesystem.squashfs /mnt
でファイルシステムを /mnt へマウント

mkdir /bt4
でコピーするディレクトリを作成

cp -a /mnt/* /bt4/
で/bt4の下へコピー

以下は必要なファイルのコピー
cp /etc/resolve.conf /bt4/etc/
cp /etc/hosts /bt4/etc/
mkdir /bt4/dev/pts

続いて
gedit /etc/fstab

以下の3行を一番下へ追記
proc-chroot /bt4/proc proc defaults 0 0
/dev /bt4/dev/ none bind 0 0
devpts-chroot /bt4/dev/pts devpts defaults 0 0

これらを
mount -a
でマウントすることで
ubuntu 10.04 でも backtrack4 のコマンドを使用することができます
(ただし、全部できるとは限りませんが....)

コマンドを使用するには
sudo chroot /bt4
とし、それから使うことになります

他にも、GUI環境を利用する方法もあるのですが
こちらはまだ実現できていません


chrootで使用する作業については
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1049616225
にも詳しい説明が載っています

テーマ : Linux
ジャンル : コンピュータ

スクリプトを混ぜたサーバー構築実験

前回、Webメールアプリ RoundCube その2
にて、メールサーバー機能がないため、導入が頓挫していましたので

これを機会に、再度ローカルメールサーバーを構築してみました
とはいっても、今回は以前のように暗号化などは行っていません

前回のローカルメールサーバー構築については
POP形式で行いました
そのときのメモがわりに書いたのが
メールサーバー構築(Postfix+Dovecot)
から載っています
カテゴリ Postfix+Dovecot
にいろいろと書き込んでありますので
もしよければ参考にしてみてください

それにしても、ブログでメモしておくと
後々同じようなトラブルが起きたとき対処しやすくなりますので
これからも続けていこうと思います

さて、話がそれましたが
今回は、シェルスクリプトを使ってのセットアップとなります
とはいっても、まだ if や switch などを使った制御ではなく
ただ単にコマンドの羅列程度です

参考にさせていただいたのは、前回のときと同じサイトです
ただし、今回の設定したのは fedora13 32bit
メールサーバー構築(Postfix+Dovecot)
のほうになります

ある程度はスクリプトでできたのですが、
どうしてもコマンドを入力する場面はでてきます
まぁそれは今後の課題ということで、まずは今回の実験結果です

それでは、今回作成したスクリプト
setup_fedora_mail_server.sh
の内容です

途中に cp コマンドがあるように
あらかじめ同ディレクトリ内に
procmail設定ファイルの procmailrc

そして
procmailログローテーション設定ファイルの
procmail
を用意する必要があります
----------------------------------
#!/bin/bash
#yum -y install yum-fastestmirror
#yum -y install nautilus-open-terminal
#/etc/rc.d/init.d/yum-updatesd stop
#yum -y remove yum-updatesd
#yum -y install yum-cron
#chkconfig yum-cron on
yum -y install postfix

#7行めに追記(自FQDN名を指定)
sed -i "77i myhostname = mail.linuxwiki.com" /etc/postfix/main.cf

#88行めに追記(自ドメイン名を指定)
sed -i "85i mydomain = linuxwiki.com" /etc/postfix/main.cf

#102行めに追記(ローカルからのメール送信時の送信元メルアド@以降にドメイン名>を付加)
sed -i '102i myorigin = $mydomain' /etc/postfix/main.cf


#perl-TimeDate のインストール
yum -y install perl-TimeDate

#外部からの受信を許可
sed -i "s/inet_interfaces = localhost/inet_interfaces = all/g" /etc/postfix/main.cf

#167行目、行末へ , $mydomain を追記
#($は特殊記号なのでエスケープが必須になる)
sed -i "167s/\$/, \$mydomain/" /etc/postfix/main.cf

#423行目追記(メールボックスの形式をMaildir 形式へ)
sed -i "423i home_mailbox = Maildir/" /etc/postfix/main.cf

#575行めにメールサーバーソフトの隠蔽を追記
sed -i "575i smtpd_banner = \$myhostname ESMTP unknown" /etc/postfix/main.cf

#最下行へ追記
#SMTP-Auth 設定
echo -e 'smtpd_sasl_auth_enable = yes' >> /etc/postfix/main.cf
echo -e 'smtpd_sasl_local_domain = $myhostname' >> /etc/postfix/main.cf
echo -e 'smtpd_recipient_restrictions =' >> /etc/postfix/main.cf
#行頭に空白がはいっていないと、なぜかエラーになるので注意
echo -e ' permit_mynetworks' >> /etc/postfix/main.cf
echo -e ' permit_sasl_authenticated' >> /etc/postfix/main.cf
echo -e ' reject_unauth_destination' >> /etc/postfix/main.cf


#受信メールサイズ設定
echo -e 'message_size_limit = 20485760' >> /etc/postfix/main.cf

#saslauthd 起動
/etc/rc.d/init.d/saslauthd start

chkconfig saslauthd on

sed -i "s/saslauthd/auxprop/g" /usr/lib/sasl2/smtpd.conf
mkdir -p /etc/skel/Maildir/{new,cur,tmp}
chmod -R 700 /etc/skel/Maildir/

sed -i "453i mailbox_command = /usr/bin/procmail" /etc/postfix/main.cf

## procmail procmailrc に関してはcp コマンドで作成済みファイルをコピー

cp -p procmailrc /etc/
cp -p procmail /etc/logrotate.d/
/etc/rc.d/init.d/sendmail stop
chkconfig sendmail off

#メールサーバー切り替え
#2を選択すること
alternatives --config mta

/etc/rc.d/init.d/postfix start
chkconfig postfix on


#Dovecot の導入
yum -y install dovecot

#設定ファイル変更
sed -i "21i protocols = imap imaps pop3 pop3s" /etc/dovecot.conf
sed -i "226i mail_location = maildir:~/Maildir" /etc/dovecot.conf

/etc/rc.d/init.d/dovecot start
chkconfig dovecot on

-----------------------------------------------------

ここまでで、大抵の設定はできるのですが
メールユーザの設定等は
自力で入力することになります

これはまだ、ログインなどの処理スクリプトをかけないのが原因です
このため、今回はメールユーザをそのまま fedora
パスワード関連に関しては
ローカル メールサーバー構築
を参考に
echo "hebereke" | saslpasswd2 -p -u linuxwiki.com -c fedora
としました

ユーザ登録のスクリプト化については
''簡単なユーザアカウント登録するシェルスクリプト'
とか
Linux処理の自動化 (GUI処理含む)
などを参考に、つくってみようと思います

今回の設定では、暗号化などは行っていません
このため、セキュリティには問題がありますので
実用はこのままではできません

次回は、前回中断してしまった RoundCube の導入を行おうと思います

テーマ : Linux
ジャンル : コンピュータ

sedコマンドの練習(追記偏)

引き続き、sed コマンドの練習です

前回は、sed コマンドを使って
行頭の文字の追記、削除を行いました

今回は、行番号を指定して追記してみます

今回も同様に、前回使ったファイルを使用します

今回は 4行目に credit test という文章を追記します
この行指定ができるようになると、後々設定ファイルをスクリプトで
設定するときに役立つと思います

【 sed 】 文字列の置換,行の削除を行う を参考に
行ってみました

vi エディタで行番号を調べるには
:set number で表示させることができます

このため、あらかじめ追記したいところを事前に調べておけば
次回からスクリプトで設定変更ができたりります

では、今回の実験です

sed -i "4i credit test" sedtest.txt
これで、4行めに追記されます

iの前に指定した文字の行数に書き込めます


また、今回追加した行がいらないと思ったとき
行ごと削除するなら
sed -i '5d' sedtest.txt
で削除することができます

これも同じようなかんじです
d の前に記述した行が削除されます

また、複数の行指定も可能です

sed -i '1,9d' sedtest.txt
で1~9行目が削除できますし

前回の先頭に挿入と組み合わせれば
# でコメントアウトする行を指定することも加納です

sed -i '1,4s/^/# /" sedtest.txt
とすれば、1行めから4行めまでコメントアウトできます

逆に、コメントアウトを解除したいのであるなら
sed -i "1,4s/^#[ ]*//" sedtest.txt
で変更できます

sedを使っての編集
にいろいろなパターンが載っていましたので
これらを使ってスクリプトを作っていこうと思います

テーマ : Linux
ジャンル : コンピュータ

最新記事
検索フォーム
GREEハコニワ攻略サイト
リンク
カテゴリ
月別アーカイブ
フリーエリア
最新記事
FXプライムレート
最新コメント
最新トラックバック