やりたい事とか ・RAID ・LPIC-201 ・自転車を買う(買っちゃった~) ・サイト作成

2009年7月31日金曜日

Ubuntu * CentOS 二回戦め

二回戦目。。。
一回戦目の記事はありませんが、インストールに失敗しました。


今回はめげずに挑戦姿態と思います。

環境:CentOS5.2
参考URL:http://tach.arege.net/trac/wiki/TracInstall

簡素にいきましょう。簡素に。


1.tracを入手
ー>http://www.i-act.co.jp/project/products/products.html
ここのお尻から。



2.必要なものをインストール
・Python, バージョン 2.3 以上。
 →yum install python.i386
  →ver:2.4.3-24.el5_3.6

・ClearSilver, バージョン 0.9.3 以上。
 →http://www.clearsilver.net/downloads/
 →ここからDL。
  →ver:0.10.5
 →tar xf clearsilver-0.10.5.tar.gz
 →cd clearsilver-0.10.5
 →./configure --with-python=/usr/bin/python
  →gccが必要:configure: error: no acceptable C compiler found in $PATH
 →make
  →pyhton-develが必要:neo_cgi.c:12:20: error: Python.h: そのようなファイルやディレクトリはありません
  →zlib-develが必要:/usr/bin/ld: cannot find -lz
 →make install

・PostgreSQL
 → yum install postgresql
 → yum install postgresql-server

・pyPgSQL
 → postgresqlをいれた人はこれが必要
 → http://sourceforge.net/projects/pypgsql/files/
 → ここからDL
  → ver:2.5.1
 → tar xf pyPgSQL-2.5.1.tar.gz
 → cd pyPgSQL-2.5.1
 → python setup.py build
  →python-develが必要:libpqmodule.c:78:20: error: Python.h: そのようなファイルやディレクトリはありません
   →python-develがすでにいれてある場合
    →vi setup.py
    →include_dirs = [os.popen("pg_config --includedir").read().strip()]
    →下記に変更
    →include_dirs = [os.popen("pg_config --includedir").read().strip(),"Pyhton.hのdirパスを書く"]
    →例:include_dirs = [os.popen("pg_config --includedir").read().strip(), "/usr/include/python2.4"]
  →postgresql-develが必要:libpqmodule.h:29:22: error: libpq-fe.h: そのようなファイルやディレクトリはありません
 →python setup.py install
 
・Subversion, バージョン 1.0 以降(1.2.3 もしくは 1.3.1以降推奨) と 対応する Python bindings
 →yum install subversion

・Apache と mod_python 3.1.3+ (see TracModPython)
 →yum install httpd.
 →yum install mod_python

---ここまで問題なし--

3.PostgresSQLの設定
 →useradd postgres 
 →passwd postgres
 →service postgres start
 →su postgres
 →createuser trac
 →createdb postgres -O trac -E UTF-8 trac_demo
 →exit
 

4.svnの作成
 → ※mkdir -p /home/projects/demo2/trac
 → mkdir -p /home/projects/demo/repository
 → svnadmin create /home/projects/demo/repository/svn
 → chown -R apache:apache /home/projects/demo2/repository
 →

4.Tracをインストール
 →unzip Trac-0.11.5.ja1.zip
 →cd Trac-0.11.5.ja1
 →python setup.py install
  →下記の処理が必要:ImportError: No module named setuptools
   →wget http://pypi.python.org/packages/2.4/s/setuptools/setuptools-0.6c9-py2.4.egg
   →sh setuptools-0.6c9-py2.4.egg


5.プロジェクト環境を作成
 →mkdir /home/projects #プロジェクトに関するファイルを格納する場所を作成
 →trac-admin /home/projects initenv
  →Project Name [My Project]> demo #プロジェクト名
  →Database connection string [sqlite:db/trac.db]> postgres://trac:password@/trac_ve
  →Repository type [svn]> svn
  →Path to repository [/path/to/repos]> /home/projects/demo/repository/svn/


6.httpdの設定

6.仕上げ
 →/sbin/chkconfig httpd on
 →/sbin/service httpd start
 →

 

2009年7月30日木曜日

Trac * Ubuntu

そうだ・・・
君しかいない・・・


環境:Ubuntu8.10

$ sudo apt-get install trac-ja-resource
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。

単純な操作を行っただけなので、このパッケージは単にインストールできない
可能性が高いです。そのため、このパッケージへのバグレポートを送ってくだ
さい。
以下の情報がこの問題を解決するために役立つかもしれません:

以下のパッケージには満たせない依存関係があります:
trac-ja-resource: 依存: trac (< 0.10.5) しかし、0.11-2 はインストールされようとしています
E: 壊れたパッケージ


バグ・・・

2009年7月29日水曜日

C言語を開始

C言語開始。



環境:CentOS5.3







1.gccをインストール
※書いたプログラムを元に、動くものを作成してくれるもの。
yum install gcc #rootユーザで。







2.プログラムをかく。
vi hoge.c


中身はこんな感じ。
ーーーー
#include

int main(int argc, char **argv)
{
printf("kokko\n");
return 0;
}

ーーーー

保存して終了。








3.動くものを作ってもらう。
gcc hoge.c








4.できたa.outを実行してみる


kokko


がでてきた?

tcpdump

ソフトウェア業界
未来はどうなるのでしょうか。
最近、linuxさんと(一方的に)お友達になれた気がするので、
そういう関連で生きていきたいと。



それはさておき、今回はtcpdumpの使いかたをマスターしたいと思います。
#毎度の事ながら簡単に。
環境:CentOS5.3 tcpdump version 3.9.4
参考サイト:http://www.unix-vm.com/command3_46.html
参考サイト:http://thinkit.jp/article/730/1/




IPアドレス指定
tcpdump dst IPアドレスに向かって送られたパケットのみ表示
tcpdump src IPアドレスから送られたパケットのみ表示
tcpdump host IPアドレスに向かって送られた、またはIPアドレスから送られたパケットを表示
例:tcpdump dst 192.168.1.1
192.168.1.1に向かって送られたパケットを表示


MACアドレス指定
tcpdump ether dst MACアドレスに向かって送られたパケットのみ表示
tcpdump ether src MACアドレスから送られたパケットのみ表示
tcpdump ether host MACアドレスに向かって送られた、またはMACアドレスから送られたパケットを表示
例:tcpdump ether dst "FF:FF:FF:FF:FF:FF"
"FF:FF:FF:FF:FF:FF"に向かって送られたパケットを表示



ポートを指定
tcpdump port <ポート番号> ポート番号を出入りするパケットを表示
tcpdump dst port <ポート番号> ポート番号に入ってくるパケットを表示
tcpdump src port <ポート番号> ポート番号から出ていくパケットを表示




インターフェイスを指定
tcpdump -i eth0



アドレスを文字列に変換しない
tcpdump -n
例:
-nなし
hogehoge.hoge.jp

-nあり(Xは数字)
XX.XX.XX.XX

-nありの方が早く表示される
#名前解決を行っていないからだと推測している。





パケットの内容も表示する(16進数)
tcpdump -x
※通常表示されているのはヘッダの情報だけ。
-x等、パケットの内容を表示させる引数を付けることで、初めて中身が表示される





パケットの内容を表示する(ASCII文字と16進数)
tcpdump -X
※完璧には表示されない







一定の数のパケットをキャプチャしたら終了する
tcpdump -c 数






tcpdump -v(vv) -n
vの多さに応じた詳細な情報が出力される

lsのソースを読もう

lsのソースを読む
何か得れればそれでヨシ!!!!。



・noop…なにも意味しない


・initialize_main (&argc, &argv);

→いったい何者なんだい?君は?
→system.hにはこう書かれている

→Redirection and wildcarding when done by the utility itself. Generally a noop, but used in particular for native VMS

→日本語訳:リダイレクションとユーティリティそのものでされるときワイルドカード化する
こと。通常であれば無視されるが、特定のVMS上でネイティブに使用される

→つるつる脳的理解:VMS上の場合、何か意味を持つ動作を行うが、通常であればなにもしないよ。VMS環境でも、通常環境でも、この関数を使うことで同じ動作をするよ。という意味が近そう。賢人!!! 正解ですか!!?


・static int const sig[] = { SIGHUP, SIGINT, SIGPIPE,
SIGQUIT, SIGTERM, SIGTSTP };
enum { nsigs = sizeof sig / sizeof sig[0] };
→c言語で配列の要素数を取得できる



・setlocale (LC_ALL, "");
→国や地域の文化によって異なる言語や単位、表記などを設定する。
→たとえば日付表示やお金の単位、メッセージ等を決めたりだとか。


・atexit (close_stdout);
→プログラムが正常終了した時に呼び出す関数を登録する

・getopt_long
→コマンドラインを解釈する

・途中

Linuxコマンドのソースファイルの入手の仕方。

Linuxコマンドのソースファイルの入手の仕方。
以前は素晴らしいソースコードダウンロードサービスを利用していましたが、
HDDはふっ飛んで使えなくなってしまったので、

どのようにして、Linuxコマンドのソースファイルを入手するかの手順を調べてみました。
簡素にいきましょう。

