LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   file-sharing using Samba? (https://www.linuxquestions.org/questions/slackware-14/file-sharing-using-samba-903730/)

dchmelik 09-18-2011 05:53 PM

file-sharing using Samba?
 
On my own system, I have problems sharing files with Samba. In KDE, I configured file-sharing and tried to share several folders. Then when I checked their properties, it said they were not shared. I read several articles about how to set up Samba and tried some things in smb.conf, but it still did this. Has anyone had this problem and figured out a solution? The folders I am sharing are set a+r, a+x, though I may not set a+w on them all.

BenCollver 09-18-2011 06:02 PM

Which distribution and release are you running?

Are you sure the smbd and nmbd services are running?

Maybe it is a KDE problem. Have you tried using the SWAT service? It gives a web-based GUI to configure SAMBA.

Have you tried to use the samba share? If so, did it work? If it failed, what error did you get?

Would you post the contents of your smb.conf?

dchmelik 09-18-2011 06:23 PM

I am using Slackware 13.37 and the 64-bit one on this computer. Ps showed smbd and nmbd (I had also tried restarting smbd after updating smb.conf.) I had not heard of SWAT. I was able to access my files on a Windows machine using Samba; I just cannot share files from GNU/Linux to Windows. I did try to access smb://var/spool/samba or something in a file manager, and it seemed to work, though there was of course nothing there. Below is my smb.conf (omitting the header.) My router can assign specific IP addresses to machines, which is why I edited the allowed IP addresses, though that should not really be relevant to the question.

Code:

[global]

# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
  workgroup = Mshome

# server string is the equivalent of the NT Description field
  server string = Samba Server

# Security mode. Defines in which mode Samba will operate. Possible
# values are share, user, server, domain and ads. Most people will want
# user level security. See the Samba-HOWTO-Collection for details.
  security = user

# This option is important for security. It allows you to restrict
# connections to machines which are on your local network. The
# following example restricts access to two C class networks and
# the "loopback" interface. For more examples of the syntax see
# the smb.conf man page
#;  hosts allow = 192.168.1. 192.168.2. 127.
  hosts allow = 192.168.1.101 192.168.1.102

# If you want to automatically load your printer list rather
# than setting them up individually then you'll need this
  load printers = yes

# you may wish to override the location of the printcap file
;  printcap name = /etc/printcap

# on SystemV system setting printcap name to lpstat should allow
# you to automatically obtain a printer list from the SystemV spool
# system
;  printcap name = lpstat

# It should not be necessary to specify the print system type unless
# it is non-standard. Currently supported print systems include:
# bsd, cups, sysv, plp, lprng, aix, hpux, qnx
;  printing = cups

# Uncomment this if you want a guest account, you must add this to /etc/passwd
# otherwise the user "nobody" is used
;  guest account = pcguest

# this tells Samba to use a separate log file for each machine
# that connects
  log file = /var/log/samba.%m

# Put a capping on the size of the log files (in Kb).
  max log size = 50

# Use password server option only with security = server
# The argument list may include:
#  password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name]
# or to auto-locate the domain controller/s
#  password server = *
;  password server = <NT-Server-Name>

# Use the realm option only with security = ads
# Specifies the Active Directory realm the host is part of
;  realm = MY_REALM

# Backend to store user information in. New installations should
# use either tdbsam or ldapsam. smbpasswd is available for backwards
# compatibility. tdbsam requires no further configuration.
;  passdb backend = tdbsam

# 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.
# Note: Consider carefully the location in the configuration file of
#      this line.  The included file is read at that point.
;  include = /usr/local/samba/lib/smb.conf.%m

# Configure Samba to use multiple interfaces
# If you have multiple network interfaces then you must list them
# here. See the man page for details.
;  interfaces = 192.168.12.2/24 192.168.13.2/24

# Browser Control Options:
# set local master to no if you don't want Samba to become a master
# browser on your network. Otherwise the normal election rules apply
;  local master = no

# OS Level determines the precedence of this server in master browser
# elections. The default value should be reasonable
;  os level = 33

# Domain Master specifies Samba to be the Domain Master Browser. This
# allows Samba to collate browse lists between subnets. Don't use this
# if you already have a Windows NT domain controller doing this job
;  domain master = yes

# Preferred Master causes Samba to force a local browser election on startup
# and gives it a slightly higher chance of winning the election
;  preferred master = yes

# Enable this if you want Samba to be a domain logon server for
# Windows95 workstations.
;  domain logons = yes

# if you enable domain logons then you may want a per-machine or
# per user logon script
# run a specific logon batch file per workstation (machine)
;  logon script = %m.bat
# run a specific logon batch file per username
;  logon script = %U.bat

# Where to store roving profiles (only for Win95 and WinNT)
#        %L substitutes for this servers netbios name, %U is username
#        You must uncomment the [Profiles] share below
;  logon path = \\%L\Profiles\%U

# Windows Internet Name Serving Support Section:
# WINS Support - Tells the NMBD component of Samba to enable it's WINS Server
;  wins support = yes

# 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

# WINS Proxy - Tells Samba to answer name resolution queries on
# behalf of a non WINS capable client, for this to work there must be
# at least one        WINS Server on the network. The default is NO.
;  wins proxy = yes

# DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names
# via DNS nslookups. The default is NO.
  dns proxy = no

# These scripts are used on a domain controller or stand-alone
# machine to add or delete corresponding unix accounts
;  add user script = /usr/sbin/useradd %u
;  add group script = /usr/sbin/groupadd %g
;  add machine script = /usr/sbin/adduser -n -g machines -c Machine -d /dev/null -s /bin/false %u
;  delete user script = /usr/sbin/userdel %u
;  delete user from group script = /usr/sbin/deluser %u %g
;  delete group script = /usr/sbin/groupdel %g


#============================ Share Definitions ==============================
[homes]
  comment = Home Directories
  browseable = no
  writable = yes

# Un-comment the following and create the netlogon directory for Domain Logons
; [netlogon]
;  comment = Network Logon Service
;  path = /usr/local/samba/lib/netlogon
;  guest ok = yes
;  writable = no
;  share modes = no


# Un-comment the following to provide a specific roving profile share
# the default is to use the user's home directory
;[Profiles]
;    path = /usr/local/samba/profiles
;    browseable = no
;    guest ok = yes


# NOTE: If you have a BSD-style print system there is no need to
# specifically define each individual printer
[printers]
  comment = All Printers
  path = /var/spool/samba
  browseable = no
# Set public = yes to allow user 'guest account' to print
  guest ok = no
  writable = no
  printable = yes

# This one is useful for people to share files
;[tmp]
;  comment = Temporary file space
;  path = /tmp
;  read only = no
;  public = yes

# A publicly accessible directory, but read only, except for people in
# the "staff" group
;[public]
;  comment = Public Stuff
;  path = /home/samba
;  public = yes
;  writable = no
;  printable = no
;  write list = @staff

# Other examples.
#
# A private printer, usable only by fred. Spool data will be placed in fred's
# home directory. Note that fred must have write access to the spool directory,
# wherever it is.
;[fredsprn]
;  comment = Fred's Printer
;  valid users = fred
;  path = /homes/fred
;  printer = freds_printer
;  public = no
;  writable = no
;  printable = yes

# A private directory, usable only by fred. Note that fred requires write
# access to the directory.
;[fredsdir]
;  comment = Fred's Service
;  path = /usr/somewhere/private
;  valid users = fred
;  public = no
;  writable = yes
;  printable = no

# a service which has a different directory for each machine that connects
# this allows you to tailor configurations to incoming machines. You could
# also use the %U option to tailor it by user name.
# The %m gets replaced with the machine name that is connecting.
;[pchome]
;  comment = PC Directories
;  path = /usr/pc/%m
;  public = no
;  writable = yes

# A publicly accessible directory, read/write to all users. Note that all files
# created in the directory by users will be owned by the default user, so
# any user with access can delete any other user's files. Obviously this
# directory must be writable by the default user. Another user could of course
# be specified, in which case all files would be owned by that user instead.
;[public]
;  path = /usr/somewhere/else/public
;  public = yes
;  only guest = yes
;  writable = yes
;  printable = no

# The following two entries demonstrate how to share a directory so that two
# users can place files there that will be owned by the specific users. In this
# setup, the directory should be writable by both users and should have the
# sticky bit set on it to prevent abuse. Obviously this could be extended to
# as many users as required.
;[myshare]
;  comment = Mary's and Fred's stuff
;  path = /usr/somewhere/shared
;  valid users = mary fred
;  public = no
;  writable = yes
;  printable = no
;  create mask = 0765

Thanks for the suggestions so far.

Woodsman 09-18-2011 07:13 PM

On your Samba server:

Run the testparm command to validate your smb.conf file. Then run

smbclient -L localhost

After entering a password you should see a list of available shares.

If you have another Slackware machine, you can run smbclient -L sambaserver, where sambaserver is the hostname of the Samba server. You should see the same result as when run locally.

BenCollver 09-18-2011 09:13 PM

I think it would be a good idea to troubleshoot samba first, and worry about KDE later.

When you tried to access samba from the Windows machine, what UNC path did you use, and what error did you get? It can help to note the hour and minute. Then look for more details in the messages around that time in the Event Log on the Windows machine and /var/log/samba* on the slackware machine.

dchmelik 09-19-2011 05:02 PM

I did what Woodsman said, and it seemed fine, but after entering the password I set up reading some tutorial, I always got the following error.

Code:

protocol negotiation failed: NT_STATUS_INVALID_NETWORK_RESPONSE
The man pages imply you do not need a password; I would rather not have one. As for testing Samba on the Windows machine, since I did not find a way to share the files in Slackware yet, I did not bother to try to access them on the Windows machine. I assume it would have actually worked because I think I accessed smb://var/spool/samba in a KDE file manager.

Thanks again, everyone, for the suggestions so far. It will not be until the weekend that I want to try to share the files, but I guess I could try SWAT or something if they can be accessed on the Slackware machine to test. I uncommented swat in inetd.conf; I will try it soon.

slackass 09-19-2011 05:18 PM

Here's a link to the guide I used to learn Samba setup.
http://alien.slackbook.org/dokuwiki/...lackware:samba

michaelk 09-19-2011 05:58 PM

Are you using windows 7?
It might be easier to use swat to configure your smb.conf

The only shares as seen in the smb.conf file is [homes] which is a special share that creates a home directory for all users. /var/spool/samba is not a share.

Can you see your linux computer from windows network neighbourhood? Another method would be to start a windows CMD box and type in the command:
net view \\IP_address_of_your_linux_box

Did you create a samba user via the smbpasswd command?
Try this example with one addition:
Code:

# This one is useful for people to share files
[tmp]
  comment = Temporary file space
  path = /tmp
  read only = no;
  public = yes
  browseable = yes

Be sure to restart samba. This share should be visible in windows network neighbourhood and is writeable by all.

dchmelik 12-21-2011 12:25 AM

Quote:

Originally Posted by slackass (Post 4476497)
Here's a link to the guide I used to learn Samba setup.
http://alien.slackbook.org/dokuwiki/...lackware:samba

It is helpful, but not perfect. It says if you follow the instructions to the letter (which I did except the username and every occurence of it in the commands) on windoze, you can connect to \\BOB\PUBLIC and see your ftp folders. I do not know what '\\BOB\PUBLIC' is. I may not have set up ftp folders. I got the following error.

Code:

WARNING: Your 'passdb backend' configuration includes multiple backends.  This
is deprecated since Samba 3.0.23.  Please check WHATSNEW.txt or the section 'Passdb
Changes' from the ChangeNotes as part of the Samba HOWTO collection.  Only the first
backend (tdbsam) is used.  The rest is ignored.

However, I was able to set up a share. Windoze lists my machine; I just do not know how to access it: apparently the shared folder in the example is not actually accessible. Maybe its path did not exist on my Slackware system; I will try more tomorrow.

dchmelik 12-21-2011 12:48 AM

I am trying some configurations like yours (also in smb.conf) and in slackass' link. Maybe the problem was not having the paths on Slackware, not having the same workgroup name, and I do not know how to connect from windoze, but my Slackware system was listed when adding a network place. I am able to access one of the paths using Samba on Slackware and will try windoze more tomorrow.

Quote:

Originally Posted by michaelk (Post 4476535)
Are you using windows 7?

No; windoze XP.

Quote:

It might be easier to use swat to configure your smb.conf
I doubt it: the docs in Slackware are missing from the link in /usr/doc/samba-3.5.8/docs/htmldocs/welcome.html, and at the Samba web site, swat is almost undocumented. Maybe it needs a password, but on the computer I am trying this on now, I followed slackass' link's instructions about using no password. It would be nice if swat Samba setup was documented without having to administrate swat itself.

Quote:

Can you see your linux computer from windows network neighbourhood?[...]
I forgot where that is, but my Slackware system was listed when adding a network place.

Quote:

Did you create a samba user via the smbpasswd command?
I do not recall about last time, but I did now. I will see if it works tomorrow.

Lexus45 12-21-2011 01:15 AM

Do you really need sharing Homes ?
If you want to share some other folders, you may try setting this option in the very beginning of the config file:
Code:

security = share
And it will not be superfluous to set this:
Code:

workgroup = WORKGROUP # <---- change to your Windows machines workgroup

dchmelik 12-22-2011 05:48 AM

Quote:

Originally Posted by BenCollver2 (Post 4475605)
I think it would be a good idea to troubleshoot samba first, and worry about KDE later.

When you tried to access samba from the Windows machine, what UNC path did you use, and what error did you get? It can help to note the hour and minute. Then look for more details in the messages around that time in the Event Log on the Windows machine and /var/log/samba* on the slackware machine.

For some reason I forgot to reply earlier. I was not even aware you can access it with a UNC path. I tried to access it in the network connections area, like by adding a network connection.

That did not work though, and everything else I have tried so far has not worked. Windows recognizes my Slackware system exists, which I can access a public folder on itself using Samba, but nothing more works on the Windows machine yet.

dchmelik 01-18-2013 11:00 PM

I decided to use SWAT for now and have started to figure it out (I just dislike having to use a password.)

Apparently putting 'guest only = Yes' under the guest share in smb.conf was one answer (and I saw many) that worked. I also smbclient to set the guest password blank.

I also decided to restrict the shared folders on OpenBSD by turning guest access off, but I could still access them from the two other machines without logging in.

So, my Slackware problem with this is solved--and maybe it would have worked if I initially set it up differently (since something in Samba seems to keep the same state for a long time)--but my Samba ones are not.

kikinovak 01-19-2013 01:11 AM

Here's my own Samba HOWTO for file sharing in a mixed environment :

http://www.microlinux.fr/slackware/L...amba-HOWTO.txt

dchmelik 01-19-2013 07:50 PM

Thanks. I will not need to do that yet, since I was talking about two different POSIX-style systems... but it might come in handy. I guess I will mark this solved if I can, since I solved the original problem after Ben mentioned SWAT and I decided to use a password.


All times are GMT -5. The time now is 06:17 PM.