
Samba の設定に問題があります。
私は Ubuntu システム (A と呼ぶことにします) を持っています。このシステムには最近まで Ubuntu 16.04 が入っていましたが、現在は Ubuntu 20.04 が入っています。この A コンピューターは、Ubuntu 18.04 が入っている 2 台目のコンピューター (B と呼ぶことにします) に、Samba (その他の方法) 経由で接続され、これらのシステム間でファイルをコピーしていました。
各システムに複数のフォルダがあり、16.04ではすべて正常に動作しました
フォーマットして Ubuntu 20.04 に移行した後、接続は片方向のみになりました。具体的には、B は A のフォルダーを表示できなくなりました。ただし、フォルダーはファイルで共有されているように見えます。一方、A から B の共有フォルダーにアクセスすると、すべて正常に動作します。いくつかの解決策を試しましたが、問題を解決できるものはないようです (明らかに、ここで何かが欠けています)。
/etc/samba/smb.cfg
たとえば、私のsamba confファイル( )では、両方のシステムで、[global]セクションにこれがあります
workgroup = WORKGROUP
client min protocol = NT1
server min protocol = NT1
これは質問で提案された解決策でした。これにより、B から共有フォルダーにアクセスしたときに実際のエラーが発生しなくなりましたが、実際には共有フォルダーは表示されません (空のフォルダーがあるだけです)。
私の最後の試みは、これを使用した手順でしたサイト:
匿名の共有は(理論的には)以下を追加することで共有されていました:
[Anonymous]
path = /samba/anonymous
browsable = yes
writable = yes
read only = no
force user = nobody
#======================= Share Definitions =======================
Aシステムのみ。
これにより、共有フォルダの B から見ると、 という名前のフォルダが作成されますAnonymous
が、実際にはアクセスできません。パスワードが必要ですが、パスワードは取得されません。samba パスワードもユーザー パスワードも取得されません。とにかく、これはシステム内の存在しないフォルダを指しています (既存のフォルダで試しましたが、何も変わりません)。しかし、これをすべての共有フォルダに適用しなければならない場合、それほど便利ではないようです。
それで、2 つの Ubuntu システム間でフォルダーを適切に共有する方法を知っている人はいますか? 私の知る限り、Samba と Samba クライアントは両方のシステムにインストールされています。
編集(@Morbious1 からのコメントリクエストを受けて):
$testparm -s
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
# Global parameters
[global]
client min protocol = NT1
log file = /var/log/samba/log.%m
logging = file
map to guest = Bad User
max log size = 1000
obey pam restrictions = Yes
pam password change = Yes
panic action = /usr/share/samba/panic-action %d
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
passwd program = /usr/bin/passwd %u
server min protocol = NT1
server role = standalone server
server string = %h server (Samba, Ubuntu)
unix password sync = Yes
usershare allow guests = Yes
usershare owner only = No
idmap config * : backend = tdb
[Anonymous]
force user = nobody
path = /home/gorfanidis/share_testing
read only = No
[printers]
browseable = No
comment = All Printers
create mask = 0700
path = /var/spool/samba
printable = Yes
[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
そして
$net usershare info --long
[python_projects]
path=/home/xxxx/python_projects
comment=
usershare_acl=Everyone:F,
guest_ok=y
[misc_cerberus]
path=/home/xxxx/misc
comment=
usershare_acl=Everyone:F,
guest_ok=y
[EfficientDet]
path=/home/xxxx/python_projects/EfficientDet
comment=
usershare_acl=Everyone:F,
guest_ok=n
[surveillance object detection]
path=/home/xxxx/Datasets/surveillance object detection
comment=
usershare_acl=Everyone:F,
guest_ok=n
答え1
あなたが従った HowTo では、この共有定義によりゲスト アクセスが許可されると述べられています。
[Anonymous] force user = nobody path = /home/gorfanidis/share_testing read only = No
それは逆の効果をもたらします。
ゲストがアクセスできるようにし、Linux の権限に関する問題が発生しないようにするには、次の変更をお勧めします。
[Anonymous]
force user = gorfanidis
path = /home/gorfanidis/share_testing
read only = No
guest ok = yes
わかりました。これは機能しているようです。しかし、ファイル (nautilus) から自動的に機能させるという段階からは後退しています。これを実現する方法はありますか?
これがシングルユーザーシステムの場合、force user = gorfanidis
smb.confの[global]セクションに次の行を追加します。ワークグループ = WORKGROUPそこに置くと、作成方法に関係なく、作成するすべての共有に適用されます。