MIRACLE

メールサービス申込 ユーザー登録&ログイン パートナー情報
お問い合わせ FAQ サイトマップ
MIRACLE LINUXの特長 製品紹介 サービス案内 購入 サポート 技術フォーラム

テクノロジー情報

2005年5月27日
SambaでACLを使うときの注意事項
MIRACLE LINUX V3.0 対応 MIRACLE LINUX V3.0 for x86-64対応

SambaでACLを使うときの注意事項

[問題]

ACLを設定してあるMS Office製品ファイルを上書き保存できない。
また、上書き保存できても、ACLが変更されてしまい更新できるはずのユーザから更新ができなくなる。

[対象となる製品のバージョン]

 MIRACLE LINUX V3.0 - Asianux Inside
 MIRACLE LINUX V3.0 - Asianux Inside for x86-64

[問題詳細]

MS Office XPのEXCELにて上書き保存を実施した際、以下の内容のダイアログが表示され、上書き保存できません。

ファイル'xxx.xls'は、前回保存された後、他のユーザによって変更された可能性があります。操作を選択してください。

  • コピーを保存する
  • 変更を保存する

変更を保存するを選択しても保存が出来ません。
また、上記の問題以外にも上書き保存後アクセス権やACLが変更されてしまうことがあります。

以下は例となります。

ディレクトリのACLは以下の設定とします。

# getfacl test/
# file: test
# owner: root
# group: Domain\040Users
user::rwx
group::---
group:dev:rwx
mask::rwx
other::---

このディレクトリ内に保存されているファイルのACLは以下とします。

# file: 1.doc
# owner: odagiri
# group: Domain\040Users
user::rwx
group::---
group:dev:rwx
mask::rwx
other::---

# file: 2.xls
# owner: odagiri
# group: Domain\040Users
user::rwx
group::---
group:dev:rwx
mask::rwx
other::---

# file: 3.ppt
# owner: odagiri
# group: Domain\040Users
user::rwx
group::---
group:dev:rwx
mask::rwx
other::---

ファイルを上書きしようとしているユーザのIDは以下のとおりです。

# id takeuchi
uid=1000(takeuchi),gid=513(Domain Users) groups=513(Domain Users),1000(dev)

アップデート前の最新パッケージであるsamba-3.0.10.21AXを使用した場合、かつOffice 2000を使用して上書き保存後は以下の通りとなってしまいます。

# file: 1.doc
# owner: takeuchi
# group: Domain\040Users
user::r--
user:odagiri:rwx
group::---
group:dev:rwx
mask::rwx
other::---

# file: 2.xls
# owner: takeuchi
# group: Domain\040Users
user::rwx
group::r--
other::r--

# file: 3.ppt
# owner: takeuchi
# group: Domain\040Users
user::r--
user:odagiri:rwx
group::---
group:dev:rwx
mask::rwx
other::---

この場合、WORDやPowerPointのファイルにて更新者であるtakeuchiが読み取り専用となってしまっています。

次にOffice XPを使用して上書き保存した場合は以下のようになってしまいます。

# file: 1.doc
# owner: takeuchi
# group: Domain\040Users
user::rwx
user:odagiri:rwx
group::---
group:dev:rwx
mask::rwx
other::---

保存できない(ダイアログが表示される)
# file: 2.xls
# owner: odagiri
# group: Domain\040Users
user::rwx
group::---
group:dev:rwx
mask::rwx
other::---

# file: 3.ppt
# owner: takeuchi
# group: Domain\040Users
user::rwx
user:odagiri:rwx
group::---
group:dev:rwx
mask::rwx
other::---

エクセルにて保存ができない問題が生じます。

[回答]

WORDやEXCELなどのMS-Office製品はファイルを編集し、上書き保存する場合(Notepadなどのテキストエディタとは異なり)正確な意味での上書きを行いません。そのため新規作成と同じアクセス権設定となってしまいます。

なぜこのような現象が起きてしまうかというとWORDは「文書.doc」を上書き保存する時、以下のシーケンスで行っている為です。

  1. 更新後のファイルを「文書A.doc」で新規作成
  2. 更新前のファイルを「文書.doc」→「文書B.doc」にRENMAE
  3. 「文書A.doc」→「文書.doc」にRENMAE
  4. 「文書B.doc」のアクセス権を「文書.doc」に設定
  5. 「文書B.doc」を削除

