More from: linux

ユーザー設定の移行(備忘録)

仕事で使っているサーバの負担が大きくなってきたので、処理を分散させるために仮想でもう一台作った。
新しいサーバに一部の処理を移行させるのだけど、やっているのがメールの代理受信なので、ユーザーデータも移行しなければならない。
スプールの中身は移さずに全て受信後に新しいサーバに移行して貰うつもり。
なので新しいサーバでユーザーを新たに登録する作業が必要で、いちいち手作業でやっていてはミスが出るので元のサーバのユーザー情報を元に登録用のスクリプトを作った。
最初に旧サーバから/etc/passwdファイルを新サーバにコピーしておく(実際には/etc/alisesや/etc/groupファイルもコピー)。
# ”awk -F : ‘{print “/usr/sbin/useradd -u ” $3 ” -g ” $4 ” -d ” $6 ” ” $1}’ passwd > hoge”
そうして上のコマンドを実行するとファイル”hoge”の中に
/usr/sbin/useradd -u 501 -g 501 -d /home/user1 user1
のような登録用のコマンドが作られるので、後はこれを実行すればユーザーの登録が出来る(移行させたくないユーザーの分は行を削除するかマスクしておけばOK)。
問題はパスワードの設定で、一つ一つ手で入力していたら大変(ユーザー数が三桁あるので)。
これをなんとかバッチで流し込めないか現在考え中・・・
これも旧サーバの/etc/shadowファイルから切り出して流し込めれば楽なんだけどなぁ・・・
一度
useradd -u 501 -g 501 -d /home/user1 -p ”切り出したパスワード文字列(暗号化済み)” user1
でやってみたらユーザーは登録出来るけどパスワードは正しく設定されなかったorz

さて、どうしたものか???

←クリックしてくれると嬉しいです。

”ゴミ箱”機能を追加した

昨日ファイルサーバ内で大量のファイルを移動されて見えなくなった対策の一部として、ファイルサーバにゴミ箱機能を追加した。
ファイルサーバではsambaを使っているので、次のページ
「Sambaでごみ箱を使うには(Red Hat Linux編)」(@IT)
を参考に、/etc/samba/smb.confに記述を追加してユーザーが削除したファイルは実際に削除されずに指定したディレクトリに移動するようにした。
移動する際に同じ共有ドライブに移動されるとディスクスペースを圧迫してしまうので、容量に余裕のあるパーティションにゴミ箱用のディレクトリを作り、各共有ディレクトリのルートにはそこへのシンボリックリンクを張った。
試しにファイルを削除してみると無事にそのディレクトリにファイルが移動したので、ゴミ箱ディレクトリは同じファイルシステム上に無くても良いみたい。
後は削除してから一定以上の日数が経過したファイルの自動削除の仕掛けを作ればOKかな?

←クリックしてくれると嬉しいです。

たまにしか書かないと忘れるなぁ(汗)

サーバーのログの中から特定の文字列を探すのにコマンドラインから
”grep ほげ げしょ | awk ‘{print $8}’ | uniq
と書くところを、最初は
”grep ほげ げしょ | sed ‘{print $8}’ | uniq
と書いてしまい
”sed: -e 表現 #1, 文字数 3: コマンドの後ろに余計な文字があります”
というエラーを返されてしまった(汗)。
それを見ておかしいな?と思って直したのが
”grep ほげ げしょ | sed {print $8} | uniq
で、これでも同じエラーが出る(当たり前)。
そもそも”sed”を使うつもりは無く”awk”と書いているつもりなので、そこが間違っているとは気付かなかった。
2回目のエラーでようやくawkではなくてsedと書いていることに気付いて直したと言う(汗)。
いやぁ、しばらくぶりに書くと忘れてるねぇ・・・

←クリックしてくれると嬉しいです。

なんとかなりそうだ・・・

メールスプールが満杯で新たなメールが受け取れ無くなったアカウントのスプールファイルを手動で編集して書き戻したところ、ファイルサイズが1割ほど小さくなっていた。
その状態でnPOPを使ってログインしてみると幸いにもタイムアウトを起こさなかったので、サイズが大きくて不要なメールを選択して削除した。
その結果最終的にはファイルサイズが1/4以下になったので、これならユーザーのメーラーでもタイムアウトせずに読める筈。
ただ、配信不能でmailキューに溜まっているのが200通以上あるので、現在はこれのフラッシュ中。
フラッシュは
sendmail -q (好みで”-v”オプションを付けるのも可)
で行っているけど、溜まっていたキューの中にも大きくて不要なのがありそうだから、終わったら再度整理しておかないとならないかな?(汗)

