LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 07-02-2006, 10:59 PM   #1
tubatodd
Member
 
Registered: Jun 2003
Location: Birmingham, Alabama (USA)
Distribution: Slackware
Posts: 351

Rep: Reputation: 30
Configuring Samba to communicate with an XP machine


Well, I installed the samba package and rc.samba runs on startup. How in the world do I setup my Slack box to communicate with my XP machine? I would like to share the printer attached to the XP machine and mount the hard drive on that machine. Thanks!
 
Old 07-02-2006, 11:30 PM   #2
Nylex
LQ Addict
 
Registered: Jul 2003
Location: London, UK
Distribution: Slackware
Posts: 7,464

Rep: Reputation: Disabled
Is the printer shared on the XP machine? If so, you'll need to setup CUPS on Slack. Assuming you have it installed (and the daemon is running), you point your browser to http://localhost:631 and add a printer. It should be easy enough to do. When it asks you to choose "Device", you select the "Windows printer via SAMBA" option. The next screen asks for the URI of the device. For my Windows printer, I use: smb://guest:nopass@hostname/printer, obviously substituting "hostname" and "printer" with the machine and printer names, respectively. If you use a username and password for the XP machine, then put those before and after the colon.

OK, now for mounting shares. As with mounting local devices, you need a mount point, so create one of those first. You use smbmount to do the mounting. The syntax (from the man page) is as follows:

smbmount service mount point -o options,

