質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

samba

Samba(サンバ)とは、UNIX系OSにおいてSMBを用いたサービスを提供するためのソフトウェアです。ネットワークを通じて、ファイル共有及びプリンタ共有などのサービスをWindowsマシンへと提供します。ライセンス体系GPLに基づきフリーソフトウェアとして公開されています。

Q&A

解決済

4回答

22659閲覧

Sambaで共有、同じような設定なのに特定のユーザーしかアクセスできない(はじかれる

ElecDove

総合スコア254

Windows 7

Microsoft Windows 7は過去にリリースされたMicrosoft WindowsのOSであり、Windows8の1代前です。2009年の7月にリリースされ販売されました。Windows7の前はWindowsVistaで、その更に3年前にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

samba

Samba(サンバ)とは、UNIX系OSにおいてSMBを用いたサービスを提供するためのソフトウェアです。ネットワークを通じて、ファイル共有及びプリンタ共有などのサービスをWindowsマシンへと提供します。ライセンス体系GPLに基づきフリーソフトウェアとして公開されています。

0グッド

1クリップ

投稿2016/09/18 15:23

こんばんは
お世話になります。

ちょっとTeratailの趣旨から外れてしまうような気もしたのですが、皆様のお力をお貸しいただけますと助かります。

現在自宅LANでUbuntu(14.04.5 LTS)とSambaで共有フォルダを作っています。

その共有フォルダには、Valid Users=hogeのような形で、アクセスできるユーザーを制限しているのですが、Win7からアクセスしようとすると、hogeというユーザーはログインできるのに、fugaというユーザーで入ろうとすると

エラー画面

このようなエラーが出ます。(このダイアログが出る前に「ユーザー名とパスワードを入力」がでてきて、正しいユーザー名とパスワードを入力した結果)

#想定どおりにアクセスできるフォルダ [regza] comment = REGZA REC browseable = yes readonly = no writeable = yes path = /mnt/sdc1/tvrec/rec/ force create mode = 664 force directory mode = 775 force user = tvrec valid users = tvrec guest ok = no #これがはじかれるフォルダ [minecraft] comment = minecraft saves browseable = yes readonly = no writeable = yes path = /home/steve/minecraft/ force create mode = 664 force directory mode = 775 force user = steve valid users = steve guest ok = no

/mnt/sdc1/tvrec/をllすると

drwxrwxr-x 3 tvrec hogehoge 36864 9月 18 23:04 rec/

になります。(hogehogeは私が普段使用しているアカウント)


/home/steve/をllすると

drwxrwxr-x 20 steve steve 4096 7月 30 17:37 minecraft/

となります。


コマンドプロンプトから

net use * /delete

などとしても結果は変わりませんでした。

何かの拍子に入れたりすることもありました

ほかに何を確認すればよろしいでしょうか

教えていただけますと幸いです。


下にsmb.confを全文貼り付けさせていただきます。
一部のユーザー名のみ、文字列を変更させていただきました
文字数制限に引っかかったのでいくつかのコメント行(#から始まる説明?の行)を削除しました

#======================= Global Settings ======================= [global] dos charset = CP932 unix charset = UTF-8 #Regzaでの録画に必要みたい unix extensions = no ## Browsing/Identification ### # Change this to the workgroup/NT-domain name your Samba server will part of workgroup = WORKGROUP # server string is the equivalent of the NT Description field server string = %h server (Samba, Ubuntu) # Windows Internet Name Serving Support Section: # WINS Support - Tells the NMBD component of Samba to enable its WINS Server # wins support = no # WINS Server - Tells the NMBD components of Samba to be a WINS Client # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both ; wins server = w.x.y.z # This will prevent nmbd to search for NetBIOS names through DNS. dns proxy = no #### Networking #### # The specific set of interfaces / networks to bind to # This can be either the interface name or an IP address/netmask; # interface names are normally preferred ; interfaces = 127.0.0.0/8 eth0 ; bind interfaces only = yes #### Debugging/Accounting #### log file = /var/log/samba/log.%m # Cap the size of the individual log files (in KiB). max log size = 100000 # If you want Samba to only log through syslog then set the following # parameter to 'yes'. # syslog only = no # We want Samba to log a minimum amount of information to syslog. Everything # should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log # through syslog you should set the following parameter to something higher. syslog = 0 # Do something sensible when Samba crashes: mail the admin a backtrace panic action = /usr/share/samba/panic-action %d ####### Authentication ####### # Server role. Defines in which mode Samba will operate. Possible # values are "standalone server", "member server", "classic primary # domain controller", "classic backup domain controller", "active # directory domain controller". # # Most people will want "standalone sever" or "member server". # Running as "active directory domain controller" will require first # running "samba-tool domain provision" to wipe databases and create a # new domain. server role = standalone server # If you are using encrypted passwords, Samba will need to know what # password database type you are using. passdb backend = tdbsam obey pam restrictions = yes # This boolean parameter controls whether Samba attempts to sync the Unix # password with the SMB password when the encrypted SMB password in the # passdb is changed. unix password sync = yes # For Unix password sync to work on a Debian GNU/Linux system, the following # parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for # sending the correct chat script for the passwd program in Debian Sarge). passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . # This boolean controls whether PAM will be used for password changes # when requested by an SMB client instead of the program listed in # 'passwd program'. The default is 'no'. pam password change = yes # This option controls how unsuccessful authentication attempts are mapped # to anonymous connections map to guest = bad user ########## Domains ########### # # The following settings only takes effect if 'server role = primary # classic domain controller', 'server role = backup domain controller' # or 'domain logons' is set # # It specifies the location of the user's # profile directory from the client point of view) The following # required a [profiles] share to be setup on the samba server (see # below) ; logon path = \\%N\profiles\%U # Another common choice is storing the profile in the user's home directory # (this is Samba's default) # logon path = \\%N\%U\profile # The following setting only takes effect if 'domain logons' is set # It specifies the location of a user's home directory (from the client # point of view) ; logon drive = H: # logon home = \\%N\%U # The following setting only takes effect if 'domain logons' is set # It specifies the script to run during logon. The script must be stored # in the [netlogon] share # NOTE: Must be store in 'DOS' file format convention ; logon script = logon.cmd # This allows Unix users to be created on the domain controller via the SAMR # RPC pipe. The example command creates a user account with a disabled Unix # password; please adapt to your needs ; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u # This allows machine accounts to be created on the domain controller via the # SAMR RPC pipe. # The following assumes a "machines" group exists on the system ; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u # This allows Unix groups to be created on the domain controller via the SAMR # RPC pipe. ; add group script = /usr/sbin/addgroup --force-badname %g ############ Misc ############ # Using the following line enables you to customise your configuration # on a per machine basis. The %m gets replaced with the netbios name # of the machine that is connecting ; include = /home/samba/etc/smb.conf.%m # Some defaults for winbind (make sure you're not using the ranges # for something else.) ; idmap uid = 10000-20000 ; idmap gid = 10000-20000 ; template shell = /bin/bash # Setup usershare options to enable non-root users to share folders # with the net usershare command. # Maximum number of usershare. 0 (default) means that usershare is disabled. ; usershare max shares = 100 # Allow users who've been granted usershare privileges to create # public shares, not just authenticated ones usershare allow guests = yes #======================= Share Definitions ======================= # Un-comment the following (and tweak the other settings below to suit) # to enable the default home directory shares. This will share each # user's home directory as \\server\username ;[homes] ; comment = Home Directories ; browseable = no ; read only = no ; create mask = 0700 ; directory mask = 0700 # By default, \\server\username shares can be connected to by anyone # with access to the samba server. # Un-comment the following parameter to make sure that only "username" # can connect to \\server\username # This might need tweaking when using external authentication schemes ; valid users = %S # Un-comment the following and create the netlogon directory for Domain Logons # (you need to configure Samba to act as a domain controller too.) ;[netlogon] ; comment = Network Logon Service ; path = /home/samba/netlogon ; guest ok = yes ; read only = yes ;[profiles] ; comment = Users profiles ; path = /home/samba/profiles ; guest ok = no ; browseable = no ; create mask = 0600 ; directory mask = 0700 [printers] comment = All Printers browseable = no path = /var/spool/samba printable = yes guest ok = no read only = yes create mask = 0700 # Windows clients look for this share name as a source of downloadable # printer drivers [print$] comment = Printer Drivers path = /var/lib/samba/printers browseable = yes read only = yes guest ok = no ; write list = root, @lpadmin [regza42z1] comment = REGZA REC browseable = yes readonly = no writeable = yes path = /mnt/sdc1/tvrec/rec/ force create mode = 664 force directory mode = 775 force user = tvrec valid users = tvrec guest ok = no [minecraft] comment = minecraft saves browseable = yes readonly = no writeable = yes path = /home/steve/minecraft/ force create mode = 664 force directory mode = 775 force user = steve valid users = steve guest ok = no [all] comment = All_Dir browseable = no readonly = no writeable = yes path = / force create mode = 664 force directory mode = 775 force user = hogehoge #valid users = hogehoge guest ok = no

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

今まで他のご回答者様の回答がマッチしていれば読み飛ばしてください。

該当ユーザ/該当ディレクトリに対して接続できる/できないであれば、対象のsambaアカウントが追加されていない可能性があります。

sambaはUnixアカウントの他、マッピングされたsambaアカウントが必要になります。
sambaの仕組みを熟知している方であれば、片方のsambaアカウントを作成してもう一方のsambaアカウントを作成しないということはないと思うので可能性は薄いですが。

以下のコマンドで接続できないといわれるアカウントが表示されるか確認してみては如何でしょうか?

$ pdbedit -L

もし、表示されなければ、以下のコマンドで追加して上で接続確認してみてください。

$ smbpasswd -a ユーザ名 パスワード

なお、他のご回答者様で回答あるとおり、Windows smb接続は1ユーザセッションに限られております。
別ユーザで接続した履歴があるのであれば、以下のコマンドでセッション情報を削除した後に別ユーザで接続確認を行う必要があります。

net use * /delete

投稿2016/09/20 03:44

over

総合スコア4309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ElecDove

2016/09/20 03:57

回答ありがとうございます。 >sambaはUnixアカウントの他、マッピングされたsambaアカウントが必要になります。 この仕組み?は良く分かっていないのですが、おまじない感覚で追加しております 今回の事象の原因はよくわかりませんが、いろいろゴニョゴニョしていたらnet use * /deleteで思うように動くようになりました
guest

0

net use * /delete

実行後にクライアントPCを再起動しても、別IDからログインできませんか?

投稿2016/09/20 02:25

act823

総合スコア266

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

コマンドプロンプトから
net use * /delete

などとしても結果は変わりませんでした。
ほかに何を確認すればよろしいでしょうか

net useで「一覧にエントリが存在しません。」と表示されること。

投稿2016/09/18 22:48

otn

総合スコア84423

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ElecDove

2016/09/20 02:02

回答ありがとうございます。 そのように表示されました
guest

0

ベストアンサー

エラーメッセージが共有の制限のようなので、smb.confの以下の設定を適当な数字にしてみてはどうでしょう。

conf

1# Maximum number of usershare. 0 (default) means that usershare is disabled. 2; usershare max shares = 100

上記のパラメータ調べてみたら、共有フォルダの数を指定するもので関係ないものでした。(´・ω・`)

改めて「samba 共有設定 複数ユーザ 複数接続」で調べました。

別のユーザー名での認証情報が残っていると表示されるメッセージで間違いないでしょうが、「net use * /delete」しているので問題ないように思えます。自分の環境で試してみました。

  • Explolerで共有フォルダを開く。
  • net useでセッション確認する。
    ⇒以下の通り表示されなかった。

ps1

1PS 09:35:35> net use 2新しい接続は記憶されます。 3 4一覧にエントリが存在しません。
  • 別ユーザで接続する。
    ⇒どこかに認証情報が残っているようで、エラーメッセージが表示された。

ps1

1PS 09:35:39> net use \\192.168.0.200\steve /USER:steve 2システム エラー 1219 が発生しました。 3 4同じユーザーによる、サーバーまたは共有リソースへの複数のユーザー名での複数の接続は許可されません。サーバーまたは共有リソ 5ースへの以前の接続をすべて切断してから、再試行してください。
  • Explorerを閉じてから、再度別ユーザで接続する。
    ⇒パスワード入力を求められるようになった。(正常)

ps1

1PS 09:37:38> net use \\192.168.0.200\steve /USER:steve 2\\192.168.0.200\steve のパスワードまたはユーザー名が無効です。 3 4'steve' のパスワードを入力してください。'192.168.0.200' に接続します:

net useの一覧にエントリ表示されずに、Explorerのプロセス内で保持している認証情報があるようです。

【結論】

サーバ上の共有フォルダに別ユーザでアクセスする場合は、以下の操作を行う。

  • net use リモート名 /deleteで共有フォルダを切断する。
  • 共有フォルダを開いていたExplorerを全て終了する。

【補足】

普段自分が使用している環境ではExplorerで共有フォルダを開くと、net useの一覧にエントリが表示されるので、一覧にエントリが表示されていないことを確認できているので別の問題があるのかと考えたのですが、そうでない場合もあることがわかりました。
表層の使い勝手について互換性を保たせながら、内部の仕組みを変えていったことで何かしら原因があるのだと思いますが、とりあえず今のところは「net useで一覧にエントリが表示されなかったとしても、必ずしも共有接続が無いわけではない」ということを覚えておけば問題ないかなと思います。

投稿2016/09/18 21:28

編集2016/09/19 01:15
tkmtmkt

総合スコア1800

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ElecDove

2016/09/20 03:48

回答ありがとうございます いただいた回答を元に、いろいろ試していたのですが、うまい具合に動くようになりました 何がいけなかったのかは結局分からずじまいですが、今はnet use で/deleteを実行後であれば別のユーザーでINできるようになりました。 >net useの一覧にエントリ表示されずに、Explorerのプロセス内で保持している認証情報があるようです。 非常に分かりにくいですね、、、需要がない、とは思えないのですが・・・。 ところで、 >共有フォルダを開いていたExplorerを全て終了する。 これは、ウインドウを閉じるという意味でしょうか それとも、プロセスごと殺すということでしょうか
tkmtmkt

2016/09/20 10:31

Windows7はExplorerのウィンドウ毎に別プロセスになっているようなので、ウィンドウを閉じるとプロセスも終了するようです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問