そこでこの問題を修正したSambaパッケージを以下のURLよりsamba-3.0.14aにアップデートする必要があります。
samba アップデート

また、/etc/samba/smb.confで各共有セクションまたはglobalセクションにて

  dos filemode = yes

の設定が必須となります。

パッケージのアップデート、設定ファイルの変更後、MS Office XP以上の製品についてはACLの変更などの問題なく上書き保存することが可能となります。

以下は[問題詳細]にて例としていたACLのファイルをSambaのバージョンをアップデートしてから上書き保存した場合です。

Office 2000を使用して上書き保存した場合。

# file: 1.doc
# owner: takeuchi
# group: Domain\040Users
user::rwx
user:odagiri:rwx
group::---
group:dev:rwx
mask::rwx
other::---

# file: 2.xls
# owner: takeuchi
# group: Domain\040Users
user::rwx
group::r--
other::r--

# file: 3.ppt
# owner: takeuchi
# group: Domain\040Users
user::rwx
user:odagiri:rwx
group::---
group:dev:rwx
mask::rwx
other::---

アップデート前の読み取り専用となってしまう件は解決しています。

次にOffice XPで上書き保存した場合。

# file: 1.doc
# owner: odagiri
# group: Domain\040Users
user::rwx
group::---
group:dev:rwx
mask::rwx
other::---

# file: 2.xls
# owner: odagiri
# group: Domain\040Users
user::rwx
group::---
group:dev:rwx
mask::rwx
other::---

# file: 3.ppt
# owner: odagiri
# group: Domain\040Users
user::rwx
group::---
group:dev:rwx
mask::rwx
other::---

ACLが変更されず、上書き保存することが可能です。

しかし、Office 2000以下を御利用の場合にはACLが変更となってしまう件については注意が必要となります。

以下の例を参考にして頂き、運用でカバーしてください。

(例はMS Office 2000での動作となります。)
1.docというWORDのファイルの上書き保存前のACLは以下のとおりです。

# setfacl 1.doc
# file: 1.doc
# owner: root
# group: sales
user::rwx
group::rwx
group:dev:rwx
mask::rwx
other::---

上記のACLではこのファイルに対して更新を実行できるユーザはroot、salesグループに所属するユーザ、devグループに所属するユーザとなります。
ここでプライマリーグループがDomain Usersであり、かつdevというグループに所属しているtakeuchiというユーザで上書き保存した場合、1.docのACLは以下のように変更されてしまいます。

# setfacl 1.doc
# file: 1.doc
# owner: takeuchi
# group: Domain Users
user::rwx
group::rwx
group:dev:rwx
group:sales:rwx
mask::rwx
other::---

もしくは

# setfacl 1.doc
# file: 1.doc
# owner: takeuchi
# group: Domain Users
user::rwx
group::r--
group:dev:rwx
group:sales:rwx
mask::rwx
other::---

つまり、更新したユーザのプライマリーグループ(上記の場合ですとDomain Users)に意図していないACLが付与されてしまうということになります。
これはSambaパッケージのアップデート前からの現象となっております。

しかし、確かにこのファイルのACLだけを見ますとDomain Userにフルアクセスが付与されているのですが、このファイルが保存されているディレクトリのACLにてDomain Usersへアクセス権を付与していなければファイルの更新等できません。

以下はディレクトリに対してのACLの例となります。

# getfacl test/
# file: test
# owner: root
# group: sales
user::rwx
group::rwx
group:dev:rwx
mask::rwx
other::---
default:user::rwx
default:group::rwx
default:group:sales:rwx
default:group:dev:rwx
default:mask::rwx
default:other::---

上記のACLを設定したディレクトリ内に保存されているファイルのACLに先ほどのファイルのACLのようにDomain Users等がフルコントロールで付与されていても更新されることはありません。

[更新履歴]

 2005年5月27日 新規作成


会社情報 採用情報 個人情報保護方針 情報セキュリティ基本方針 商標等取り扱い事項 English
Copyright(c)2000-2013 MIRACLE LINUX CORPORATION. All Rights Reserved.