where service is what you want to mount (e.g. if I wanted to mount a shared folder called "Shared", located on a machine called "MyBox", I'd use "//MyBox/Shared" here). You don't have to specify options if you don't want/need to. Check the smbmount man page for info about the options you can use.

You can also add the service to your fstab, so it's automatically mounted on boot for example.

Also, look at the smbclient command ("man smbclient").

Edit: what does your /etc/samba/smb.conf look like?

Last edited by Nylex; 07-02-2006 at 11:37 PM.
 
Old 07-03-2006, 07:35 PM   #3
tubatodd
Member
 
Registered: Jun 2003
Location: Birmingham, Alabama (USA)
Distribution: Slackware
Posts: 351

Original Poster
Rep: Reputation: 30
Code:
root@todd:/etc/rc.d# ./rc.samba start
Starting Samba:  /usr/sbin/smbd -D
                 /usr/sbin/nmbd -D
root@todd:/etc/rc.d# smbmount //Home/stuff /mnt/xpdrive/
529: Connection to Home failed
SMB connection failed
Now on my XP machine I decided to share my "c:\stuff" folder as a test to see if I could get samba to work. As you can see by the results above, I couldn't mount the folder. What am I doing wrong?

Here is my smb.conf. By the way, after I installed samba there was ONLY a samba.conf-sample file. I edited the line that said "workgroup=" to "workgroup=Home" which is the name I gave the workgroup on my XP machine. That was the ONLY line that I changed.

Code:
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options (perhaps too
# many!) most of which are not shown in this example
#
# For a step to step guide on installing, configuring and using samba, 
# read the Samba HOWTO Collection.
#
# Any line which starts with a ; (semi-colon) or a # (hash) 
# is a comment and is ignored. In this example we will use a #
# for commentry and a ; for parts of the config file that you
# may wish to enable
#
# NOTE: Whenever you modify this file you should run the command "testparm"
# to check that you have not made any basic syntactic errors. 
#
#======================= Global Settings =====================================
[global]

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

# 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 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.

# 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

# Most people will find that this option gives better performance.
# See the chapter 'Samba performance issues' in the Samba HOWTO Collection
# and the manual pages for details.
# You may want to add the following on a Linux system:
#         SO_RCVBUF=8192 SO_SNDBUF=8192
   socket options = TCP_NODELAY 

# 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 = yes
;   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

Last edited by tubatodd; 07-03-2006 at 07:37 PM.
 
Old 07-03-2006, 09:42 PM   #4
WindowBreaker
Member
 
Registered: Oct 2005
Distribution: Slackware
Posts: 228

Rep: Reputation: 40
The first thing you should do is
Code:
cp /etc/samba/samba.conf-sample  /etc/samba/smb.conf
To make sure the problem is not related to name resolution, you should address the XP machine by ip address, not by it's netbios name. Assuming the ip address of the XP box is 192.168.1.100
Code:
ping 192.168.1.100
If you don't get any responses, turn off the XP firewall

Then
Code:
smbmount //192.168.1.100/share /mnt/xpdrive -o username=windowsuser,password=windowspassword
You can omit the password above, and it will prompt you on the command line for it.
 
Old 07-03-2006, 10:12 PM   #5
tubatodd
Member
 
Registered: Jun 2003
Location: Birmingham, Alabama (USA)
Distribution: Slackware
Posts: 351

Original Poster
Rep: Reputation: 30
Code:
todd@todd:~$ smbmount //192.168.2.100/stuff /mnt/xpdrive/
2999: session request to 192.168.2.100 failed (Called name not present)
2999: session request to 192 failed (Called name not present)
2999: session request to *SMBSERVER failed (Not listening on called name)
SMB connection failed
I can ping the XP computer and I have the XP Firewall shutoff but I'm having trouble mounting the folder.
 
Old 07-04-2006, 09:08 AM   #6
jong357
Senior Member
 
Registered: May 2003
Location: Columbus, OH
Distribution: DIYSlackware
Posts: 1,914

Rep: Reputation: 52
I assume your XP computer "name" is 'Home' as well as your WORKGROUP name being 'Home'?

That's what your currently trying anyway. If you haven't messed with the default workgroup name in XP then change it in /etc/samba/smb.conf to read:

workgroup = WORKGROUP

My Desktop running XP has it's computer name set to HAL9000 and I haven't touched the default workgroup name so the ONLY modification necessary to /etc/samba/smb.conf is the above change. My D drive partition is being shared and it's name is "Shared" so I mount it like so:
Code:
mount -t smbfs //Hal9000/Shared /mnt/samba -o lfs,rw,username=blah,password=blah
If all you want to do is mount your windows share then rc.samba doesn't need to be running either.
 
Old 07-05-2006, 03:20 PM   #7
tubatodd
Member
 
Registered: Jun 2003
Location: Birmingham, Alabama (USA)
Distribution: Slackware
Posts: 351

Original Poster
Rep: Reputation: 30
I checked to make sure that I had everything configured how I need it. The XP computer is known as "Sony" in workgroup "Home" So, I've tried to mount the "stuff" folder using the following code

Code:
todd@todd:~$ smbmount //Sony/stuff /mnt/xpdrive/
Password:
smbmnt must be installed suid root for direct user mounts (1000,1000)
smbmnt failed: 1

Now on my Windows XP machine, it boots withOUT the use of a password to log in. Sooooo, I don't add "-o username=<whatever> etc" to my command line. As you can see above, when I run the line it asks for a "password". I just hit ENTER since I don't have a password and I received the error message above.

When I tried mounting as "root" I get the following response.
Code:
root@todd:/home/todd# smbmount //Sony/stuff/ /mnt/xpdrive/
Password:
415: tree connect failed: ERRDOS - ERRnosuchshare (You specified an invalid share name)
SMB connection failed
What am I doing wrong?
 
Old 07-05-2006, 04:24 PM   #8
manishsingh4u
Member
 
Registered: Oct 2005
Location: Bhopal, India
Distribution: RHEL 6
Posts: 422

Rep: Reputation: 30
Code:
smbmount //Sony/stuff/ /mnt/xpdrive/
The forward slash "/" caused the problem in the above command

Run exactly the following command as root
Code:
mount -t smbfs //Sony/stuff /mnt/xpdrive
 
Old 07-05-2006, 05:31 PM   #9
tubatodd
Member
 
Registered: Jun 2003
Location: Birmingham, Alabama (USA)
Distribution: Slackware
Posts: 351

Original Poster
Rep: Reputation: 30
Code:
mount -t smbfs //Sony/stuff /mnt/xpdrive
Woo Hoo!!! That did it. Is their anyway I can mount the XP share as any other user other than root??

Can I add something to my fstab to mount that partition automatically on bootup??


Thanks for your help!

Last edited by tubatodd; 07-05-2006 at 05:32 PM.
 
Old 07-05-2006, 06:41 PM   #10
manishsingh4u
Member
 
Registered: Oct 2005
Location: Bhopal, India
Distribution: RHEL 6
Posts: 422

Rep: Reputation: 30
Quote:
Originally Posted by tubatodd
Is their anyway I can mount the XP share as any other user other than root??
Yes, but not recommended. I would suggest you use sudo command for the purpose. It allows to run root privillaged commands without logging in as a root user.
Quote:
Originally Posted by tubatodd
Can I add something to my fstab to mount that partition automatically on bootup??
Yes, add the following line to /etc/fstab
Code:
//Sony/stuff /mnt/xpdrive smbfs username=,password=  0 0
I have entered nothing for username and password as you stated previously that u r not using any passwords. If you use users and passwords to share files, write username=anyusername,password=hispassword instead.

EDIT:
To mount manually all devices in /etc/fstab use the following command. I think u might need it as samba starts after /etc/fstab is processed in slackware as far as I know
Code:
mount -a

Last edited by manishsingh4u; 07-06-2006 at 04:27 AM.
 
Old 07-05-2006, 09:04 PM   #11
tubatodd
Member
 
Registered: Jun 2003
Location: Birmingham, Alabama (USA)
Distribution: Slackware
Posts: 351

Original Poster
Rep: Reputation: 30
Well, adding those lines to my fstab didn't work. I even tried running "mount -a" and "mount -a -t smbfs" and nothing worked. It would be great if I could have it mounted on bootup.

Thanks!
 
Old 07-05-2006, 10:36 PM   #12
jong357
Senior Member
 
Registered: May 2003
Location: Columbus, OH
Distribution: DIYSlackware
Posts: 1,914

Rep: Reputation: 52
Try adding the "_netdev" option to fstab. Pretty sure what might be happening is that your network isn't available when your fstab is run. Using _netdev tells it to wait for mounting until your network is up... the lfs option is great also if you wan't to transfer files larger than 2Gb. Without it, the transfer will crap out.

Code:
//Sony/stuff /mnt/xpdrive smbfs _netdev,rw,lfs,username=,password=  0 0
 
Old 07-06-2006, 09:31 AM   #13
tubatodd
Member
 
Registered: Jun 2003
Location: Birmingham, Alabama (USA)
Distribution: Slackware
Posts: 351

Original Poster
Rep: Reputation: 30
Quote:
Originally Posted by jong357
Try adding the "_netdev" option to fstab. Pretty sure what might be happening is that your network isn't available when your fstab is run. Using _netdev tells it to wait for mounting until your network is up... the lfs option is great also if you wan't to transfer files larger than 2Gb. Without it, the transfer will crap out.

Code:
//Sony/stuff /mnt/xpdrive smbfs _netdev,rw,lfs,username=,password=  0 0

Well, I decided to share my entire C drive and I put the following in my fstab

Code:
//Sony/CDrive /mnt/CDrive smbfs _netdev,rw,lfs,username=,password=  0 0
On bootup fstab is STILL trying to mount the partition before the network is setup. Initially, when I put that line in my fstab, my machine auto detected the new mount point. However, on bootup it still won't work.

I forgot to mention, I want to mount the D drive as well, but it is NTFS. Is that a problem?

Last edited by tubatodd; 07-06-2006 at 09:32 AM.
 
Old 07-06-2006, 01:34 PM   #14
jong357
Senior Member
 
Registered: May 2003
Location: Columbus, OH
Distribution: DIYSlackware
Posts: 1,914

Rep: Reputation: 52
Wouldn't your C Drive be formatted in NTFS under XP? Not much point in mounting an NTFS share under Linux unless you need to pull files from it. Last I checked, NTFS write support is so crippled under the kernel that there's not even much point in trying it. Last I read, you can olny write to an NTFS partition if your editing an existing file. The filename has to stay the same and the file size has to stay the same. So, you could replace the text 'cat' with 'dog' and then save it. Wow... Very usefull indeed..

Besides.... Personally, it would make me nervous having my entire C Drive exposed like that, much less 100% of the time. Even tho 1000:1 nothing will ever happen security wise to put your windows share in danger. Especially if your behind a router and firewall script.

I'm not entirely sure why it's not mounting. Is it giving you any sort of error in dmesg? Why don't you try adding the ntfs module to rc.modules so it loads early. Just a stab in the dark.

Food for thought; here is what I do and if you can live with it, it might be a better option for you. I just make a script called "windows", chmod it 700 and throw it in /sbin. This is on a sysvinit version of Slack so all the sourced files/refrenced functions are pointless on vanilla slack.
Code:
#!/bin/sh
# FIXME - Make a firewall rule instead of stop/start

. /etc/sysconfig/rc
. $rc_functions

case "$1" in
	mount)

if ps x | grep /sbin/mount.smbfs 2>/dev/null 1>/dev/null ;then
   echo "Samba Share already mounted..."
   echo_failure
   exit 1
fi

/etc/rc.d/init.d/firewall stop
echo "Mounting Samba share..."
mount -t smbfs //Hal9000/Shared /mnt/samba -o lfs,rw,password=
evaluate_retval
/etc/rc.d/init.d/firewall start
	;;

	umount)