環境:CentOS5.3・・・とにかくrpmコマンドが使用できる環境であることが前提なんだな。

今回はlsコマンドのソースを入手してみたいと思います。





1.まず、コマンドのパスを取得します。
$ which ls
alias ls='ls --color=tty'
/bin/ls

ここからlsのパスは「/bin/ls」であることがわかります。




2.rpmコマンドで、どのrpmにそのコマンドのソースが含まれているのかを検索します。
$ rpm -qf /bin/ls
coreutils-5.97-19.el5

coreutils-5.97-19.el5.rpmにlsのソースが含まれていることがわかりました。






3.CentOSのサイトから、rpmをダウンロードします。
http://centos.org/

Downloads

CentOS-5 ISOs

Mirror List

適当箇所のHTTPを選択

5.3を選択

osを選択

SRPMSを選択     ←要はここに行きたい。http://linux.mirrors.es.net/centos/5.3/os/SRPMS/

coreutils-5.97-19.el5.src.rpmを選択・保存





4.適当なディレクトリを用意し、その中にrpmを移動させる
$ mkdir coreutils_src
$ mv coreutils-5.97-19.el5.src.rpm ./coreutils_src







5.作成したディレクトリに入り、rpmを展開する
$ cd coreutils_src
$ rpm2cpio coreutils-5.97-19.el5.src.rpm | cpio -id








6.展開して出てきた coreutils-5.97.tar.bz2 を解凍する
$ tar jxf coreutils-5.97.tar.bz2








7.解凍してできたディレクトリに入り、ソースのあるディレクトリまで移動。
$ cd coreutils-5.97
$ ls
ABOUT-NLS COPYING GNUmakefile Makefile.am Makefile.in NEWS THANKS THANKStt.in aclocal.m4 build-aux configure doc m4 old src
AUTHORS ChangeLog INSTALL Makefile.cfg Makefile.maint README THANKS-to-translators TODO announce-gen config.hin configure.ac lib man po tests
$ cd src/
$ ls
Makefile.am chown.c csplit.c dirname.c fmt.c join.c ls.c nl.c ptx.c sha1sum.c sync.c true.c wc.c
Makefile.in chroot.c cut.c du.c fold.c kill.c ls.h nohup.c pwd.c shred.c system.h tsort.c wheel-gen.pl
basename.c cksum.c date.c echo.c fs.h lbracket.c md5.c od.c readlink.c sleep.c tac-pipe.c tty.c wheel-size.h
cat.c comm.c dcgen env.c groups.sh link.c md5sum.c paste.c remove.c sort.c tac.c uname.c wheel.h
checksum.h copy.c dd.c expand.c head.c ln.c mkdir.c pathchk.c remove.h split.c tail.c unexpand.c who.c
chgrp.c copy.h df.c expr.c hostid.c logname.c mkfifo.c pinky.c rm.c stat.c tee.c uniq.c whoami.c
chmod.c cp-hash.c dircolors.c extract-magic hostname.c ls-dir.c mknod.c pr.c rmdir.c stty.c test.c unlink.c yes.c
chown-core.c cp-hash.h dircolors.h factor.c id.c ls-ls.c mv.c printenv.c seq.c su.c touch.c uptime.c
chown-core.h cp.c dircolors.hin false.c install.c ls-vdir.c nice.c printf.c setuidgid.c sum.c tr.c users.c









8.お目当てのlsのソースファイルはls.cなのでどうぞご自由に。







感想:
思ったより手順を踏んだ。残念。
Win環境だけでできたら、利便性があがるかなぁ。。。






追記:
rpmを落としてきたら、これで解凍
http://claybird.sakura.ne.jp/garage/lhaforge/
あとは、Lhaplusでも解凍できると。

2009年7月28日火曜日

そのポートをあけているのは誰だ。Linux編

今回も簡素に。

環境:CentOS5.3


スーパユーザになって、

netstat -pan


pはプログラム
aはall
nは名前解決をせずに表示でよかったはず。

そのポートをあけているのは誰だ。Windows編

今回はWindowsでポートをあけているプロセスを調べる方法を勉強します。
いつもの環境と参考URLから。

環境:WindowsXP Pro SP3
参考URL:http://www.atmarkit.co.jp/fwin2k/win2ktips/236portcheck/portcheck.html


#だらだら書いていたら分かりにくくなったので、今回は簡素に。




コマンドプロンプトで下記を入力

netstat -ano

「0.0.0.0:ポート」 のstatusが「LISTENING」になっているPIDを記録。






そして、
コマンドプロンプトで

tasklist

と打つと、PIDが表示されるので、何exeがポートをあけているか一目瞭然。









ただ、最近のウイルスもかしこいので、
常時ポートなんか開けてないんだって。


そりゃそうだわな。

slax cannot open dev/console

slaxでエラー発生。
linuxrc: line 285: cannot open dev/console:


同じ現象になっている人がいた。
http://www.slax.org/forum.php?action=view&parentID=39991


解決策は
slaxを走らせる画面の時に

「Slax Always Fresh」

を選択するといいよ。



確かに解決。
近年まれにみるスピード。


原因はファイルシステムのエラーが原因で、ファイルシステムを書き込み・読み込みマウントするときに、マウントが拒否されたため、カッとなり読み込み専用でマウントした事みたい。

FW ファイアウォール 2

第二かいです。
FW。

今回は得点力について〜略


さて、
今回の環境: CentOS5.3 iptables v1.3.5 CUI環境 rootユーザ ネットワーク越しの操作はしないように。
参考URL:http://penguin.nakayosi.jp/linux/iptables.html







さて現在の設定ですが
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp spt:http
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT udp -- anywhere anywhere udp spt:domain

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#






こんな感じなっております。


さて、なにをしましょうか。
指定したアドレス以外は通信できなくします。




別端末から、pingを送信してみます。
#別端末がないかたごめんなさい。
#たとえば、windowsならアクセサリからコマンドプロンプトを実行して
#ping この端末ってやるとできるよ。

ping cc.cc.cc.cc


しーん。



ではcc.cc.cc.ccからのpingを受け付けてみます。
[root@localhost etc]# iptables -A INPUT -s cc.cc.cc.cc -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp spt:http
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT udp -- anywhere anywhere udp spt:domain
ACCEPT all -- cc.cc.cc.cc anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#




では、別端末からpingを打ってみましょう。








おいお前
なに?





ちゃんと疎通ができてます。






ではせっかくここまでやったんですから、
saveしておきましょう。




[root@localhost etc]# iptables-save
# Generated by iptables-save v1.3.5 on Mon Jul 27 18:08:03 2009
*filter
:INPUT DROP [600:168598]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [6471:1012073]
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
-A INPUT -p udp -m udp --dport 53 -j ACCEPT
-A INPUT -p udp -m udp --sport 53 -j ACCEPT
-A INPUT -s 10.156.0.10 -p tcp -j ACCEPT
-A INPUT -s 10.156.0.10 -j ACCEPT
COMMIT
# Completed on Mon Jul 27 18:08:03 2009
[root@localhost etc]#











あら簡単だこと。

2009年7月27日月曜日

FW ファイアウォール

耐火壁を作ります。

環境:煉瓦・ナマコン
参考人:ガソリンスタンドの施行技術者


スルーして

ファイアウォールの設定をお勉強。

環境:CentOS5.3 iptables v1.3.5 CUI環境 rootユーザ ネットワーク越しの操作はしないように。

今回の参考URL:http://penguin.nakayosi.jp/linux/iptables.html

手短に習得したい人はこのページを見ることをお薦めしません。

では現在のテーブルの状態を確認
[root@localhost etc]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt sou



おもな見方。
[root@localhost etc]# iptables -L  <ー -L・・・全てのルールを表示
Chain INPUT (policy ACCEPT) <- PCに入ってくるパケットのルール。policyはACCEPTになっているので、基本は許可しますという意味。
target prot opt source destination
ここの行にルールが表示される

Chain FORWARD (policy ACCEPT) <-PCが転送するパケットのルール。全ての転送を許可する
target prot opt source destination

Chain OUTPUT (policy ACCEPT) <-PCから出ていくパケットのルール。全て許可する
target prot opt sou







この設定では皆々welcomeです。
人としては、世渡り上手かもしれませんが、PC的には問題ありです。
ともあれ、操作を学ばないと何も始まりませんので少しずつ学んでいきます。



まず、今のiptablesの設定では全てを許可しまくりんぐなので、テストをしてみます。

ping localhost
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=1.47 ms

自分自身にpingを打ってみると、返事が帰ってきました。
オレ返事しろ。
なんだよ。オレ。
オレ返事しろ。
なんだよ。オレ。
オレ返事しろ。
なんだよ。オレ。
オレ返事しろ。
なんだよ。オレ。
オレ返事しろ。
なんだよ。オレ。


まさにこんな感じ。
そんなことはどうでもいいので。

では、入ってくるパケットをDROPしてみましょう。
iptables -P INPUT DROP

-P -> ターゲットの設定。設定するで問題ないかと。
DROP -> 落とす。破棄。


では、iptables -Lで変更を確認
[root@localhost etc]# iptables -P INPUT DROP
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#


