web-dev-qa-db-ja.com

Ubuntuからのsamba共有VMは 'force user'で失敗します

2つのUbuntu VM(開発マシンとしてVirtualBoxで実行されているサーバー)があります。古いボックス(ubuntu 12.04 LTS)はsambaを正常に実行しており、すべての共有が正常に機能しています。新しいマシンを作成するときに、共有情報(設定ファイル全体ではなく)を新しいボックス(ubuntu 14.04 LTS)にコピーしましたが、共有の多くが機能していません。

この共有ISは古いものと新しいもので作業しています:

[username]
path = /home/username
available = yes
valid users = username
read only = no
browseable = yes
public = yes
writable = yes
force user = username
force group = username
create mask = 0644
directory mask = 0755
hide dot files = no
follow symlinks = no

この共有は、新しいubuntu 14.04 LTSでは失敗します(上記と同じですが、異なる「ユーザー/グループの強制」:

[etc]
path = /etc
available = yes
valid users = username
read only = no
browseable = yes
public = yes
writable = yes
force user = root
force group = root
create mask = 0644
directory mask = 0755
hide dot files = no
follow symlinks = no

同様の方法で「ユーザー= www-data」を強制する他の共有もありますが、これも失敗します。

接続しようとすると(osxから)表示されるのは、「「etc」の元のアイテムが見つからないため、操作を完了できません。」 (テストするウィンドウボックスはありません)。

PS:smb.confは基本的に「Vanilla」です。それ以外の場合は、共有自体の外部で編集を行っていません。

ログをざっと見てきましたが、ログに記録されるのはlog.workstationだけです:

[2014/07/27 09:02:06.173271,  0] ../source3/param/loadparm.c:4094(check_usershare_stat)
  check_usershare_stat: file /var/lib/samba/usershares/ owned by uid 0 is not a regular file

これを解決し始める場所を見つけるのに助けがあれば幸いです。明らかに、「ユーザーの強制」と「グループの強制」に関係していますが、それ以外はどこを見るべきかわかりません。

1
cmroanirgo

ServerFaultでのこの回答 に出くわしたので、有効なユーザーのリストに「root」を追加する必要があるという手がかりが得られました。

以前は機能していなかった2つの共有が、現在は機能しています。 「有効なユーザー」の横にそれぞれ「www-data」と「root」を追加しました。

[sites]
path = /home/username/sites
available = yes
valid users = username,www-data
read only = no
browseable = yes
public = yes
writable = yes
force user = www-data
force group = www-data
create mask = 0644
directory mask = 0755
hide dot files = no
follow symlinks = no
;wide links = no

[etc]
path = /etc
available = yes
valid users = username,root
#guest ok = yes
#guest only = yes
read only = no
browseable = yes
public = yes
writable = yes
force user = root
force group = root
create mask = 0644
directory mask = 0755
hide dot files = no
follow symlinks = no

いずれかの方法。この答えは、同じ問題に出くわすかもしれない他の人のためのものです。 (いいえ、動作する理由usedがわかりませんが、アップグレード時に壊れました)

1
cmroanirgo