それにしても仕事に出てるんだったら休みの日以外はメールを読んでくれよなぁ・・・いや!読まなくてもいいからサーバーから取りこんでサーバー上のは削除してくれよ・・・

つーか、メールシステムを全面的に変更したいな(汗)

←クリックしてくれると嬉しいです。

また満杯にされた・・・

メールサーバから配信不能のメールが来たので該当アカウントのスプールを見るとファイルサイズが限界に・・・orz
該当アカウントのユーザーに連絡して受信して貰おうとしてもログインに時間がかかり過ぎてメーラーがタイムアウトを起こしてしまう。
仕方が無いのでこちらでいつも使っているnPOPというメーラーで不要でサイズの大きなメールを削除しようとしてもやはりタイムアウト。
最終手段としてサーバーに入ってスプールファイルを直接編集して多少なりともサイズを減らす作戦に出た(汗)。
半日掛けても最後までは終わらなかったけど、取り敢えず編集を終わらせたが、ファイルの書き込みにまた時間が掛かる。
さて、どれくらいサイズが小さくなったかなぁ?

←クリックしてくれると嬉しいです。

sambaサーバーに接続出来ない???

職場のPCの一台をファイルサーバーに接続して欲しいとの依頼があったので、接続用のユーザーアカウントを作ってクライアントPCの設定を行った。
ところがパスワードが違うということでサーバーに接続を拒否されてしまう。
パスワードの設定を間違ったかと思い、サーバー側で再度パスワードの設定をやり直し、念のため自分が普段使っているPCから新しいユーザーで接続を試すと接続出来た。
これで大丈夫と思って再度目的のPCの設定を行ったが、やはりパスワードエラーではじかれる。
サーバー側のログを見ても認証失敗のメッセージが出ているので、接続には行っているのは確かでネットワークの問題では無さそう。
さて、一体どういう理由で認証に失敗しているんだろうな???

←クリックしてくれると嬉しいです。

vsftpdの設定メモ

Linuxで使用しているFTPサーバーが”vsftpd”の場合、ローカルユーザーがアップロードしたファイルのパーミッションをコントロールする方法。
設定ファイル/etc/vsftpd.confにある次の行でコントロールしているので、そこを適宜書き換える。
local_umask=numeric (Default:022)
デフォルトでは”022”となっているので、そのままだと”644”(rw-r–r–)になる。
これを”000”にすると”666”(全ユーザー書き換え可能)になる。
セキュリティを考えると少なくとも”002”にしておいたほうが良いかな。

←クリックしてくれると嬉しいです。

スクリプトは動くようになった

先日から作っていたファイルフォーマット及び文字コード変換用のスクリプトがようやく形になった(汗)。
元のファイルの中に複数の形式のレコードが混在していたので面倒だったけど、そこはなんとか力技で押さえ込んだ。
てこずったのが特定の文字(全角の長音記号)が元のコード(SJIS)から他のコード(EUC,UTF-8)に変換できなかったこと。
いろいろ調べてみたけど皆さん苦労していらっしゃるようで上手い解決策が見つからなかった。
仕方が無いのでテキストエディターで開いて全角のハイフンに一括変換をかけることで対処した。
元のファイルが三十数個程度だったのでこんな荒業が使えたけど、これがファイル数が三桁だったらやりたくないよなぁ・・・
どうにかして自動で変換できないものか・・・

←クリックしてくれると嬉しいです。

久々にスクリプトを書いたら(汗)

先日仕事でスクリプトを書いた。
簡単なcsvファイルのフォーマット変換用のスクリプトだったんだけど、久々にawkを使ったら構文をすっかり忘れていた(汗)。
基本的な書き方は覚えていたんだけど、ifやらwhileの使い方があやふやだったのでネットで検索。
こういう時はネットはありがたいな。

←クリックしてくれると嬉しいです。

またbashにパッチが当った模様?

bashの脆弱性に対する対策で先週bash-3.2.22からbash-3.2-33.el5_10.4に上げたばかりなんだけど、今日yumでチェックしたらbash-3.2-33.el5_11.4が出ていたらしいので早速アップデートした。
とはいえ、このバージョンはRHEL5のバージョンが5.11なので出たらしく、CentOS用のel5_10.4との違いは全く無いらしい。
それでも出来るだけ新しくしたほうが気分的に良いからそのままにしておこう(笑)。

3.0-27(EL4)のほうはOracleのサーバを見てもbash-3.0-27.0.3以降はまだ無いみたいだな。
こちらも引き続きチェックをするように心掛けておこうっと。

←クリックしてくれると嬉しいです。