では確認できたので、もっかいpingで疎通を確認。
[root@localhost etc]# ping localhost
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.


オレ返事しろ。
オレ宛になんかパケット来たけど無視無視。



このくらいいろんなことを無視できたら、きっと世の中楽に生きれるのかもしれません。
そんなことはどうでもいいです。


pingの応答がありません。
入ってくるパケットが破棄されているので、ping対して応答しないようになりました。


でもこれでは、何もできません。
孤立してしまいます。
無視しても孤立してくだけです。そんなさみしい生き方はしたくありません。
そんなことはどうだっていいわけありませんが、先にいきましょう。


元に戻すには、
iptabes -P INPUT ACCEPT
で戻せます。



これでは、元通りです。
利便性とセキュリティを両立するのは難しいです。




では、とりあえず、PINGのパケットだけINUPUTを許可みましょう。
手始めに、INPUTパケットを全てDROPします。
[root@localhost etc]# iptables -P INPUT DROP
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#


次に、pingだけ許可してみます。



[root@localhost etc]# iptables -A INPUT -p icmp -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#


iptables -A INPUT -p icmp -j ACCEPT
-A->append。ルールの追加
-p->protcol。プロトコルの種類。指定できるのはtcp udp icmp all
ーj->jump。パターンにマッチした時の処理。今回は許可する


ではではpingを打ってみます。



[root@localhost etc]# ping localhost
PING localhost.localdomain (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=1 ttl=64 time=3.63 ms
64 bytes from localhost.localdomain (127.0.0.1): icmp_seq=2 ttl=64 time=2.70 ms

--- localhost.localdomain ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 2.705/3.168/3.631/0.463 ms
[root@localhost etc]#




バッチリですな。おほほほほ。




では、こんなめんどくさいルールなんて消えてしまえ!!!!って方は。





iptabels -F
-F->flush。ルールの内容を全削除。


[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT icmp -- anywhere anywhere

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]# iptables -F //消えてしまえ!!!!!!!!!
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#


ルールは消えましたが、ベースの設定、
つまりINPUTのDROPはなんの変更もありません。注意が必要です。






ではでは、
次はポート指定で空けてみましょう。
なにをしましょうか。webでもいきますか。



現在の設定は
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#




これではネットが見れません。
ネットが見れるように、80番ポートを開けましょう。
[root@localhost etc]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#


iptables -A INPUT -p tcp --dport 80 -j ACCEPT
-p->プロトコル指定。
--dport->-pと併せて使用しなければならない上、ーp tcp と ーp -udp でしか指定できない
これでポートを指定する。これは受け取るポートを指定しています。つまり、80番ポートに対して通信していきたものを指定していることになります。






ではwebを見てみる。






見れない。






名前解決をしているっぽい。
DNSとの通信用のポートも開けましょう。
[root@localhost etc]# iptables -A INPUT -p udp --dport 53 -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT udp -- anywhere anywhere udp dpt:domain

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination
[root@localhost etc]#






もっかい挑戦。














しーん・・・・・・・・・・・・・・・・・・・・
しくしく・・・・・・・・・・・・・・・・・・・









なんででしょうね。
ってところでネットをかけづりまわると、
どうやら、送信されたポートのルールも必要見たい。




つまるところ、
DNSのプロトコルが送信されたポートと
HTTPのプロトコルが送信されたポートのルールが必要

もっかい設定。


[root@localhost etc]# iptables -A INPUT -p tcp --sport 80 -j ACCEPT
[root@localhost etc]# iptables -A INPUT -p udp --sport 53 -j ACCEPT
[root@localhost etc]# iptables -L
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp spt:http
ACCEPT udp -- anywhere anywhere udp dpt:domain
ACCEPT udp -- anywhere anywhere udp spt:domain

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

[root@localhost etc]#



--sport->送信元ポートの指定。





さて、もっかいwebを見てみましょう。
どうです?
快適に接続できましたか?



今回はとりあえずこのくらいに



人のソースから何かを得る

まずはいろんな事の吸収から始めよう。
細かいことは気にせずに。だらだら書き〜。

・context->文脈

・module->省略する場合、mod。modは変数であったり関数の頭につける。

・syntax->構造体

・config syntax->構造体

・一度しか使用しない文字列はそのままかく。

・infinite->無限

・init->コンストラクタ。constructor。初期化。

・must be freed with 関数名 when not needed any longer->不要になったら関数名でfreeするように。

・parse->解析する

・関数と関数の間は2行

・destructor->廃物焼却炉。一般にリソースの解放を行う。省略はdtor。だけど、ここではendを使用している。
init<ー>end


・authenticate->本物であることを確認する

・TRUE, or FALSE if authentication failed
 →戻り値の説明はfalseの場合だけ書いてある。
TRUE if hoge is update, or FALSE
 →そうでもない。

・lookup->検査

・validator->検証ソフト。検証するみたい。

・initの関数の下にend関数を書く。

・変更しない引数はconstがかかれている

・プログラムの引数だった変数には_argがついてる。

・一時ファイルは一時ファイルで作成。
 →一時ファイルを作成してくれる関数があるので、それに頼む

・function prototypes
 →関数の宣言?

・the returned string is owned by library, so must not be modified or freed
 →ライブラリで管理しているのでfreeすんなよ。

・ライブラリの関数は、mod_ライブラリの略_関数名に統一されている

・日付の変数名
 →y,m,d

・description
 →説明書

・force
 →強制的に

・certificate
 →証明書

・cleanup
 →掃除

・extract
 →圧縮ファイルを解凍

・setup
 →準備
 →初期化とは違うんだな。

・落としたファイルはチェックサムで確認

・execute
 →実行

・関数名では単語は省略しない

・変数は省略する

・terminate normally
 →異常な終了をしたよ。

・current
 →自分。自分の動作環境

・allocates
 →用意する。配置する

・initとallocatesの場合new

・like なんとか
 なんとかのようなもの。

・comparison function
 →比較関数

・new<->free

・info
 →情報。

・from_info
 →infoから情報を取得

・まとめ
 →一つの関数がとても短く、またその関数名がとても簡単。
  →中一でも分かるような関数名もある。
 →言い回しは固定的に。
 →コメントを書かなくても分かる程度の簡素な関数。
  →関数の説明で足りるような感じにしたい。
 →長い関数でも、やっていることが簡単な事。
  →機能分散がうまい。
  →自分のは機能をまだ詰め込み杉だと思う。
 

Re:直近で何かやりたいこととか

・PHP・Pythonで何か作る。
 →小さめののPC(かわいいやつがいいな。)にDBと連携してできる何か。
 →アバウトだな。

・FWの設定(CUIで)

・QRコード

・その前に映像作成があるのをわすれないで。

・そのポートをあけているのは誰?

・linuxコマンドのソース読書大会(1人で。さみしいな)。

・echoサーバ。
 →これを発展させてなにか。
 →アバウトだな。

・技術展に潜入

とかとか。



・あとタグ画像管理。

直近でなにかやり濃いこ

メモ書き

eclipseのインストール

eclipseをダウンロード & 展開
tar xf hogehoge.tar.gz
JDK落として(rpm.binではなく、binの方を選択して) & chmod +x & 展開。
chmod +x hogehoge.bin
./hogehoge.bin
展開したフォルダごと、eclipseのフォルダに移動
mv hogehoge eclipse
移動したJDKのフォルダをjreにリネーム
cd eclipse
mv hogehoge jre
./eclise で試しに起動してみる
日本語化する。
http://d.hatena.ne.jp/torutk/20081024/p1

USBにLinuxを入れよう

USBにLinuxを入れよう。




と作業を進めるも、なすこと、やることうまくいかず…。
最近、誰かが私の行く手を阻む…。





一応今回うまくいった(いきそうな)方法を3件紹介。
・FedoraをUSBに入れる
・UbuntuをUSBに入れる
・slaxをUSBに入れる








・まずはFedora
参考URL:http://happipop.blog90.fc2.com/blog-entry-452.html
参考URL:http://www.ivoryworks.com/blog/2009/07/live-usb-fedora-11.php #作成手順はこっち側が圧倒的に分かりやすい。
リンク先が潰れてたら方法をお伝えできないので、こちらでも書いておきます。

環境:作成環境WindowsXP 用意したUSBは2G Fedoraのバージョンは11・10
1.https://fedorahosted.org/liveusb-creator/からliveusb-creator-[バージョン].zipをダウンロード。#今回は3.7.1でした
2.解答。中のliveusb-creator.exeを実行。
3.ターゲットデバイスの部分で、USBを選択
4.DownloadFedoraでインストールしたいバージョンを選択
 →DownloadFedoraの場合、ネットワーク上のisoをexeがダウンロードしてくる感じになります。
 →すでにダウンロードしてあるisoイメージを使用したい場合、Use exiting Live CDからisoを選択できます。
5.Create Live USBボタンを押す。
6.待つ
7.完了。

簡単。3つの方法で一番簡単でした。
時間も最短。
ただ、ThinkPadでは動作しませんでした。eeepcだと動作したんだけどなぁ…。






2.UbuntuをUSBに入れる。
参考URL:http://yumenohako.jp/cgi-bin/ubuntu/wiki.cgi

環境:作成環境はCDbootできる端末。インストールしたUbuntuは8。用意したUSBは8G推奨。2Gだとサイズオオーバーでした。
手順は参考URLを見てね。こっちを見たほうがわかりやすい。

時間は結構かかりました。
Ubuntuを普通にインストールする時間ぐらいはかかります。





3.slaxをUSBに入れる
参考URL:http://hexitaka.exblog.jp/3894252/

環境:作成環境はWindowsXP インストールするUSBはslax6.1.1 用意したUSBは2G syslinuxなるもの3.81
参考URLより抜粋してお伝えします。

1.slaxのISOイメージをダウンロード URL→http://hatochan.dyndns.org/slax-ja/index.php?slax-ja/download
2.syslinuxもダウンロード URL->http://www.kernel.org/pub/linux/utils/boot/syslinux/
→.zipで問題ないです。
→HP Drive Key Boot Utilityをダウンロードしてインストール。
 URL->http://h50146.www5.hp.com/products/software/oe/linux/mainstream/support/doc/option/usb/usb-key.html

4.HP Drive Key Boot Utilityを起動し、以下の手順を実行
→「ドライブの検出」USBメモリのドライブレターを指定
→「新規作成または、既存の設定の入れ替え」にチェック
→「新しいファイルシステムを作成」にチェック
→「パーティション有」にチェック
→「HPファームウェアフラッシュパッケージ」にチェック

5.ダウンロードしたslaxのISOイメージをDaemonTools等でマウント
 →DaemonTools →http://www.daemon-tools.cc/jpn/downloads
  →インストールすると、タスクバーに稲妻のアイコンがでるので、右クリック
  →仮想CD/DVD-ROM→デバイス0→イメージマウント
  →ISOイメージを選択
  →マイコンピュータで仮想的にイメージがみえるんだなこれ。
 →わかんなければ、ISOイメージをCD-Rに焼けばよい。

6.マウントしたCDなり、仮想CDからフォルダ・ファイルすべてをUSBメモリにコピーします。

7.コピーしたフォルダ内にbootというフォルダあるので、その中のdosと書かれたフォルダ以外をUSBメモリのルート(トップ)にコピーしておきます。
 →GドライブががUSBならG:\にコピーだ。
 →コピーだよ。移動したら動作しないよ。

8.syslinuxを解凍し、DOSプロンプトを開いて以下のコマンドを入力します。
 →メニュー→アクセサリ→コマンドプロンプト

> cd syslinuxのあるパス\win32\
> syslinux USBメモリのドライブレター



あとは、USBbootをすれば、動作するはず。
ThinkPadでも動作した。


追記:slaxで「linuxrc: line 285: cannot open dev/console:」のエラーが発生したら、
boot画面で「Slax Always Fresh」を選択すると起動できます。

2009年7月22日水曜日

Webサーバ

Webサーバ

環境
・CentOS5.3:CUI環境
・httpd.i386 2.2.3-22.el5.centos.2

こっちのほうが、参考になりそうです。でもこっちはこっちで進めます。
http://www.atmarkit.co.jp/flinux/index/indexfiles/apacheindex.html



まずは必要な環境をインストール
yum groupinstall "Web サーバー"


しかし、
予想以上にいろんなものが入るので、インストールを止める。
普通にアパッチだけいれましょう。そうしましょう。
yum install httpd
#こうじゃないかもしれない。


今回入ったのが
httpd.i386 2.2.3-22.el5.centos.2です。





ファイアウォールに穴を開ける。
system-config-securitylevel-tui
→カスタマイズ→HTTPとHTTPSを選択→OK
#いちおうHTTPSもついでに穴開けしておきましたが、使うかどうかは別にしてと。




httpdを自動起動させる。
[root@localhost init.d]# /sbin/chkconfig --list httpd
httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost init.d]# /sbin/chkconfig httpd on ← httpdを自動起動。
[root@localhost init.d]# /sbin/chkconfig --list httpd
httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost init.d]#



httpdの起動。
[root@localhost init.d]# ./httpd start
httpd を起動中: [ OK ]
[root@localhost init.d]#





ではでは。ブラウザのアドレスバーに下記を入力。
http://マシンのIPアドレス



キタコレしました?
実際どうなるかといいますと、
「Apache 2 Test Page powered by CentOS」
という画面が表示されます。
アパッチで動いとるよ。というページです。







ではでは。次はいよいよ、HTMLページの表示に。
まずは設定ファイルの変更からです。
cd /etc/httpd/conf
vi httpd.conf


まず確認すべきは下記の二つです。
DocumentRoot "/var/www/html"
→実際のHTMLファイルを置く場所。

DirectoryIndex index.html index.html.var
→アクセスがあったときに一番最初に見せるHTMLファイル(TOPページ)

ふ〜ん。
ではでは、確認したところで
手を動かしてみましょ。
cd /var/www/html
vi index.html

下記を記述。#HTMLは適当に用意したものなのであしからず。
#<を<に変換してね。
ーーーー
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>test
</head>
<body link="#555555" alink="#555555" vlink="#555555" bg style="color:#ffffff;">
<center>
<basefont style="font-size:85%;">
<br />
Hello, world!
<br />
</center>
</body>
</html>
ーーーー

保存して終了。
もっかい、ブラウザからhttp://マシンのIPアドレスをアドレスバーにぶち込んでみましょ。
だだっぴろい中にHello, world! さんがでましたか?
でましたか。正解。






次にやりたくなることってなんでしょうかねぇ。
認証とかですか?
一気にレベルがあがる感がありますがどうなのでしょうか?
挑戦です。なんせ私はいま暇なんですから。
#転職したいっす。

ここからの参考ページ。ほとんど下記の手順をやっていく感じで。
http://www.atmarkit.co.jp/flinux/rensai/apache10/apache10a.html


とりあえず、認証方式は
ベーシック認証(アカウントを平文でやりとり。小規模一般)
ダイジェスト認証(だれも使ってない認証)
データベース認証(ベーシック認証をテキストで管理ではなく、DBで管理)
みたいな感じです。





だったらとりあえずはベーシック認証で決まりです。
まずはパスワードファイルを作成
htpasswd -c /usr/local/apache/.htpasswd 最初のユーザ名
New password:
Re-type new password:

パスワードファイルの権限を変更
chmod 644 /usr/local/apache/.htpasswd


二人目を追加する場合は、-cを付けないこと。
htpasswd /usr/local/apache/.htpasswd 二人目のユーザ名




ではでは、httpd.confの設定になります。
ファイルのおけつに下記を追記します。
<directory>
AuthUserFile /usr/local/apache/.htpasswd
AuthGroupFile /dev/null
AuthName "Please Enter Your Password"
AuthType Basic
Require valid-user
</directory>
変態ディレクトリです。いかにもパスワード制限が必要そうです。


表示するものの準備
mkdir /var/www/html/hentai
cp /var/www/html/index.html /var/www/html/hentai/
vi /var/www/html/hentai/index.html
Hello, world!

Hello, Prison!
に変更。
変態ディレクトリにアクセスしたのですから、刑務所にこんにちわです。


メインページの変更
vi /var/www/html/index.html
bodyの部分に下記の一行を追加。
<a href="./hentai/index.html">Hentai


では、httpdを再起動です。
/sbin/service httpd restart



ではでは、ブラウザから
http://マシンのIPで確認。
うまくいきました?



ちなみに、失敗した場合は、/var/log/httpd/error.logに記載されます。
作成していないhogeユーザでログインを試み失敗したときのログ。
[error] [client XXXXXX] user hoge not found: /he
ntai/index.html, referer: http://XXXXXX/






ではではでは。
次はグループでのアクセス管理です。


今は、.htpasswdでユーザごとに管理していますよね?
これをグループで管理するんです。
さっきからおんなじ事言ってる。



聞くより、実行です。
とりあえず、グループとグループのパスワードを追加します。

グループファイル作成
vi /usr/local/apache/.group

中身は適当にこんな感じ
hentai_user:kacho bucho

グループ名:ユーザ名 ユーザ名



で、一応ユーザを作成
htpasswd /usr/local/apache/.htpasswd kacho
htpasswd /usr/local/apache/.htpasswd bucho



vi /etc/httpd/conf/httpd.conf
下記を変更

<Directory "/var/www/html/hentai/">
AuthUserFile /usr/local/apache/.htpasswd
AuthGroupFile /usr/local/apache/.group    ←ここね。
AuthName "Please Enter Your Password"
AuthType Basic
Require group hentai_user ←アクセスを許可するグループを追加。
</Directory>


Requireが肝。
ちょいとひっかかった。
ある限定グループアクセスを認証によるアクセスで許可をしたい場合
Require group グループ名

ある限定ユーザのアクセスだけ認証によるアクセスで許可をしたい場合、
Require user ユーザ名

全員アクセスを認証によって許可したい場合、
Require valid-user

だそうです。



で、httpd再起動
グループに入っていないユーザでアクセスしてみてください。弾かれるはず。
グループに入っているユーザでアクセスしてみると・・・ログインできるはず。