if ps x | grep /sbin/mount.smbfs 2>/dev/null 1>/dev/null ;then
   echo "Unmounting Samba share..."
   umount /mnt/samba
   evaluate_retval
else
   echo "Samba Share not mounted..."
   echo_failure
fi
	;;

	*)
		echo "Usage: $0 {mount|umount}"
		exit 1
	;;
esac
Along with removing the functions, you would want to grep for //Sony/CDrive instead of /sbin/mount.smbfs if your going to have multiple shares in the script. If opening up a terminal and typing "sudo windows mount" is too much of a pain for you, you could possibly make a .desktop with nice icons that you can just double click. Throw them in your task bar or something... Multiple ways to approach it.

Things like this can be problematic to troubleshoot unless you can sit down at the box. As a last resort, you could also add your mount commands to rc.local... What's it matter where they get mounted from in the boot process, as long as they get mounted.

EDIT: And, as always, make sure your not doing anything stupid like typo's... Make sure your 'share' name is actually 'CDrive' and not 'Local Disk (C)'.. You get my point. Try formatting your D drive in FAT32 and then add it to fstab and see what happens (as I said, you'll want a share to be FAT32 anyway). Process of elimination. Maybe it's the NTFS thats hanging you up somehow in the boot process.

Last edited by jong357; 07-06-2006 at 01:49 PM.
 
