
Ubuntu日本語フォーラム
ログインしていません。
たぶんSamba固有の問題で、Ubuntuのとこで聞くことではないかもしれませんが、Ubuntuサーバ構築ガイドと言う書籍を見ながら作業をしており、ぜひ、こちらでご助言を頂ければ、幸いです。
先日、とあるサーバーを、PHP+Sambaで構築しました。これは、PHPのスクリプトでウエブ上から多数のファイルをアップロードしてもらい、それをSambaでまとめて受け取ると言うものです。
そこで、Sambaで公開したフォルダにパスワードをつけたいのです。ここで、ユーザー名とパスワードは1組だけで、許可された複数の利用者が、それを使って認証を受け、フォルダをコピーします。ただし、接続するときには、Windows上でこの1組ユーザー名などではなく、各自のユーザー名でログオンしている状態で接続します。
前任者が構築したシステムで、その時には、このような機能が実現していました。そこで、Sambaの設定を、以下のようにしてみたのですが、うまく認証してくれません。確認すべき点をご助言頂ければ、幸いです。よろしくお願いします。
smb.confの関係ありそうな部分を抜粋します。なお、以下の設定では、teacherユーザーに対して、smbpasswdでパスワードを設定しています。
[global]
dos charset = EUCJP-MS
unix charset = CP932
display charset = CP932
workgroup = DALAB
server string = %h server (Samba, Ubuntu)
interfaces = eth2
bind interfaces only = Yes
security = SHARE
obey pam restrictions = Yes
passdb backend = tdbsam
guest account = www-data
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\sUNIX\spassword:* %n\n *Retype\snew\sUNIX\spassword:* %n\n *passwd:*password\supdated\ssuccessfully* .
unix password sync = Yes
syslog = 0
syslog only = Yes
log file = /var/log/samba/log.%m
max log size = 1000
dns proxy = No
panic action = /usr/share/samba/panic-action %d
invalid users = root
[share] ⇒ これは、自由にアクセスできるところで、機能しています。
path = /home/archi/share
read only = No
force create mode = 0777
force directory mode = 0777
guest ok = Yes
[file] ⇒ これが、制限をかけたいところで、teacherユーザーが対象です。
comment = Upload File Box
path = /var/www/upload3/file
valid users = teacher, dalab
force user = www-data
force group = www-data
read only = No
force create mode = 0777
force directory mode = 0777
guest ok = Yes
オフライン
うまく認証しないというのはどういう状況ですか? 正しいユーザでもログインできないのでしょうか。それとも誰でもログイン出来てしまうのでしょうか。現象を詳しく書いておけば、詳しい人がアドバイスをしてくれるかもしれません。
私はあまり詳しくありませんが、気になったのは以下の点です。
security が share では、ユーザ名は送信されないと記憶しています。特定のユーザで認証するならば user 認証ではないのでしょうか?
Ubuntu でサーバを動かしているなら、unix charset と display charset は utf-8 になるのが自然な気がします。対して dos charset は cp932 では?
オフライン
ご指摘ありがとうございます。接続がうまくできないと言うのは、マシンによって異なるのですが、2つの状況になります。1:制限をかけたフォルダにアクセスすると、アクセスする権利がないとして、拒否されてしまうのです。パスワードを聞いても来ないです。2:パスワードを聞いてくるが、ユーザー名がguestになっている。対応するパスワードがないので、接続できない。
漢字コードについては、以前の記事でご相談し、PHPのコード変換のところで、試行錯誤して、この形で一応満足いく状態になったものです。まずは、ご指摘のsecurityなどを変更してみることにします。ご助言、ありがとうございます。
オフライン
ご助言に従って、Securityをuserにすると、自由にアクセスして良いフォルダまで、パスワードを要求され、ユーザー認証がうまくできず、どちらもアクセスできなくなってしまいました。
ただ、以前の動作していた環境でのsmb.confを見ると、確かにuserになっていたので、それが正解だと思います。あとは、ユーザー認証がうまくできないことが問題ですね。
オフライン
私も guest ok を指定していればパスワードは要求されないと思っていたのですが、調べてみると share 共有以外でゲスト共有を行う場合は、ゲストへのマッピングが必要になるようです。(認証に成功するまでリソース名が送信されないので、そのリソースがゲストアクセス可能か判断できないため)
http://www.samba.gr.jp/project/translation/2.2/htmldocs/smb.conf.5.html
ここを通して読んでみるといいかもしれません。
さしあたり security を user にして、global に map to guest = Bad User を指定してみてはどうでしょうか。私の手元の環境ではそれで問題なく動作しているように見えます。
オフライン
mizuno による投稿:
さしあたり security を user にして、global に map to guest = Bad User を指定してみてはどうでしょうか。私の手元の環境ではそれで問題なく動作しているように見えます。
まさにご指摘の通りでした。上記のように設定し、問題はsmbpasswdにおいて、-aで設定したつもりだったのですが、-Uで実行するとユーザー認証ができるようでした。
今回は2件続けて、このフォーラムの皆さんに助けていただき、サーバーを構築することができました。本当に助かりました。ありがとうございます。
オフライン