2009年7月17日金曜日

samba構築

今回はサンバを入れてみたいと思います。
samba。

ファイルサーバができます。
環境はCentOS5.3
入れるsambaは3.0.33-3.7.el5_3.1
今回はCUIで


今回の参考URL

・http://www.atmarkit.co.jp/flinux/special/samba_n/samba_na.html


まずはインストールから。
su

yum groupinstall "Windows ファイルサーバー"



サービスを起動
#/sbin/chkconfig --list | grep smb
smb 0:off 1:off 2:off 3:off 4:off 5:off 6:off
#/sbin/chkconfig smb on
#/sbin/chkconfig --list | grep smb
smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off



ファイアウォールの設定 #立ててる人は
system-config-securitylevel-tui
→カスタマイズ→SambaにチュックをつけてOK



設定ファイルの変更
メモ:セミコロンは注釈行。#も同じく

変更
workgroup = MYGROUP

workgroup = WORKGROUP
→これは、マイコンピュータのプロパティのコンピュータ名のワークグループで確認でき

追記
hosts allow = 127. 192.168.1.
→許可するネットワーク。設定しとくが得策


確認
security = user
→認証方式。userだと、ユーザ名とパスワードを聞く認証
→その他の認証
→http://jibun.atmarkit.co.jp/lskill01/rensai/lpicdrill09/lpicdrill01.html


変更
load printers = yes

load printers = no
→共有プリンタの設定


追記
encrypt password = yes
→パスワードを暗号化して送信




sambaを再起動。
service smb restart








windowsのエクスプローラのアドレスの部分に
\\IPアドレス
→\\ を入れ忘れ、10分悩んだ…。

→なんか認証画面が出てきたらひとまず完成。



ではユーザの追加です。
pdbeditを使用します。

# pdbedit -a -u useraddしていないユーザ名
Cannot locate Unix account for sagami

どうやらuseraddしなていないとだめなみたいです。
# pdbedit -a -u useraddしているユーザ名
new password:
retype new password:
云々


パスワードは違うもので問題なさそうです。
ではwindowsからログインしてみましょう。





エクスプローラのアドレスバーに\\ サーバのIPaddress
認証がめんが出てきて云々。


できました。できました。






では、共有フォルダを作成してみましょう。
#ちょっと2時間くらいハマった…

smb.confのおけつに
publicの設定が書いてあるので、とりあえずおけつに移動。

vi smb.conf

こんな感じに変更。
[public]
comment = Public Stuff
path = /home/shares
writable = yes→書き込み許す

保存したら、
mkdir /home/shares
chmod 777 /home/shares

service smb restart

2009年7月16日木曜日

symbol lookup error: undefined symbol:

実行時にダイナミックリンクライブラリがみっかんないって怒られました。

#windowsでいうdllとか
#linuxでいうところのlibだったりだとか


今回のパターンは
glibが複数インストールされていることでした。


パッケージマネージャで2.18はインストールできたのですが、
欲しいのは、2.20


webからglib2.20をダウンロード。
./configure
make
make instlall



./get_event: symbol lookup error: ./get_event: undefined symbol: g_poll
あれ〜…
あれ〜…




よく見ると
/usr/libと/usr/local/libにglibがあるではありませんか。
configureのときにprefixを指定していなかったので、/usr/local/libに入っていたみたい。





仕方ないので、一回アンインストールして、再度prefixを指定してインストール
make uninstall
./configure --prefix=/usr/lib
make
make install


再度挑戦!!!



./get_event: symbol lookup error: ./get_event: undefined symbol: g_poll
あれ〜…
あれ〜…




何だかんだ小一時間…



make installのログを見ると…
if test -f /usr/lib/lib/charset.alias; then \



あれ?
/usr/lib/libになってる…




prefixは/usrでいいのか。。。







再度挑戦
make uninstall
./configure --prefix=/usr
make
make install










やほぉぉぉぉぉぉ!!!!!!!!!!!!!
動作しました。

エクセル覚書

  • 結合セルに斜め線
    • 右クリック→セルの書式→罫線→斜め線
  • 改ページのプレビュー
    • あの1ページ分が青線で区切られてて、あとはグレーアウトのやつ
    • 右下の改ページのプレビューというちっこいアイコンをクリック。
    • 縦や横はページレイアウトの「印刷の向き」でかえるのかも
    • ページレイアウトから印刷向きを設定
    • 表示から改ページのプレビューを選択
    • なにか書き込むとページが表示されていく
    • 一ページ分を選択し、右クリックで印刷範囲の設定をするとじゃじゃーん

powerShellの権限問題

「スクリプトの実行がシステムで無効になっているため、ファイル C:\...\Begin.ps1 を読み込めません。詳細については、「get-Help about_signing」と入力してヘルプを参照してください。。。。。。」
とかやきもき言われたらですよ。
powershellコマンドで
Set-ExecutionPolicy RemoteSigned
ok

ロードアベレージの見方

Linux のロードアベレージは「ロードアベレージは過去1分、5分、15分の間の実行待ちプロセス数の平均数 = 実行したくても他のプロセスが実行中で実行できないプロセスが平均で何個ぐらい存在してるか」を示す値です。
・1以下=サクサク(待っているプロセスがない)
・1~3ぐらい=こんなもん?
・3~5ぐらい=ちょっと重い
・5~10ぐらい=かなり重い
・10以上=重い
・数十以上=何か変なことが起きている!

CENT君のバージョンを調べる


cat /etc/redhat-release

DVDからyum

▼DVDからyumをする(何ソレ!?)
世の中には/etc/yum.repos.d/CentOS-Media.repoというファイルがあるらしい…。 
何かいろいろ書いてあるが、大切なのは下記の三つなそうな…

まずは、こんな風に実行しろ!!! … と書いてある文
{{{
# yum --disablerepo=\* --enablerepo=c4-media [command]
}}}

ここからyumるわよ … という文
{{{
baseurl=file:///media/cdrom/
}}}

ほげほげほげ … という文(下記に似た部分になっていればよい)
{{{
gpgkey=file:///usr/share/doc/centos-release-4/RPM-GPG-KEY-centos4
}}}

問題がなければ、DVDまたはCDをマウントする …

マウント前にディレクトリを作成
mkdir /media/cdrom ← ふたつ目の文書に合わせてある

そしてマウント
mount /dev/dvd /media/cdrom


そしてうまくいったら… 最後に
yum --disablerepo=\* --enablerepo=c4-media [yumコマンド]を実行

例:
yum --disablerepo=\* --enablerepo=c4-media grouplist
 キャー----------ッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッッ!!!!!ッアアア!!!?


grouplistに関する事は

linux サービス一覧


NetworkManager →無線有線自動切り替え
NetworkManagerDispatcher  → 上のサービスの自動保存を行うサービス
acpid  → 電源のONOFFの監視など電源管理を行う・常時起動の場合不要?
anacron  → システムが停止していた時に実行できなかったタスクの自動実行を行う
apmd  → 省電力設定・電源管理・ノートのバッテリー制御
atd  → コマンドの遅延実行の有効化
auditd  → システムコール監査デーモン(SELinuxを使用する場合は必要)
autofs  → ファイルシステムの自動マウント/アンマウント
bluetooth  → ワイヤレス通信
capi  → ISDNの規格のサポート
conman  → コンソールマネージャ
cpuspeed  → システムのアイドル率に応じてCPUの周波数を上下させる。Speedstep関連。対応CPUでないといけない。ノート向け。
crond  → 
cups  → 印刷
dhcdbd  → DHCP D-BUSデーモン(アプリ間でメッセージを送信するシステム)
dund  → BlueZ Bluetooth dial-up networking daemon
firstboot  → 初期システム設定のユーティリティ(インストールの初回設定が終了したら不要)
gpm  → コンソール用のマウスサーバ
haldaemon  → ハードウェア情報収集サービス
hidd  → Bluetooth HID daemon
ibmasm  → IBM Advanced System Management Drivers
ip6tables  → 
iptables  →
irda  → 赤外線通信
irqbalance  → マルチCPU環境でセカンドCPU以降も割り込み処理を行える。シングルコアには不要。
isdn  → ISDN回線の使用
kudzu  → ハードウェア検出ツール
mcstrans  → SELinux Translation Daemon
mdmonitor  → RAID監視サービス
mdmpd  → RAID監視サービス
messagebus  → アプリケーション間でメッセージを行う
microcode_ctl  → ntel IA32 プロセッサのマイクロコードユーティリティ
netfs  → ネットワークファイルシステムのマウントサービス
netplugd  → ネットワークケーブルのホットプラグ管理デーモン。DHCPサーバーなどの動的にノードを管理しているサブネット内で、ネットワークの接続や切断をスムーズに行うためのデーモンです。
network  → 
nfs  → UNIX同士でファイル共有
nfslock  → nfsでファイルロックを行うサービス
nscd  → ネームキャッシュサービス
oddjobd  → A D-BUS service which runs odd jobs on behalf of client applicationsD-BUSデーモン(アプリ間でメッセージを送信するシステム)を使用しなければ不要。
pand  → BlueZ Bluetooth PAN daemon
pcscd  → PC/SC Smart Card Daemon 
portmap  → ポートマップサービス
psacct  → プロセス負荷状況の統計情報出力サービス(プロセスの負荷状況の情報取得の必要がないならば不要)
rdisc  → ネットワークルータディスカバリツール
readahead_early  → 前もってページキャッシュを読み込む(システム起動時やアプリ起動時に必要なプログラムを予め読み込んで置き、起動をスムーズに行う)
readahead_later  → ランレベル5でページキャッシュ内のファイルを前もって読みだす
restorecond  → ファイルやパスに対して適切なラベルを付与するデーモン(SELinux関連)
rpcgssd  → ネットワークファイルシステムのデーモン
rpcidmapd  → ネットワークファイルシステムのデーモン
rpcsvcgssd  → ネットワークファイルシステムのデーモン
saslauthd  → sasl認証デーモン
sendmail  →
smartd  → HDD障害予測サービス
sshd  → 
syslog  → 
wpa_supplicant  → WPAとWPA2をサポート
ypbind  → NISドメインのサーバを探し接続、NIS情報を保持する
yum-updatesd  → yum自動アップデートサービス