Old 07-06-2006, 08:32 PM   #15
jong357
Senior Member
 
Registered: May 2003
Location: Columbus, OH
Distribution: DIYSlackware
Posts: 1,914

Rep: Reputation: 52
Quote:
Originally Posted by tubatodd
Well, I decided to share my entire C drive and I put the following in my fstab

Code:
//Sony/CDrive /mnt/CDrive smbfs _netdev,rw,lfs,username=,password=  0 0
Try this:
Code:
//Sony/CDrive /mnt/CDrive smbfs _netdev,rw,lfs,password=  0 0
I don't think your allowed to state username= with actually giving a username. You should get a permission denied error or some such nonsense. That or fill in your username but leave the password blank so it doesn't halt the boot process waiting for you to hit enter.

Code:
[root@jaguar ~] mount -t smbfs //Hal9000/Shared /mnt/samba -o lfs,rw,username=,password=
7392: tree connect failed: ERRDOS - ERRnoaccess (Access denied.)
SMB connection failed
[root@jaguar ~] mount -t smbfs //Hal9000/Shared /mnt/samba -o lfs,rw,password=
[root@jaguar ~] umount /mnt/samba/
[root@jaguar ~] mount -t smbfs //Hal9000/Shared /mnt/samba -o lfs,rw,username=madpenguin,password=
[root@jaguar ~] ls /mnt/samba/
limewire-pro.txt  Music  New Music  Recycled
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Windows Can't See Linux Machine After Configuring Samba! movanns Linux - Networking 6 02-13-2014 01:52 AM
Configuring a transparent proxy on a client machine ONLY instead of a server machine. clinux_rulz Linux - Networking 1 05-31-2006 02:53 AM
configuring a linux machine as a gateway madhavann Linux - Networking 1 02-06-2006 05:19 AM
configuring two NIC's on single machine b0nd Slackware 4 10-06-2005 01:51 PM
configuring machine for internet access duenasg Linux - Networking 6 01-06-2005 02:00 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 12:46 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration