2010年11月29日月曜日

rootのパスワードを教えたくない

centosでsudoを使いたい時のメモ。

http://oshiete.goo.ne.jp/qa/1013408.html

Solaris9でrootのコマンドを使わせたいけどrootパスワードを教えたくない、というものがあった。
linuxでの解決法。

特定のスーパーユーザでしか使えないコマンドを一般ユーザで使いたい場合は、
wheelグループにユーザを追加して、全ての権限を使えるようにするか、
もしくはsudoで特定のコマンドを使えるように記述するか。

ここではsudoをcentosで使う方法を記述する。

rootユーザでsudoを編集するvisudoを起動する。使い方はviと同じだが、保存する際にエラーチェックをしてくれる。

# /usr/sbin/visudo


下の方を見ていくと、

## Next comes the main part: which users can run what software on
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
## user MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere
root ALL=(ALL) ALL


という記述がある。
同じように書いてやる。
パスワード無しで実行させたいので、パスワード無し指定もする。
*下部に追記有り
許可したいユーザ名 サーバ名=NOPASSWD: コマンドの場所

例:ユーザ「joker」サーバ「foobar」でrebootコマンドを使わせたい
joker foober=NOPASSWD: /sbin/reboot


内の環境の場合、反映のためにサーバの再起動が必要だったが、
$ sudo /sbin/reboot
で実行できた。

参考URL
http://piro791.blog.so-net.ne.jp/2010-02-25-1
http://wingse.blog57.fc2.com/blog-entry-202.html
http://linux.kororo.jp/cont/intro/sudo.php



追記

許可したいユーザ名 サーバ名=NOPASSWD: コマンドの場所
と書いたが、何故か実行できない環境もあったので、
許可したいユーザ名 ALL=NOPASSWD: コマンドの場所
とした。
なので例は
例:ユーザ「joker」当該サーバでrebootコマンドを使わせたい
joker ALL=NOPASSWD: /sbin/reboot

となる。

2010年11月28日日曜日

linuxでコマンドが実行できない

実機で作業をやっていると、rootでログインして直に作業してしまうので気にしないことが多いのだけれども、
たまにコンソールでログインして作業しようとすると、別ユーザからsuしてrootになるので、
コマンドを打っても通らないことがある。
その時、始めに入るユーザのプロフィールにパスを記述して、パスを通してあげるとコマンド入力の際、長ったらしく打たなくて済む。
rootで入った時にだらだら打たなくて済むのは、rootは既にパスが通っているから。
echo $PATH
と打ってみれば、どこにパスが通っているか分かる。

jokerというユーザにパスを通してやる場合、
ホームディレクトリの中にある.bash_profileを編集する。
vi /home/joker/.bash_profile
中に記述してある
PATH=$PATH:$HOME/bin
に続けて
:/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/sbin
と.bash_profileに登録すると、suした際にコマンドが通らないことが殆ど無くなる。

もしパスをもっと通したい場合、「:」で続けて記述していく。
例 /foobarにパスを通す
PATH=$PATH:$HOME/bin:/sbin:/usr/local/sbin:/bin:/usr/bin:/usr/sbin:/foobar

反映されるのタイミングは、再ログイン、もしくは再起動。

参考URL
http://pocketstudio.jp/linux/?%A5%D1%A5%B9%28PATH%29%A4%CE%B3%CE%C7%A7%A4%C8%C0%DF%C4%EA%CA%FD%CB%A1%A4%CF%A1%A9

2010年11月21日日曜日

browser control optionsは触れない方が良いようだ

#browser control option
local master = no
#→brouse list(廃止)で規定されていたブラウズリストを保持しないパラメータ。

preferred master = no
#マスターブラウザを規定する際に名乗り出るかどうかを決めるパラメータ、と思っている。

os level = 0
#→osの優先度らしいが、不明。低くしろとmanには書かれているが・・・。
#兎に角他PCと被らないようにすることが良いらしい。因みに、
#RHEL4リファレンスガイド
#http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-ja-4/s1-samba-network-browsing.html
#によると、windowsの最高レベル(os level)は32らしい。
#sambaがマスターブラウザになってはいけない環境もあるらしいので、(そもそもマスターブラウザの概念が分かっていないが)高くしない方が良いようである。
#60を超えたところで、ネットワークが壊れたとの報告を散見している。
#設定値はos level = 35とかが例として多い。


10年前のsambaメーリングリストに、以下の投稿があったので、
触らぬ神に祟り無し。
http://www.samba.gr.jp/ml/article/sugj-tech/msg01351.html
> >やたらと perferred master を立てるとブラウザ選定のブロードキャストパケッ
> >トが出まくってよろしくないですね。(nmbd は死ぬこともあるし :-p)
>
> MS の実装だと preferred master 相当が Yes な人は、自分がマスタブラウザ
> になるまで定期的にブラウザ選定をやり直すような仕様だったような気がしま
> す(うろおぼえ)ので、かなり最悪な気がします。

こちらは問題。
NTのドメインコントローラを再起動等するとMicrosoftネットワークが壊れます。
(実体験済み)
この場合、Sambaをドメインから切り離し、OSのマルチユーザモードをダウンさせ、
NTドメインコントローラを再起動後、全クライアント再起動して復旧させるより
ないらしく、この経験以降、domain masterとperferred master、os levelは触ら
ないようにしています。

resolv.confが読めない

resolv.confが読み込めず、名前の解決が出来ない事態に陥った。

原因:表記間違い
対処法:イコール入れるな!

というのも複合的な理由からそういう事態に「自滅していった」というのが正しいかもしれない。
サーバを立て、bondingする為に差したnicを特定しようと、LANケーブルの抜き差しとインターネットへの接続(googleへのping)をしていた時のこと。
4枚ほどnicを差すと、eth0がどれなのか分からないもの。しかもオンボードのnicの方が優先度高そうなのに、そんなこともない。
実際はCPUに対して一番遠いところからeth「X」は振られていくものっぽい。
無事にeth0を見つけ、次々に特定していったのだけれども、何故か「二本LANケーブルを挿していないとインターネットに繋がらない」という
不思議な自体に遭遇した。
片方を抜くと繋がらない。二本じゃなければ繋がらない(因みにこの原因は、片方のLANケーブルが断線していたのと、
macアドレスにひも付けた固定DHcpでIPアドレスを配信していたことが不運な方向に重なったことだった)。
最終的にbondingしてIPを一つに統合固定にするので、二本差さなければ繋がらないのは非常に困る。
ということでネットワーク関係の設定を色々といじっている時にやってしまったのが、resolv.confの表記間違い。
ifcfg-ethXの表記は「項目=値」なのだけれども、resolv.confは「項目『半角スペース』値」。
見事に付けてはいけないイコールを付けてしまい、そこ以降名前が引けなくなってしまった。
色々やりましたよ。
「resolv.conf 読めない」とか「resolv.conf 読み込めない」とか「resolv.conf 引けない」とか「resolv.conf dns 引けない」とか「resolv.conf 読み込めない」とか「resolv.conf 認識しない」とか「ifcfg-eth0 ネームサーバ」とか「名前が引けない linux」とか、
散々google先生を使い倒しましたよ。
もう散々。
で、症状は全く違うけれどもヒットしたポスト
http://centossrv.com/patio/patio.cgi?mode=view&no=982
の最終コメント

Re: DNS のどこかがおかしいのですが... ( No.10 ) このメッセージに返信する

日時: 2008/10/04 05:30
名前: stranger
URL: http://ja.528p.com/

>いえいえ。
>dig で DNS サーバを明示的に指定したとき (@xxx.xxx.xxx.xxx) だけ、正常に返ってくるのです。

resolv.confの改行コードがLR+LFになっていたり
半角スペースのかわりに、全角スペースが挟まっていたりすると
呼び込めないですが、そのような単純なミスはされないと思いますので
わたしのスキルではお答えできません、すみませんね


を見てハッとした。
resolv.confの書き方間違えてる・・・。
初歩的すぎて笑えないミスでした。

2010年11月20日土曜日

bootディレクトリがカーネルで一杯になった。

デフォルトインストールすると100mbしか取られない/bootディレクトリが、とうとう一杯になってしまった。
どうやら古いカーネルが20個あるらしい。
以前は手動で古いファイルをざくざく消していたのだけれども、どうもそれだけではあまり宜しくないらしい。
/etc/grub.confの中身も綺麗にしなければならない。

centosでのカーネル削除はyum-utilを使う方が安全のよう。
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/801deloldkernel.html

に従ってroot権限で
package-cleanup --oldkernels
と実行。
一世代前を残して削除される。
ただ、記事と同様にsmpカーネルは削除されなかった。
バージョンは0.5-2.el4.centos
古いosだなあ。cent0s4か。

そもそも今はsmpカーネルは最近のlinuxで配布されているんだろうか・・・64bit版使うようになってめっきり見なくなった気がする。

2010年11月19日金曜日

linuxでintelのギガビットイーサカードを使いたい。 ~e1000とe1000eドライバを更新する

新しく組んだサーバでインテルのNICであるe1000とe1000eが挙動不審だったので、
ドライバを更新した。
特にe1000eは認識はしているが、LANケーブルをつないでもリンクアップしない。
やれやれ。

環境はcentos5.5で、インストールして即yumによるアップデートしたもの。