キーボードの変更

loadkeys jp106

rpmの簡単な使い方

rpm -qa | grep huga → hugaはインストールしたか
rpm -ql huga | grep hoge  → hugaがインスト―ルした時にhogeファイルはどこにインストールしたか
rpm -ivh huga.rpm huga.rpmをインストール(vhで詳細商事)
rpm -e hoge hogeをアンインストール

postgresにCSVでデータ追加

copy テーブル名 from '/tmp/aaa.csv' using delimiters ','
copy テーブル名 to '/usr/local/aaa.csv' using delimiters ','

postgresにまるっとデータコピー・バックアップ

Psql -U ユーザ名 DB名 < ファイル名
pg_dump -U ユーザ名 DB名 > ファイル名

ブーピー音を消す

setterm -blength 0  悪しきビープー音を消しさる(一時的に…)


半永久的に消し去るには
/etc/inputrcに
set bell-style none
set prefer-visible-bell
を追記

デバイスを使用中のプロセスがわかる

lsof | grep デバイス

dateコマンドで日付変更

date 03211725 時刻合わせ 3月21日17:25:00に合わせています。

2009年7月14日火曜日

linuxのセキュリティ設定

CentOS5.3のセキュリティ設定:GUI使用・desktopを想定。

こちらを参考に進めていきます。
->http://www.atmarkit.co.jp/flinux/rensai/security01/security01a.html

当然だけど、一般ユーザ作っていますよね?
不必要にスーパユーザで操作しないように。。。。
#すべてスーパユーザで操作していた時代があった。
#つい最近まで...

下記の操作はスーパユーザでないと操作できないので、スーパユーザで操作すること。

1.不要なソフトを入れない
→アプリケーション→ソフトウェアの追加と削除
→不要なアプリケーションのチェックボックスを外す
今なにが入っているかというと
GNOME デスクトップ環境
Office/生産性
Web サーバー
X Window System
Yum Utilities
グラフィカルインターネット
サーバー設定ツール
システムツール
ダイヤルアップネットワークサポート
ネットワークサーバー
印刷サポート
管理ツール

実際に選択していれたのは、このふたつなんだけどなぁ・・・
・GNOMEデスクトップ環境
・グラフィカルインターネット

→GUI環境じゃない場合
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/678yumgroup.html


2.パッケージを最新にする
→端末を開いて
→yum upgrade


3.不要なサービスの停止
chkconfigでサービスの起動を管理する
chkconfig --listでサービスが見れます。
気にすべきは3と5.
3…CUI環境で起動
5…GUI環境で起動

サービスの起動させるかどうかは、下記のサイトをみて決めてね。
きめ細かい説明に感謝。
http://kajuhome.com/service_list.shtml
http://www.obenri.com/_minset_cent5/daemon_cent5.html

NetworkManager →無線有線自動切り替え。停止。
acpid →電源のONOFFの監視など電源管理を行う。サーバの場合停止
anacron →システムが停止していた時に実行できなかったタスクの自動実行を行う。停止。
apmd →省電力設定・電源管理・ノートのバッテリー制御。停止。
atd →コマンドの遅延実行の有効化。停止
auditd →システムコール監査デーモン(SELinuxを使用する場合は必要)。停止。(SElinuxは無効にしているので…。あとでどうにかします。)
autofs →ファイルシステムの自動マウント/アンマウント。稼働
avahi-daemon →mDNSを通してネームレゾリューションを提供するデーモン。mDNSとはDNSが存在しないような小さなネットワークで,マルチキャストを使用して名前を発見するプロトコル。停止。
avahi-dnsconfd →mDNS/DNS-SD構成デーモンのユニキャストDNSサーバ。停止。
bluetooth →ワイヤレス通信。停止。
capi →ISDNの規格のサポート。停止。
conman →コンソールマネージャ。多数のコンソールを利用するときに制御を行うデーモン。今回は稼働。
cpuspeed →システムのアイドル率に応じてCPUの周波数を上下させる。Speedstep関連。対応CPUでないといけない。ノート向け。稼働。
crond →稼働。
cups →印刷。停止。
dnsmasq →DHCP D-BUSデーモン(アプリ間でメッセージを送信するシステム)。小規模LANに最適なhostsベースなDNSサーバがDnsmasq。停止。
dund →BlueZ Bluetooth dial-up networking daemon。停止。
firstboot →初期システム設定のユーティリティ(インストールの初回設定が終了したら不要)。停止。
gpm →コンソール用のマウスサーバ。停止。
haldaemon →ハードウェア情報収集サービス。稼働。
hidd →Bluetooth HID daemon。停止。
hplip →HPプリンターと多機能周辺装置用のドライバー。稼働
httpd →停止。
ibmasm →IBM Advanced System Management Drivers。停止。
ip6tables →停止。
iptables →稼働。
irda →赤外線通信。停止。
irqbalance →マルチCPU環境でセカンドCPU以降も割り込み処理を行える。シングルコアには不要。稼働。
isdn →ISDN回線の使用。稼働
kudzu →ハードウェア検出ツール。稼働
lvm2-monitor →LinuxOSに柔軟なディスク管理とバックアップのための有用な仕組みを与える 論理ボリュームマネージャー(LVM) 利用時の障害監視のためのデーモン。停止。
mcstrans →SELinuxの運用をサポート。停止。
mdmonitor →RAID監視サービス。停止。
mdmpd →RAID監視サービス。停止。
messagebus →アプリケーション間でメッセージを行う。稼働。
microcode_ctl → Intel IA32 プロセッサのマイクロコードユーティリティ。稼働。
multipathd →ハードディスクなどの状態を把握し、バックアップや再構築などに利用する "DeviceMapper" とよばれるカーネルの機能を管理するデーモン。稼働?。
netconsole →CentOS5のカーネルが不具合を起こしたとき、ネットワーク接続されたほかのホスト機にダンプ(メインメモリ上のデータ)を保存するためのデーモン。停止。
netfs →ネットワークファイルシステムのマウントサービス。停止。
netplugd →ネットワークケーブルのホットプラグ管理デーモン。DHCPサーバーなどの動的にノードを管理しているサブネット内で、ネットワークの接続や切断をスムーズに行うためのデーモンです。稼働。
network →稼働。
nfs →UNIX同士でファイル共有。停止。
nfslock →nfsでファイルロックを行うサービス。停止。
nscd →ネームキャッシュサービス。ユーザー認証や 名前解決 などの、「名前に関するデータ」をキャッシュするデーモン。停止。
ntpd →時刻同期。稼働。
oddjobd →A D-BUS service which runs odd jobs on behalf of client applicationsD-BUSデーモン(アプリ間でメッセージを送信するシステム)を使用しなければ不要。停止。
pand →BlueZ Bluetooth PAN daemon。停止。
pcscd →PC/SC Smart Card Daemon 停止。
portmap →RPCを使用したプログラムを有効にする場合有効。停止。
psacct →プロセス負荷状況の統計情報出力サービス(プロセスの負荷状況の情報取得の必要がないならば不要)。稼働
rdisc →ネットワークルータディスカバリツール。停止。
readahead_early →前もってページキャッシュを読み込む(システム起動時やアプリ起動時に必要なプログラムを予め読み込んで置き、起動をスムーズに行う)。稼働。
readahead_later →ランレベル5でページキャッシュ内のファイルを前もって読みだす。稼働。
restorecond →ファイルやパスに対して適切なラベルを付与するデーモン(SELinux関連)。停止。
rpcgssd →ネットワークファイルシステムのデーモン。。停止
rpcidmapd →ネットワークファイルシステムのデーモン。停止
rpcsvcgssd →ネットワークファイルシステムのデーモン。停止
saslauthd →sasl認証デーモン。停止
sendmail →。停止
smartd →HDD障害予測サービス。稼働
sshd →稼働
syslog →稼働
vncserver →リモート接続で他のホストから X-Window での操作を可能にする vnc-server のデーモン。停止
wdaemon →ワコム社製のタブレットを自動認識させるためのデーモン。停止
winbind →samba でWindowsOSのファイル共有を行う際に、CentOS5のホスト機をNTドメイン(インターネットで使用される ドメイン名 とは全く異なる、WidnowsOS独自のネットワークユーザー管理システムです。)に参加させるためのデーモン。停止
wpa_supplicant →WPAとWPA2をサポート。停止
xfs →X-Window上で文字を表示するためのフォントサーバーデーモン。稼働
ypbind →NISドメインのサーバを探し接続、NIS情報を保持する。停止
yum-updatesd →yum自動アップデートサービス。稼働

