パスワードで保護されたSambaの共有

パスワードで保護されたSambaの共有

サンバストランドが欲しいです。そのうちのいくつかは誰でも利用可能である必要があります(すでに機能しています)、一部はパスワード(およびユーザー名)で保護する必要があります。パスワードで保護されたフォルダの場合は、新しいユーザーを作成し、彼にSambaパスワードを提供し、私の共有の有効なユーザー=の下に彼の名前を書きました。次のコマンドは次のとおりです。

useradd joe
passwd joe
smbpasswd -a joe
valid users = vivek raj joe

私はこの小さなガイドに従いました。Sambaユーザーを追加。しかし、うまくいかないようです。 Windows 7では、パスワードが間違っているというメッセージが表示されます。

これは私のSamba設定ファイルです。

[global]
  server string = bananapi
  workgroup = WORKGROUP
  netbios name = %h
  security = user
  guest account = root
  socket options = TCP_NODELAY IPTOS_LOWDELAY SO_RCVBUF=65536 SO_SNDBUF=65536
  smb ports = 445
  max protocol = SMB2
  min receivefile size = 16384
  deadtime = 30
  os level = 20
  mangled names = no
  syslog only = yes
  syslog = 2
  name resolve order = lmhosts wins bcast host
  preferred master = auto
  domain master = auto
  local master = yes
  printcap name = /dev/null
  load printers = no
  browseable = yes
  writeable = yes
  printable = no
  encrypt passwords = true
  enable core files = no
  passdb backend = smbpasswd
  smb encrypt = disabled
  use sendfile = yes
 
 
# Using the following configurations as a template allows you to add
# writable shares of disks and paths under /storage
 
[Share]
  path = /storage/share
  available = yes
  browsable = yes
  public = yes
  writable = yes
  root preexec = mkdir -p /storage/share
 
[username]
  path = /storage/username
  available = yes
  browsable = yes
  public = no
  writable = yes
  valid users = joe
  root preexec = mkdir -p /storage/username

答え1

https://www.samba.org/samba/docs/using_samba/ch09.html

構成共有を使用してguest ok = yesゲストユーザーへのアクセスを許可できます。

共有レベルのセキュリティを使用している場合にのみ有効です。

情報が必要な場合は、他のウェブサイトの代わりにソースコードにアクセスすることをお勧めします。以下はSambaディレクトリです。 https://www.samba.org/samba/docs/using_samba/toc.html

あなたは使用しています

[GLOBAL]
security = user

これは最も制限的なものです。 Microsoft Windows システムを使用している人なら、誰でも Linux システムの Samba 共有にアクセスするには、その Linux システムにアカウントがあるか、知っておく必要があり、パスワードを知る必要があります。

私のsmb.confの一部は次のとおりです

[global]
        workgroup = WORKGROUP
        passdb backend = tdbsam
        security=user
        map to guest = Bad User
#       map to guest = nobody
        usershare allow guests = No
        server signing = auto

あなたと同様に、上記の場合、Linuxシステムアカウントを持たないWindowsシステムユーザーは誰でもいいえ接続すると、Microsoft Windowsが応答します。cannot access \\whatever_server_you_typed. これはMap to Guest = Bad User、「Bad User」が Linux システムのユーザーアカウントとして存在せず、空白があるため構文的にも無効であるためです。

Map to Guest = nobody ただし、nobody有効なLinuxアカウントを使用すると、Microsoft Windowsはユーザー名とパスワードの入力を求められます。これは、Microsoft Windowsに指定されたユーザー名がsamba-serverを実行しているLinuxシステムのユーザー名ではない場合に発生します。

以下でこのアプローチを選択すると、Security = User上記の方法を使用して潜在的にセキュリティ要件を満たすことができます。それ以外の場合は、security = share元の要求された操作を実行する必要があります。つまり、ネットワーク上の誰もがパスワードを要求せずに特定のフォルダにアクセスできるようにする必要があります。

~のため安全はいを選択してくださいユーザー、共有、サーバー、ドメイン。 Sambaのヘルプドキュメントには、各機能に利用可能な機能と利用できない機能が記載されています。

元に戻すことをお勧めしますguest account = root

ヘルプ文書でそのオプションが見つかりませんでした。guest account =(該当するオプションと同じように)同じであると仮定し、確実なセキュリティ影響のために不明なユーザーをrootアカウントにマッピングしたくありません。Map to GuestPublicGuest OK = yes

答え2

このビデオはそれを非常によく説明します。

https://www.youtube.com/watch?v=7Q0mnAT1MRg

古いsmb.confファイルをバックアップして最初から新しいファイルを作成すると、うまくいくと思います。

/etc/samba フォルダに移動します。

sudo mv smb.conf smb.conf.bak

smb.confファイルに[global]設定を作成し、フォルダごとに別々のファイルshare.confを作成できます。

新しい smb.conf ファイルを作成します。

sudo nano smb.conf

smb.confから:

[global]
server string = File server
workgroup = WORKGROUP
security = user
map to guest = Bad User
name resolve order = bcast host
include = /etc/samba/shares.conf

share.conf ファイルを作成します。公的に正常に共有したので、ここではパスワード保護オプションを表示します。

Stock.conf:

[Private Share]

path=[give here the path to the folder to be shared]
force user = smbuser
force group = smbgroup
create mask = 0664
force create mode = 0664
directory mask = 0775
force directory mode = 0775
writable = yes

システムグループsmuserを作成します。

sudo groupadd --system smbgroup

これで、ユーザーsmbuserがsmbgroupに作成されますが、ホームディレクトリは作成されず、システムにログインする機能も拒否されます。

sudo useradd --system --no-create-home --group smbgroup -s /bin/false smbuser

共有したいフォルダの所有権を変更してください。

sudo chown -R smbuser:smbuser [folder path]

書き込み許可

sudo chmod -R g+w [folder path]

smbuserにSambaパスワードを追加してください。これは、共有フォルダを表示するために認証するためにWindowsが提供する必要があるパスワードです。

sudo smbpasswd -a smbuser
New SMB password:[password]
Retype new SMB password:[password]

ここで smbd を再起動します。

sudo systemctl restart smbd

ウィンドウで実行\\[ip address of samba system]

ユーザー名とパスワードの入力を求められます。ユーザー名はsmbuserあなたが提供し、パスワードはあなたが提供します。

お役に立てば幸いです。

答え3

許可されたユーザーを含むグループ(「restrictedgroup」など)を作成し、それをsmb.confに指定する必要があります。

有効ユーザー = @restrictedgroup

これにより、制限されたグループのユーザーだけがフォルダにアクセスできます。

関連情報