DebianWheezyでSamba3.6.6を使用しています。
MacBookを使用して開発サーバー上のwwwファイルを変更できるようにしたい。そこで、sambaをセットアップし、/ var/wwwディレクトリの共有を作成しました。
接続するためにユーザーbart&rootをsambaに追加しました。そして、コマンドKを使用して接続し、次にsmb://192.168.2.100(私のSambaサーバー)を使用して接続します。
Apacheはwwwファイルのユーザーおよびグループとしてwww-dataを使用するため、権限のエラーを防ぐために、sambaでforceuserおよびforcegroupを使用します。
ただし、グループwww-dataを強制しますが、ユーザーを強制しません。私が作成するすべてのファイルは、グループwww-dataのrootによって所有されています。
エラーを探すために、/ var/log/sambaのログを追跡しましたが、sambaサービスを再起動したときにlog.smbdでのみエラーが見つかりました。ここのログを参照してください:
smbd version 3.6.6 started.
Copyright Andrew Tridgell and the Samba Team 1992-2011
[2013/09/23 11:14:22.601031, 0] printing/print_cups.c:110(cups_connect)
Unable to connect to CUPS server localhost:631 - Connection refused
[2013/09/23 11:14:22.602215, 0] printing/print_cups.c:487(cups_async_callback)
failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
そして、これが私のsmb.confです:
[global]
server string = %h server
map to guest = Bad User
obey pam restrictions = Yes
pam password change = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
usershare allow guests = Yes
panic action = /usr/share/samba/panic-action %d
idmap config * : backend = tdb
[homes]
comment = Home Directories
valid users = %S
create mask = 0700
directory mask = 0700
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
create mask = 0700
printable = Yes
print ok = Yes
browseable = No
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
[www]
comment = www
path = /var/www/
valid users = bart, root
admin users = bart, root
write list = bart, root
force user = www-data
force group = www-data
read only = No
有効なユーザーだけでなく、管理者ユーザーと書き込みリストにもwww-dataを追加してみました。もちろん、これは何の効果もありませんでした。
あなたは私を助けることができます?前もって感謝します!
この場合、オプションadmin users
はオプションforce user
をオーバーライドすると思います。したがって、ユーザーbart
として共有www
に接続すると、その共有に対する管理者権限が付与され、すべてのファイル操作はスーパーユーザーroot
の下で実行されます。
ユーザーbart
をadmin users
リストから削除し、サービスをリロードして、その動作を再度確認してください。
最後に、ユーザーbart
はそのディレクトリへの書き込み権限を持っている必要があることに注意してください。 ACLを使用してそれを実現するか、ユーザーをwww-data
グループに入れることができます。