2014年9月16日火曜日

sid にしたら terastation がマウントできなくなった

option に sec=ntlm を追加する.

apt-file search で末尾にマッチさせたい

$ apt-file search -x bin/gcc$
 探したいファイル名が短くて,前方一致でずらずら出てきてしまうときなどに.

2014年8月26日火曜日

vim で samba 上のファイルを編集すると,ファイルのパーミッションが samba の create mode に戻されてしまう問題

Linux の samba サーバで公開されているファイルを,windows の vim で編集すると,ファイルのパーミッションが smb.conf の create mask で設定されるモードに戻されてしまう.

たとえば,create mode = 0664 の場合.
$ touch hoge
$ ls -l
合計 0
-rw-rw-r-- 1 nishi nishi 0 8月 26 01:28 hoge
$ chmod 777 hoge
$ sudo chown root:root hoge
$ ls -l
合計 0
-rwxrwxrwx 1 root root 0 8月 26 01:28 hoge*
### ここで windows から vim で hoge を編集 ###
$ ls -l
合計 4
-rw-rw-r-- 1 nishi nishi 5 8月 26 01:29 hoge
となる.実行ビットが落ちてしまうので,スクリプトの編集中など非常に困る.
更に,編集したファイルがシンボリックリンクだったりした場合,リンクが消されて通常ファイルが作られるのでもっと困る.
vim の代わりに notepad を用いた場合は,編集の前後でパーミッションは保持される.
また,
std::ofstream ofp(argv[1]);
ofp << "abc" << endl;
ofp.close();
という c++ プログラムを VC でコンパイルした物で試した場合もパーミッションは保持された.

ファイルのパーミッションだけでなくオーナーもユーザの物に戻ってしまっていることから,
vim でのファイルの保存時には,編集前のファイルの削除→編集後のファイルのセーブが行われている様に見える.

しかし,上記の chown root:root の操作に加え,chmod 555 . として,
カレントディレクトリの書き込み権限を落とすと,vim での編集後に,元のパーミッションが保持されたファイルがセーブされた.
一度削除していたら,書き込みエラーになるはずなのだが...

原因の調査は手に余るので,場当たり的だが今考えつく対処法はふたつ.
  1. chmod -w . (新規ファイル作成不可)かつ,chown root:root *(パーミッション変更不可) とする.
  2. smb.conf で,force create mode = 775 にする.
1.は,他のディレクトリに影響が出ないが,explorer から新規ファイル,フォルダが作成できなくなる.
2.は,共有全体で,テキストファイルを編集したときにも実行ビットが立つようになってしまう.
どちらも一長一短だが1の方がsafeかなと思う.

解決編


:set backupcopy=yes
参考: :help bkc, :helpgrep samba\c など.
bkc が no だと,元のファイルをリネームして backupfile とし,編集後のテキストを新規ファイルに書き込む.まさに上の挙動.

ただし,この設定だけだと私の環境では期待通りに動作しなかった.
smb.conf で create mask や,force create mode などを設定しているとどうしても影響を受ける様子.

; create mask = 770
; force create mode = 770
  map archive = no
  map system = no
  map hidden = no
  nt acl support = no
これで大抵は良くなったのだが,なんかの拍子で group のパーミッションが変わる時がある.
どうやら ACL (Access control list) が書き加えられている様子だが,トリガーが分からない.

2014年4月17日木曜日

courier-imap-ssl cert

openssl の heartbleed 脆弱性とかの関係で courier-imap-ssl の鍵と証明書を作り直した。
というか、今まで動いてたのが courier-imad-ssl の deb に含まれてた imapd.pem でしかも有効期限切れみたいな状態だったので、正確には作り直したじゃなくて作った。

手順としては /etc/courier/imapd.cnf を編集して、/usr/sbin/mkimapdcert を実行するだけ。

このスクリプトだと、/usr/lib/courier に imapd.pem が出来るんだけど、元の状態は /etc/courier/imapd.pem から /usr/lib/courier/imapd.pem にリンクが貼られてた感じなので、その辺はよしなに。
imapd-ssl の設定ファイルが /etc/courier/imapd.pem を見てるので元の状態の方が正しい気がする。

出来る証明書の有効期限は365日で、スクリプト中にハードコーディングされているので、のばしたいならスクリプトを編集する必要あり。
まあ、自己署名だし、有効期限が切れたからと言ってどうと言うこともない。

サービスを再起動して、クライアントから証明書を表示して、新しいものになっていればOK。

これで、今後の imaps 通信が( heartbleed 脆弱性によって)盗聴されることは無いはず。
ただ、これまでにユーザのパスワードが抜かれた可能性はあるかもしれない(?)ので、変更しておいた方が無難。
でも、あちこちの端末のMUAで設定を変えなければならないので面倒なんだよね。
しばらく mail.log でもチェックして、身に覚えの無い端末からのログインが無ければいいことにする。

2014年3月12日水曜日

biglobeの中継サーバがサービス終了

biglobe の中継サーバがサービス終了と言うことで postfix の設定を見直し。
  1. relayhost の宛先を [mail.biglobe.ne.jp]:587 に変更
  2. smtp_sasl_password_maps のファイルを作り直す
として、後は以前の設定のまま、postfix に SMTP AUTH の手続きをしてもらう感じでいけました。
http://scrawlpad.blogspot.jp/2008/11/postfix.html

2013年9月18日水曜日

memory allocation error on cifs

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters

IRPStackSize DWORD 0x32
MaxMpxCt DWORD 0x0400
MaxWorkItems DWORD 0x1000
Size DWORD 3


コンピュータの管理>サービス>Server サービスの再起動

2013年9月10日火曜日

MD Detail 20130915

/dev/md0:
        Version : 1.2
  Creation Time : Thu Oct 20 16:40:21 2011
     Raid Level : raid6
     Array Size : 19535119360 (18630.14 GiB 20003.96 GB)
  Used Dev Size : 1953511936 (1863.01 GiB 2000.40 GB)
   Raid Devices : 12
  Total Devices : 13
    Persistence : Superblock is persistent

    Update Time : Sun Sep 15 16:05:27 2013
          State : clean, degraded, recovering
 Active Devices : 11
Working Devices : 13
 Failed Devices : 0
  Spare Devices : 2

         Layout : left-symmetric
     Chunk Size : 512K

 Rebuild Status : 0% complete

           Name : fs:0  (local to host fs)
           UUID : 10314e2a:1b7d3110:a2228c28:1fdca881
         Events : 91836

    Number   Major   Minor   RaidDevice State
      16       8      177        0      spare rebuilding   /dev/sdl1
       1       8       97        1      active sync   /dev/sdg1
       2       8      113        2      active sync   /dev/sdh1
      14       8      209        3      active sync   /dev/sdn1
       9       8       33        4      active sync   /dev/sdc1
       8       8       49        5      active sync   /dev/sdd1
       7       8       65        6      active sync   /dev/sde1
       6       8       81        7      active sync   /dev/sdf1
      10       8       17        8      active sync   /dev/sdb1
      13       8      193        9      active sync   /dev/sdm1
      12       8      145       10      active sync   /dev/sdj1
      11       8      129       11      active sync   /dev/sdi1

      15       8      161        -      spare   /dev/sdk1