Excelの文書ファイルをLinux上のSambaで共有してみた。一応動いている。 maskとgroupに注意。

Sambaで共有を用意する

% sudo vi /etc/samba/smb.conf

# A shared folder for project Foo
# \\server\share-foo
[share-foo]
   comment = Foo
   browseable = yes
   read only = no
   create mask = 660
   path = /home/jdoe/share-foo
   public = no

cerate mask = 660として、同じgroupのメンバなら読み書きできるようにする。

Unix groupの準備

共有用のgroup fooを用意して、メンバーを加える。

% sudo groupadd foo
% sudo adduser jdoe foo
% sudo adduser asmith foo

Sambaアカウントの準備

必要ならSambaにもユーザを登録。

% sudo smbpasswd jdoe
% sudo smbpasswd asmith

ディレクトリと権限の用意

group foo, mode 660でディレクトリを用意してsetgidする。

% sudo mkdir /home/jdoe/share-foo
% sudo chown jdoe:foo /home/jdoe/share-foo
% sudo chmod 660 /home/jdoe/share-foo
% sudo chmod g+s /home/jdoe/share-foo

smb.confで設定したとおりにディレクトリを用意する。 group fooで読み書きできるようにmode 660とする。 配下のファイルやフォルダがgidを継承するようにsetgidしておく。

Excelで文書ファイルを用意

Excelの文書ファイルを用意して、ブックを共有設定する。設定を変えるとき はブック共有を一次的に解除しないといけないので注意。

% ls -al /home/jdoe/share-foo
drwxrwsr-x jdoe    foo   .
drwxr-sr-x jdoe    jdoe  ..

(jdoe creates foo.xls)

% ls -al /home/jdoe/share-foo
drwxrwsr-x jdoe    foo   .
drwxr-sr-x jdoe    jdoe  ..
-rw-rw---- jdoe    foo   foo.xls

編集して保存する

編集して保存するとこうなる。

% ls -al /home/jdoe/share-foo
drwxrwsr-x jdoe    foo   .
drwxr-sr-x jdoe    jdoe  ..
-rw-rw---- jdoe    foo   foo.xls

(asmith edits foo.xls)

% ls -al /home/jdoe/share-foo
drwxrwsr-x jdoe    foo   .
drwxr-sr-x jdoe    jdoe  ..
-rw-rw---- asmith  foo   foo.xls

Excelで共有されたブックを開いて保存すると、新しいファイルを作って置き 換えるらしく、ownerは変わってしまう。でもgroupは変わらないので、group のメンバは読み書きできる。

もっといい方法があれば知りたい。