intelのサイトに行き、ダウンロード・センター
http://downloadcenter.intel.com/
から、ドライバを取ってくる。

e1000の場合、
選択肢は

製品ファミリー
ネットワーク・コネクティビティー
製品ライン
インテルR デスクトップ・アダプタ
製品名
インテルR PRO/1000 GT デスクトップ・アダプター


多分どれを選んでもチップは同じはず。

更にlinux→ドライバと選択を進める。

etwork Adapter Driver for Gigabit PCI Based Network Connections for Linux

というドライバをダウンロードできるようになるので、ダウンロード。

e1000eは

製品ファミリー
ネットワーク・コネクティビティー
製品ライン
インテルR サーバ・アダプタ
製品名
インテルR PRO/1000 PT サーバー・アダプター


これもチップは同じはず。

Network Adapter Driver for PCI-E Gigabit Network Connections under Linux

をダウンロード。

以下はe1000eのreadmeを参考に。
tar.gzを解凍した際のreadmeを見ながら作業。
1. Move the base driver tar file to the directory of your choice. For
example, use /home/username/e1000e or /usr/local/src/e1000e.

まずはダウンロードファイルのある場所に移動

2. Untar/unzip archive:

解凍。

tar zxf e1000e-x.x.x.tar.gz

3. Change to the driver src directory:

解凍先のディレクトリsrc(ソースコード)に移動。

cd e1000e-x.x.x/src/

4. Compile the driver module:

rootでmake install。

# make install

The binary will be installed as:

/lib/modules//kernel/drivers/net/e1000e/e1000e.[k]o

The install locations listed above are the default locations. They
might not be correct for certain Linux distributions.

まあ、多分大丈夫。

5. Load the module using either the insmod or modprobe command:

modprobeでモジュールをロード。2.6カーネル以降ならフルパスで指定しろ、と言われたが、
僕の環境だとエラーを吐いた。何故。気にせず進む。
更に2.6以降のカーネルなら、一回昔のドライバを消して再ロードしろと言われたので、
再ロードする(rmmod~)。
modprobe e1000e

insmod e1000e

Note that for 2.6 kernels the insmod command can be used if the full
path to the driver module is specified. For example:

insmod /lib/modules//kernel/drivers/net/e1000e/e1000e.ko

With 2.6 based kernels also make sure that older e1000e drivers are
removed from the kernel, before loading the new module:

rmmod e1000e; modprobe e1000e

是で無事繋がった。
うちだと差した段階でethとして認識していたので、6以降はやらなくてよかった。

で、更に調べてみると、なんとrpmに出来ちゃったりするらしい・・・。
http://kiwi-jp.blogspot.com/2007/11/e1000.html

必要なパッケージ
rpm-build
kernel-source

インストール
# rpmbuild -tb e1000-7.6.9.tar.gz
# cd /usr/src/redhat/RPMS/i386
# rpm -ivh ./e1000-7.6.9-1.i386.rpm


たしかにreadmeに書いてある・・・。
To build a binary RPM* package of this driver, run 'rpmbuild -tb
'. Replace with the specific filename
of the driver.


readmeはよく読めということですね。

無事繋がったNIC4枚でbondingし、ファイルサーバを構築。
ネットワーク越しのファイルサーバ速度を測るため、win7上にcrystaldiskmarkをインストールして計測。
sambaでネットワークドライブ化してのスピードは以下の通り。
環境は
centos5.5
3ware 9690saでraid10(システムはraid1)
bondingのmodeはmode=0ラウンドロビン。
-----------------------------------------------------------------------
CrystalDiskMark 3.0 (C) 2007-2010 hiyohiyo
Crystal Dew World : http://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 byte/s [SATA/300 = 300,000,000 byte/s]

Sequential Read : 21.665 MB/s
Sequential Write : 76.449 MB/s
Random Read 512KB : 22.075 MB/s
Random Write 512KB : 73.868 MB/s
Random Read 4KB (QD=1) : 11.553 MB/s [ 2820.6 IOPS]
Random Write 4KB (QD=1) : 12.102 MB/s [ 2954.6 IOPS]
Random Read 4KB (QD=32) : 28.242 MB/s [ 6895.1 IOPS]
Random Write 4KB (QD=32) : 51.734 MB/s [ 12630.4 IOPS]

Test : 100 MB [V: 5.2% (140.7/2706.4 GB)] (x5)
Date : 2010/11/19 15:13:56
OS : Windows 7 [6.1 Build 7600] (x64)
--------------------------------

