web-dev-qa-db-ja.com

Sambaforceユーザーが機能しない

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を追加してみました。もちろん、これは何の効果もありませんでした。

あなたは私を助けることができます?前もって感謝します!

2
BonifatiusK

この場合、オプションadmin usersはオプションforce userをオーバーライドすると思います。したがって、ユーザーbartとして共有wwwに接続すると、その共有に対する管理者権限が付与され、すべてのファイル操作はスーパーユーザーrootの下で実行されます。

ユーザーbartadmin usersリストから削除し、サービスをリロードして、その動作を再度確認してください。

最後に、ユーザーbartはそのディレクトリへの書き込み権限を持っている必要があることに注意してください。 ACLを使用してそれを実現するか、ユーザーをwww-dataグループに入れることができます。

1
dsmsk80