Hatena::ブログ(Diary)

てつじんにっき

2008-03-27

[][][] ファイル末尾の改行を削除

巷で話題の非常に便利なyasnippet。すばらしい。

で、仕事用のmysnippetをいろいろ書いてから気づいたのですが、

これって、ファイル末尾の改行も展開時に挿入するんですね。

yasnippetを使っていて、展開後末尾の改行は個人的に必要なかったので、全部除去することに。

取りあえず、指定したディレクトリ以下のファイルの末尾の改行を一括削除。

$ find ./mysnippet-dir -type f -print0 | xargs -0 perl -pi -e 's/\n$// if eof'

あ。でも、svnのファイルとか混じってたら危険なので、

$ find ./mysnippet-dir -type f | grep -v '/\.svn/' | xargs perl -pi -e 's/\n$// if eof'

それかやっぱり、ディレクトリ下って一つづつ、

$ perl -pi -e 's/\n$// if eof' *

でもいいかも。

末尾が改行じゃないファイルが欲しいことなんて殆ど無かったけど、こんなところに需要が。

追記 (02:05)

$ find ./mysnippet-dir -type f ! -path '*/.svn/*' -print0 | xargs -0 perl -pi -e 's/\n$// if eof'

2つ目のよりはこっち?findの勉強になってきた。

2007-11-14

[][] authorized_keysのオプション

いろいろ出来るんですね。最近まで知りませんでした。

http://www.unixuser.org/~euske/doc/openssh/jman/sshd.html

fromオプションなんかは、TCP Wrapperでは制御できないような細かい設定をしたい…

といった場合があれば便利なのかも。ユーザ毎に接続元を細かく絞りたい時とか。

from="!foo.example.com,*.example.com" ssh-rsa AAAAB3NzaC1yc2EAAA.......

例えば上記のように書いておけば、

bar.example.comとかbaz.example.comとかのサブドメインは鍵の使用を許可するけど、foo.example.comは駄目だよ。といったことができます。

ちなみにfromではじかれるとこんなログが出ます。*1

Nov 13 23:26:33 localhost sshd[10518]: Authentication tried for foo with 
correct key but not from a permitted host (host=foo.example.com, ip=192.168.233.1).

*1:この例では/etc/hostsを弄ってアクセス元のホスト名(192.168.233.1)を制御してます。

2007-09-21

[][] ファイル所有者変更

カレントディレクトリ以下のfoo所有のファイルを全て、bar所有のファイルに変更したい時。

$ sudo find . -user foo -print0 | sudo xargs -0 chown -h bar

こうでもいい?

$ sudo sh -c "find . -user foo -print0 | xargs -0 chown -h bar"

GNU chownならこう?

$ sudo chown -R -h --from=foo bar .


ちなみに

sudo xargs コマンド

をうっかり

xargs sudo コマンド

にすると、引数が多い場合にArgument list too longになる。引数の分割が上手くいかないみたい。