readが弱いが、writeはすこぶる速い。
bwmonでのネットワークスピードを見ても、最大70mb/s出ているので間違いない。
因みにe1000e一枚なら、readはCrystalDiskMarkで最大55mb/sまで伸びるので、
bondingした分処理が入って遅くなっていると見た方が良い。
win7上で1gbのファイルをDL、ULした場合、見た感じread35mb/s、write70mb/sくらい。
NIC1枚だと、read/write両方70mb/sを超え、たまに120mb/s超えを見ることが出来る。
70mb/sをbpsに直すと560mbpsか。1000mbpsのLANカードを4枚使っているにしてはしょっぱいなあ。
まあファイルサーバだし、安定して帯域の半分を使えるというのはありがたい。

2010年11月15日月曜日

AT5IONT-Iの使用感やら雑感。熱い。

AT5IONT-Iマザーをテスト用に購入。
せっかくのファンレス設計なので、クレバリーの格安ケースに入れてテストをした。
http://www.clevery.co.jp/eshop/g/g4571239962071/

とりあえず、720iのmkvファイルを1時間回したのだけれども、
温度の上昇が半端ない。
狭いからか、と思い、ケースを開けてみても、凄い熱である。
試しに2時間回すと温度が90度を超え、あえなく落ちる有様。
マザー付属のヘルスモニタが警告音を発しまくる。
慌ててケースのふたであおぐと、2から3度下がってくれる。
・・・ううむ。
http://partsdog.dospara.co.jp/archives/52113419.html

の実験は間違いなく正しい。
文中に、こんなにぶん回すことはないと書かれているけれども、
たとえば2時間くらい動画サイトを見て回っても同じこと。
ケースにはファンがついているものを使うべきである。
もしくはヒートシンクに何らかの方法でファンを固定するべきか。
水冷以外での完全静音マシンになるかと思いきや、少し残念。
このマザーにファンを固定するためには何が必要なんだろう・・・熱伝導両面テープ?
ずれそうだなあ・・・。

使用感は、時折昔のセレロンを思い出させる若干のもっさり感がある。
特にアプリケーションを3つ起動させると厳しい。
デュアルコアでもシングルタスク、みたいな(OSはwindowsxpで4gbram)。
ハードな運用さえしなければ(ATOMということを忘れなければ)それなりか。
エンコーディング・レンダリングには不向き。
このマザーでexpressgateは正直使わない方が良い。絶望する。

また、何故か内部USBピンに外出しの端子を付けるとエラーを吐いてBIOSで止まった。
AUDIOもしかり。
何故・・・。

メモリの相性問題はファームアップされたものが出回っているので問題なし。
適当なバルクメモリで動いている。
DVI出力端子はDVI-Dなので、上記ドスパラの記事は間違いで、変換アダプタを付けてもD-SUBでは出力できないはず。
http://www.unitycorp.co.jp/asus/motherboard/intel/mini_itx/at5iont_i/

追記
追記
ケースを買うのはあまりにも作業の手間と時間がかかるので、なんとか既存のケースに入るファンを探したところ、
株式会社サイズの
KAZE-JYU slim
http://www.scythe.co.jp/cooler/kaze-jyu-slim.html
という製品を発見。薄型というだけあって、薄い。
元々はハードディスク用のファンで、小型、スリムサイズ。
静かにしたかったので1000rpmバージョンを購入。
回してみたとき、大丈夫か、と心配になるくらいの風量。
ケースにステイやねじ穴はついていないので、ヒートシンク方向に風が行くようにファンを「置き」、
ふたで挟み込むようにケースを閉めた。中はぎちぎちなので、縦置きしてもファンがずれたりケーブルに干渉することはない。
これで走らせてみたところ、なんと80度あった温度が50度台で推移。
15db程度の音(http://www.geocities.jp/fkmtf928/dB_sound.html曰く
音の大きさの単位として表現する場合
音の大きさを表す単位としてデシベルが使われています。身近な音の大きさはこんな感じになります

身近な例
120デシベル ・飛行機のエンジンの近く
110デシベル ・自動車の警笛(前方2m)・リベット打ち  
100デシベル ・電車が通るときのガードの下
 90デシベル ・犬の鳴き声(正面5m)・騒々しい工場の中・カラオケ(店内客席中央)
 80デシベル ・地下鉄の車内・電車の車内・ピアノ(正面1m)
 70デシベル ・ステレオ(正面1m、夜間)・騒々しい事務所の中・騒々しい街頭
 60デシベル ・静かな乗用車・普通の会話
 50デシベル ・静かな事務所・クーラー(屋外機、始動時)
 40デシベル ・市内の深夜・図書館・静かな住宅の昼
 30デシベル ・郊外の深夜・ささやき声
 20デシベル ・木の葉のふれあう音・置時計の秒針の音(前方1m)

なので、音は全く聞こえない。

もっさり感も軽減。
どうやら熱で遅くなっていたらしい。