大サービス停止大会
[root@localhost init.d]# chkconfig NetworkManager off
[root@localhost init.d]# chkconfig anacron off
[root@localhost init.d]# chkconfig apmd off
[root@localhost init.d]# chkconfig atd off
[root@localhost init.d]# chkconfig auditd off
[root@localhost init.d]# chkconfig avahi-daemon off
[root@localhost init.d]# chkconfig avahi-dnsconfd off
[root@localhost init.d]# chkconfig bluetooth off
[root@localhost init.d]# chkconfig capi off
[root@localhost init.d]# chkconfig cups off
[root@localhost init.d]# chkconfig dnsmasq off
[root@localhost init.d]# chkconfig dund off
[root@localhost init.d]# chkconfig firstboot off
[root@localhost init.d]# chkconfig gpm off
[root@localhost init.d]# chkconfig hidd off
[root@localhost init.d]# chkconfig ibmasm off
[root@localhost init.d]# chkconfig ip6tables off
[root@localhost init.d]# chkconfig irda off
[root@localhost init.d]# chkconfig isdn off
[root@localhost init.d]# chkconfig lvm2-monitor off
[root@localhost init.d]# chkconfig mcstrans off
[root@localhost init.d]# chkconfig mdmonitor off
[root@localhost init.d]# chkconfig mdmpd off
[root@localhost init.d]# chkconfig netconsole off
[root@localhost init.d]# chkconfig netfs off
[root@localhost init.d]# chkconfig nfs off
[root@localhost init.d]# chkconfig nfslock off
[root@localhost init.d]# chkconfig nscd off
[root@localhost init.d]# chkconfig oddjobd off
[root@localhost init.d]# chkconfig pand off
[root@localhost init.d]# chkconfig pcscd off
[root@localhost init.d]# chkconfig portmap off
[root@localhost init.d]# chkconfig rdisc off
[root@localhost init.d]# chkconfig readahead_early off
[root@localhost init.d]# chkconfig readahead_later off
[root@localhost init.d]# chkconfig restorecond off
[root@localhost init.d]# chkconfig rpcgssd off
[root@localhost init.d]# chkconfig rpcidmapd off
[root@localhost init.d]# chkconfig rpcsvcgssd off
[root@localhost init.d]# chkconfig saslauthd off
[root@localhost init.d]# chkconfig sendmail off
[root@localhost init.d]# chkconfig vncserver off
[root@localhost init.d]# chkconfig wdaemon off
[root@localhost init.d]# chkconfig winbind off
[root@localhost init.d]# chkconfig wpa_supplicant off
[root@localhost init.d]# chkconfig ypbind off


4.スーパユーザになれる人を制限。
今はsuでパスワードを入力するだけでだれでもスーパユーザになれてしまう。
これを防ぐためにスーパユーザになれる人を一部の人にしておこうというわけです。
その一部の人はwheelグループ に入れてしまいます。
wheelグループについて
http://itpro.nikkeibp.co.jp/word/page/10005502/

ではではその設定。
vi /etc/login.def
下記の一行を追加
SU_WHEEL_ONLY yes

次は
vi /etc/group
下記の行を変更
wheel:x:10:root,user
userの部分はsuできるユーザ

次は
vi /etc/pam.d/su
下記の一行を追加
auth required /lib/security/pam_wheel.so use_uid group=wheel

これでおk





5.rootアカウントでリモートログイン不可
一般ユーザでリモートログインしてからスーパユーザになったほうが、セキュリティが強化されるので、そうしましょう。

vi /etc/ssh/sshd_config
#PermitRootLogin yes

PermitRootLogin no

このあとsshdを再起動。
service sshd restart



6.不要なサービスの接続拒否設定。
こうすることで、rsh・rexec・rloginのサービスを立ち上げていても、接続拒否できるらしい。
rsh…http://www.linux.or.jp/JM/html/netkit/man1/rsh.1.html
rexec…http://www.linux.or.jp/JM/html/netkit/man1/rexec.1.html
rlogin…http://www.linux.or.jp/JM/html/netkit/man1/rlogin.1.html

mv rsh .rsh
mv rexec .rexec
mv rlogin .rlogin


7.ファイアウォールの設定
今回はサクッとGUIで。
OSインストールした最初の起動時にFWの設定は聞かれたはずです。
ですので、今回設定しなきゃって人はいないとは思いますが…

GUI
システム→管理→セキュリティレベルとファイアウォールの設定

まずはファイアウォールの設定を有効にして。
あとは信頼するサービスをチェックするだけ。
もはや説明不要ですね。
標準であれば、sshのみで問題ないでしょう。

2009年7月12日日曜日

upgrade

CentOSをyum upgradeしたら
起動が早くなった。




今までが激オソだっただけなんだけどな。

2009年7月11日土曜日

UbuntuでUSBにgrubをinstall

CentOSではうまくいきましたが…


さっそく挑戦です。

fdsik /dev/sdb1

/dev/sdb1 を開けません




Ubuntuはsudo付けて~




$ sudo fdisk /dev/sdb1
デバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも
含んでいません
Building a new DOS disklabel with disk identifier 0x31eb4d59.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって
正常になります


コマンド (m でヘルプ): p

ディスク /dev/sdb1: 128 MB, 128434176 バイト
ヘッド 4, セクタ 62, シリンダ 1011
Units = シリンダ数 of 248 * 512 = 126976 バイト
Disk identifier: 0x31eb4d59

デバイス ブート 始点 終点 ブロック Id システム

コマンド (m でヘルプ):


あれ?
領域が表示されません。なぜでしょう?
領域ができてないってこと?


とりあえず、できてないなら作成しましょう。
#うっている文字はmで確認してね。
#コマンド (m でヘルプ): n
#ここでいうnの事
#nは新しく領域を作成だっ毛穴?

コマンド (m でヘルプ): n
コマンドアクション
e 拡張
p 基本領域 (1-4)
p
領域番号 (1-4):
範囲外の値です。
領域番号 (1-4): q
領域番号 (1-4): q
領域番号 (1-4): 1
最初 シリンダ (1-1011, 初期値 1): 1
Last シリンダ, +シリンダ数 or +size{K,M,G} (1-1011, 初期値 1011): 1011

コマンド (m でヘルプ): p

ディスク /dev/sdb1: 128 MB, 128434176 バイト
ヘッド 4, セクタ 62, シリンダ 1011
Units = シリンダ数 of 248 * 512 = 126976 バイト
Disk identifier: 0xfa1392a8

デバイス ブート 始点 終点 ブロック Id システム
/dev/sdb1p1 1 1011 125333 83 Linux

コマンド (m でヘルプ):


領域完成。
保存して終了。

コマンド (m でヘルプ): w
領域テーブルは交換されました!

ioctl() を呼び出して領域テーブルを再読込みします。

警告: 領域テーブルの再読込みがエラー 22 で失敗しました: Invalid argument。
カーネルはまだ古いテーブルを使っています。
新しいテーブルは次回リブート時に使えるようになるでしょう。
ディスクを同期させます。




ではでは。
$ sudo mkfs -t ext2 /dev/sdb1
mke2fs 1.41.4 (27-Jan-2009)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
31360 inodes, 125424 blocks
6271 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
16 block groups
8192 blocks per group, 8192 fragments per group
1960 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 25 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.




ファイルシステムを乗っけました。
ではでは、grubinstallです。


$ sudo grub-install --root-directory=/mnt /dev/sdb1
Probing devices to guess BIOS drives. This may take a long time.
grub-probe: error: Cannot find a GRUB drive for /dev/sdb1. Check your device.map.

[: 494: =: unexpected operator
The file /mnt/boot/grub/stage1 not read correctly.



う~ん。できたような感じがするんだけど、いまいちなにか違うような気がするなぁ…

USBをつつく

今日からCENTOS


□今回の目標
USBにgrubをインストールする。

環境
CENTOS5.3
USB 128M



まずUSBがどのデバイスなのか確認するところから。
dmesgコマンドで確認する
さかのぼって見てみると、こんな部分がみるかるわけですよ。


sd 0:0:0:0: Attached scsi generic sg0 type 0
Vendor: BUFFALO Model: USB Flash Disk Rev: 4000
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sdb: 250880 512-byte hdwr sectors (128 MB)
sdb: Write Protect is off
sdb: Mode Sense: 43 00 00 00
sdb: assuming drive cache: write through
SCSI device sdb: 250880 512-byte hdwr sectors (128 MB)
sdb: Write Protect is off
sdb: Mode Sense: 43 00 00 00
sdb: assuming drive cache: write through
sdb: sdb1


いっちゃんお尻に、sdb1と書いてあるので、USBのデバイス名は
/devのsdb1ということがわかります。



こやつをマウント。
#最近のOSは自動でマウントされるのでこのコマンドは不要
mount /dev/sdb1 /media



では、今のUSBのファイルシステムを調べましょう。
mount

/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)
/dev/sdb1 on /media type vfat (rw)



/dev/sdb1なんでvfatですね。
#とくにわかってもしょうがないんですが。
fdsik -lでFAT16でフォーマットされていることがわかります。
(割愛)



では本番。



まずは、USBのパーティションをなぎ倒しましょう。
fdisk /dev/sdb1
コマンド (m でヘルプ): m
コマンドの動作
a ブート可能フラグをつける
b bsd ディスクラベルを編集する
c dos 互換フラグをつける
d 領域を削除する
l 既知の領域タイプをリスト表示する
m このメニューを表示する
n 新たに領域を作成する
o 新たに空の DOS 領域テーブルを作成する
p 領域テーブルを表示する
q 変更を保存せずに終了する
s 空の Sun ディスクラベルを作成する
t 領域のシステム ID を変更する
u 表示/項目ユニットを変更する
v 領域テーブルを照合する
w テーブルをディスクに書き込み、終了する
x 特別な機能 (エキスパート専用)

コマンド (m でヘルプ):



対話式に進めていきます。
領域を削除していきます。
コマンド (m でヘルプ): d

云々・・・

云々あって(汗)領域を削除しました。
では、その反映を行います。
コマンド (m でヘルプ): w


ミスったって場合、
コマンド (m でヘルプ): q
で抜けます。



これで、なぎ倒し完了。
広い部屋になりました。




つぎはファイルシステム。
#なんかCENTOS超遅い・・・vmで動作中・・・




では、ファイルシステムを作成




mkfs -t ext2 /dev/sdb1

mke2fs 1.39 (29-May-2006)
/dev/sdb1 is mounted; will not make a filesystem here!


なんか怒られた。



マウントしていたら、ファイルシステムが作れないジャマイカ。
そうなの?


ちょこっと調べたけど、理由は見っ館内。
マウントしているからファイルシステムを変更できない。。。

知らないけど、わからなくもない・・・
誰か説明してください・・・



とりあえず、アンマウント
# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda1 20315812 2556852 16710320 14% /
tmpfs 1350708 0 1350708 0% /dev/shm
/dev/sdb1 125162 0 125162 0% /media

# umount /media
# df
Filesystem 1K-ブロック 使用 使用可 使用% マウント位置
/dev/sda1 20315812 2556852 16710320 14% /
tmpfs 1350708 0 1350708 0% /dev/shm




では、改めて・・・

# mkfs -t ext2 /dev/sdb1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
31360 inodes, 125424 blocks
6271 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
16 block groups
8192 blocks per group, 8192 fragments per group
1960 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 30 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
#





おひょ。完了です。





ではgrub をインストールしちゃいましょう。





まずはマウント
# mount /dev/sdb1 /media/


そしてgrubインストール
# grub-install --root-directory=/media /dev/sdb1
Probing devices to guess BIOS drives. This may take a long time.
The file /media/boot/grub/stage1 not read correctly.





あれ?
できたっぽいですねぇ・・・。






ubuntuでやったときはできなかったんですが・・・





ubuntuで再チャレンジといきますか。

2009年7月3日金曜日

vmware エラー

接続する有効なプロセスが見つかりません




→vmwareと名のつくプロセスを落として、再度、vmware playerを起動

2009年7月2日木曜日

glibのバージョン

すぐ忘れちゃう。





pkg-config --modversion glib-2.0




なんかね。こんなこといわれたら…
Package gilb-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gilb-2.0.pc'
to the PKG_CONFIG_PATH environment variable


PKG_CONFIG_PATHを設定しなきゃいけないの。


Ubunbuだと/usr/lib/pkgocnfigでよいかと。
#CENTOSだと/usr/local/lib/pkgocnfigだった気がする。
#libってディレクトリにpkgconfigディレクトリがあって、そんなかにいっぱいおっぱい、ファイルが入っていたら正解。正解。
##本当?
##


export PKG_CONFIG_PATH=/usr/lib/pkgocnfig



もっかい実行。
pkg-config --modversion glib-2.0
2-18.2







2.18.2か。





2.20が希望なので、アップグレードしなきゃ。

Xウインドウ 起動順序

こっちも大切。


簡単に書くと…


startxを実行

xinitを実行

xinitrc

.Xresourcesを読み込み

.Xclientsを読み込み

X起動









詳しく。

1番目。startx。

この子はスクリプトになってます。
less /user/bin/startx

結果的にxinitを呼び出し。
#おい、焼きそばパン買ってこいや。





2番目。xinit

この子はバイナリ。
Xの初期化が主な役割。
仕事が終わったら、xinitrcを実行。
xinitrcがいなかったら、xtermを実行。




3番目。xinitrc
Xの初期化が主な役割。
#クライアントプログラムを実行するのが役割みたい。




4番目。.Xresources
Xクライアントのリソース設定。
#.Xdeualtsと同じ。



5番目。Xclient
デスクトップ環境・またはウインドウマネージャの起動




X起動

読み込み順序 ログイン/ログアウト

参照
->http://d.hatena.ne.jp/rook5963/20090312/p2


ここみれば全部書いていますので。



.bashログイン時

/etc/profile…全ユーザ参照
 /etc/profile.d/*.sh


~/.bash_profile…ログイン時だけ実行
→ある場合….bashrcをよみこんで終了


~/.bash_login…Cシェルが由来らしい。
→ある場合….bashrcをよみこんで終了

~/.profile…さっぱり。
→ある場合….bashrcをよみこんで終了

ここまで来たら、
次に読み込むものはないっす。



覚え方は…
何でしょうね。

#微妙-な並び方だな…


エプ
バプ
バローwww



#なにそれ…



所以がわかれば、もっと楽かも。







ちなみに
ログアウト時は

~/.bash_logout

Ubuntuでメール送信@添付付き

おさらいから…
#送信環境設定は前回を見てね。

メールのみ送信する場合
mail -s 件名 送信先アドレス[Enter]
Cc[Enter] #Ccに送信先アドレスを入れたい場合、書く。

#本文

ほげほげ
. #.で本文書き終わり。

これでメール送信と。







今回は添付ファイルをつけて送信してみたい。

uuencode 添付ファイルパス 添付ファイル名 | mail -s 件名 送信先アドレス


uuencode…バイナリをテキストに変換する方式。



そうです。ですので送信したら分かるように、
本文に添付したものが表示されますめ。









いや、本文には本文書きたいでしょ。
添付はあくまで添付で…。











聞くからには
muttならおk。








sudo apt-get install mutt







muttでの送信方法
mutt -a 添付ファイル -s 件名 送信先アドレス[Enter]

To: 送信先アドレス #あれ?さっき、引数で指定したよね?
Subject: 件名   #あれ?さっき、引数で指定したよね?

#本文
こけこっこ。

#書き終えたら、Ctrl+X



変更されたバッファを保存しますか?
y
#Nを選択すると、本文が破棄されるっぽい。


書き込むファイル: /云々
[Enter]
#フォーマットとか特に指定しなくてもいい場合、[Enter]





すると、テキストベースのメール送信画面が出現。
本文を編集しなおしたい->e
メール送信したい->y
ヘルプを見たい->?



今回はyをうつと、メールが送信される。





送信された。












追記:
コマンドラインから全部できたほうが、楽だよね〜…

2009年7月1日水曜日

Ubuntuでメールを送信

Ubuntuでメール送信

環境
 ・会社
 ・Ubuntu 8.0



必要なもの。
 ・mailutils
 ・exim4
 →インストール



設定。
sudo dpkg-reconfigure exim4-config を実行

対話的に色々聞かれるので赤裸々に答える。

参考はここ
 →http://www.nori-net.mydns.jp/triflingtoys/mysv/exim4.html


#これを設定する必要があるのかどうかは不明だが、一応設定。
#sudo gedit /etc/exim4/passwd.client
#
#SMTPサーバのアドレス:ユーザ名:パスワード
#
#パスワード丸見え。640だけど。



設定はここまで。




メールを送信してみる。


mail -s test hogehoge@hogehoge

# mail -s 件名 送信先アドレス
# コマンドを実行すると、Ccとでるので、Ccしたければ送信先アドレスを。
# 特にCcしたくないなら、エンター。
Cc:

#その後は本文になる。
#本文を適当に書く。

キタ━━━ヽ( ゚∀゚)人(゚∀゚ )メ( ゚∀゚)人(゚∀゚ )メ( ゚∀゚)人(゚∀゚ )ノ━━━!!!!


#書き終えたら、改行してから「.」を打つ。
#そうすると、送信される。
.



あとは、メールを受信して確認。

化けてない!!!

化けてない!!!

iGoogleからの投稿では化ける

化けてる

化けてる

Ubuntu?chkconfig

Ubuntu?chkconfig??????????

man????
--level?????????
?(??? )




フォロワー