LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Apparently I need lots of help creating a Samba server (Slackware64 13.37) (https://www.linuxquestions.org/questions/slackware-14/apparently-i-need-lots-of-help-creating-a-samba-server-slackware64-13-37-a-4175415710/)

spudgunner 07-09-2012 10:41 AM

Apparently I need lots of help creating a Samba server (Slackware64 13.37)
 
So I've spent the last week trying to get a computer configured to operate as a server for my small home network of Windows 7 computers, and to be honest, it's been extremely frustrating. It took me ~5 days (starting June 30) just to get the Slackware computer to boot and since then I've been trying to get Samba working, to no avail. Yesterday I rage-quit and wiped everything I've done to the computer and decided that I really didn't need a home server...

But that itch still requires some scratching apparently...

So once I begin again, I should be able to get the OS operational within a few hours since I've learned from the constant mistakes and little system-specific things that prevented me from getting a properly running OS originally. However, I'm still at a loss as for trying to get Samba working the way I'd like. I went through tons of tutorials (including a bunch of threads from LQ and AlienBOB's Samba wiki entry, amoung others that were OS agnostic) and was met with failure every single time. Since I nuked the system yesterday, I'll have a fresh Slackware install to work on.

Here is what I would like to accomplish:
1) The share itself will directory to which a hard drive dedicated to storage will be mounted to (which shouldn't be overly hard, but I think I may need help in getting file permissions correct)
2) The Samba share should be read/write for any Windows 7 PC that happens to connect to my LAN, complete with no authentication windows or configuration of Windows 7 computers needed. Access from the Windows 7 computers should be as easy as point and click.

I'll be eternally grateful for all help!

slackass 07-09-2012 11:10 AM

Well, I known very little about samba but it normally only takes me about 2 minutes to set up samba because I am a rather good copy an past monkey. :)


### ADDED TO BOTTOM OF smb.conf

# Synchronize Samba and Unix passwords
passwd program = /usr/bin/passwd %u
passwd chat = *password* %n\n *password* %n\n *changed*
unix password sync = Yes

passdb backend = tdbsam guest
guest account = smbguest
map to guest = bad user


### “New and Improved Shamelessly Copy and Pasted Samba Script” - :D
I got the commands from Eric's page
http://alien.slackbook.org/dokuwiki/...lackware:samba


The script:

#!/bin/sh
groupadd smbguest
useradd -g smbguest -m -d /home/smbguest -s /bin/false -c "Samba guest user" smbguest
smbpasswd -a smbguest -d
passwd smbguest -l

# General purpose:
mkdir -p /var/log/samba/messages
mkdir -p /usr/local/samba/bin
mkdir -p /usr/local/samba/netlogon
# A shared directory where you can dump stuff temporarily:
mkdir -p /usr/local/samba/share
chmod 1777 /usr/local/samba/share
# These are for the network printers:
mkdir -p /usr/local/samba/printers/{W32ALPHA,W32MIPS,W32X86,WIN40}
chgrp -R wheel /usr/local/samba/printers
chmod -R g+w /usr/local/samba/printers

chmod +x /etc/rc.d/rc.samba
/etc/rc.d/rc.samba start

smbpasswd -a smbguest -d

smbpasswd -a username<--- your user name goes here. You will be prompted for a password

## end



I name this script samba.setup
then I iissue:
chmod +x /wherever the scrip is/samba.setup (as root)

then I iissue:
sh samba.setup

Hope this helps
As always I welcome comments from my betters that will make this script better :)

spudgunner 07-09-2012 05:28 PM

I went through AlienBOB's stuff once already, I guess I could give it another shot. You mention that you added the first small section of your post to bottom of the smb.conf file; did you leave the rest of it as it is in default?

slackass 07-09-2012 05:40 PM

Quote:

Originally Posted by spudgunner (Post 4723315)
I went through AlienBOB's stuff once already, I guess I could give it another shot. You mention that you added the first small section of your post to bottom of the smb.conf file; did you leave the rest of it as it is in default?

Yes I did.
AlienBOB's stuff was the only one that was ever useful to me. I couldn't understand most of the others.

edit / note:
You can run the commands off one at a time and it will do the same thing.
I use the scrip because Its just faster for me during one of my "high speed bork, hose & reloads".:)

also:
All of those commands came right off AlienBOB's page.
http://alien.slackbook.org/dokuwiki/...lackware:samba

D1ver 07-09-2012 06:02 PM

Correct me if I'm wrong but if you want the Samba share to be discovered properly you need to start ntpd on the same box that Samba is running?
To start it
Code:

/etc/rc.d/rc.ntpd start
To start it every boot
Code:

chmod +x /etc/rc.d/rc.ntpd

slackass 07-09-2012 06:13 PM

Quote:

Originally Posted by D1ver (Post 4723349)
Correct me if I'm wrong but if you want the Samba share to be discovered properly you need to start ntpd on the same box that Samba is running?
To start it
Code:

/etc/rc.d/rc.ntpd start
To start it every boot
Code:

chmod +x /etc/rc.d/rc.ntpd

Hmmmmm.... I'm no one to be correcting anybody about computers but:
I have 6 boxes and 2 laptops that I setup with the above script and all can find each other.
However, I'll add:
/etc/rc.d/rc.ntpd start
chmod +x /etc/rc.d/rc.ntpd
to my little script if that will make it better.
Thanks!

D1ver 07-09-2012 06:19 PM

Quote:

Originally Posted by slackass (Post 4723356)
Hmmmmm.... I'm no one to be correcting anybody about computers but:
I have 6 boxes and 2 laptops that I setup with the above script and all can find each other.
However, I'll add:
/etc/rc.d/rc.ntpd start
chmod +x /etc/rc.d/rc.ntpd
to my little script if that will make it better.
Thanks!

You might want to wait for a confirm/deny from somebody with a little more clout. I just have this memory of bashing my head against smb.conf and then starting ntpd and everything suddenly working.

slackass 07-09-2012 06:37 PM

Quote:

Originally Posted by D1ver (Post 4723361)
You might want to wait for a confirm/deny from somebody with a little more clout. I just have this memory of bashing my head against smb.conf and then starting ntpd and everything suddenly working.

Yeah, I did my share of head bangin till I found AlienBOB's page.

thund3rstruck 07-09-2012 06:41 PM

Quote:

Originally Posted by spudgunner (Post 4723001)
So I've spent the last week trying to get a computer configured to operate as a server for my small home network of Windows 7 computers, and to be honest, it's been extremely frustrating. It took me ~5 days (starting June 30) just to get the Slackware computer to boot and since then I've been trying to get Samba working, to no avail. Yesterday I rage-quit and wiped everything I've done to the computer and decided that I really didn't need a home server...

@Spudgunner,

Do you still need help with this? I love using Slackware64 13.37 as a Samba server for windows clients because it takes less than 5 minutes to setup and its stable as an ox.

Let me know if you're still having trouble and I'd be glad to help you out.

slackass 07-10-2012 12:09 AM

@ spudgunner
As I recall, when I first starting using samba one major boo boo I did was having the same host name on some of my boxes and of course they couldn't find each other till I gave them all different host names.
All of my boxes are on the same domain name tho.

vdemuth 07-10-2012 12:50 AM

Want a nice easy way? Download and install Webmin and use it's inbuilt tools for setting up your server.

rouvas 07-10-2012 02:04 AM

You don't need ntpd, you nmbd.

NTPD stand for Network Time Protocol Daemon, which is useful but not required for SAMBA shares.

Other than that, little can be done to help you if you don't post what you have done and what went wrong.

ponce 07-10-2012 03:29 AM

Quote:

Originally Posted by spudgunner (Post 4723001)
Here is what I would like to accomplish:
1) The share itself will directory to which a hard drive dedicated to storage will be mounted to (which shouldn't be overly hard, but I think I may need help in getting file permissions correct)
2) The Samba share should be read/write for any Windows 7 PC that happens to connect to my LAN, complete with no authentication windows or configuration of Windows 7 computers needed. Access from the Windows 7 computers should be as easy as point and click.

that's pretty easy: let's assume you want your shared directory to be /home/samba
Code:

mkdir -p /home/samba
chown nobody:nogroup /home/samba

then go in /etc/samba, move away your smb.conf file (backup it somewhere), create a pristine one copying it from smb.conf-sample and edit it.
change the line
Code:

security = user
to
Code:

security = share
then, you will find in the same file this section
Code:

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

uncomment it (copy it before, as you like), rename the share and make it point at your folder
Code:

[myshare]
  comment = My shared folder
  path = /home/samba
  read only = no
  public = yes

you can also add a line
Code:

  browseable = yes
if you want the share to be browseable through the network.

then
Code:

/etc/rc.d/rc.samba restart
and you're done :)

for more informations and details, as written on top of smb.conf-sample, see the Samba-HOWTO-Collection pdf or the Samba Guide (with many practical examples).

ntpd should be needed only if you want windows machines to join your samba domain and you use the samba machine as a domain controller with profile folders and stuff.

spudgunner 07-10-2012 08:15 AM

Thanks for all the awesome replies, it looks like I know what I'll be doing when I get home from work tonight!

@slackass: Please don't be offended, but I'll be giving your method a try after I try what ponce posted, only for the fact that his is much less complex. Whether or not I get his working, I'll be trying yours next because your (AlienBOB's) method allows for the creation of user-specific shares down the road, and I'd like to keep that option open. I am going to be leaving out all of the printer-related stuff though. None of my machines have the same host name and there no domain/domain controller to speak of (though I could make one, but I'd rather use dd-wrt that's on my router than the server box). I'm assuming that you use your Samba setup with Windows 7 computers on the network and it's all good (although since security=user still, I imagine you would have dialog boxes popping up on the Windows machines)? One more question, don't the lines
Code:

# Synchronize Samba and Unix passwords
 passwd program = /usr/bin/passwd %u
 passwd chat = *password* %n\n *password* %n\n *changed*
 unix password sync = Yes

go in smb.conf and not in your script (did you make a mistake as to where you put ##end in your comment)? Thanks.

@thund3rstruck: Thanks for the offer of help, I'll give the methods that have already been posted a shot and if none of them work then I'll come-a-knockin'.

@vdemuth: Webmin looks like an awesome tool. If you or anyone else has used it, how has it been?

@ponce: I was so close to your solution! The only thing I immediately see that I missed was changing the ownership of the share folder and I used the [public] template rather than the [tmp] template. Just to be safe, once I make that directory, would I chown before I mount my storage device to it or after? Thanks.

ponce 07-10-2012 08:40 AM

Quote:

Originally Posted by spudgunner (Post 4723891)
Just to be safe, once I make that directory, would I chown before I mount my storage device to it or after? Thanks.

after, and if it already contains files/folder add a -R to the chown.
if your storage device is fat/vfat/ntfs formatted and you can't change the ownership (but you should also on those filesystem using mount options), you have to mount it with 777 permissions (ntfs-3g already does it).

allend 07-10-2012 09:23 AM

Quote:

Whether or not I get his working, I'll be trying yours next because your (AlienBOB's) method allows for the creation of user-specific shares down the road, and I'd like to keep that option open.
For that you should stick with the 'security = user' option.
To setup a share accessible by <user1> and <user2> but only writable by <user1> you can have settings like this
Code:

[Myshare]
  comment = My shared folder
  path = /path/to/share
  valid users = <user1> <user2>
  read only = yes
  write list = <user1>

Also remember that the Linux directory permissions take precedence over the Samba share permissions, so <user1> and <user2> would need to have access to the directory on which the share is mounted.

spudgunner 07-10-2012 09:44 AM

Quote:

Originally Posted by ponce (Post 4723912)
after, and if it already contains files/folder add a -R to the chown.
if your storage device is fat/vfat/ntfs formatted and you can't change the ownership (but you should also on those filesystem using mount options), you have to mount it with 777 permissions (ntfs-3g already does it).

I plan on having the drive be ext4 (and encrypted, but that shouldn't affect the file system at all)... does it have to be an MS readable/writable format in order for my Windows machines to use it? EDIT: Quick Google search says no, please correct me if this is wrong.

Quote:

Originally Posted by allend (Post 4723957)
For that you should stick with the 'security = user' option.

That is what is suggested by AlienBOB's method, however I was under the impression that every time I access a share from a Windows computer a user/pass box would come up (and apparently Windows makes storing credentials difficult).

allend 07-10-2012 09:54 AM

Quote:

Does it have to be an MS readable/writable format in order for my Windows machines to use it?
No - I have Windows machines that write quite happily to shares on ext4 and reiserfs formatted partitions.
Quote:

however I was under the impression that every time I access a share from a Windows computer a user/pass box would come up (and apparently Windows makes storing credentials difficult).
You will need to provide credentials on initial connection. My experience is that Windows caches credentials and that it can be incredibly difficult to get Windows to forget cached credentials!

slackass 07-10-2012 10:29 AM

[QUOTE=spudgunner;4723891]Thanks for all the awesome replies, it looks like I know what I'll be doing when I get home from work tonight!

@slackass: Please don't be offended, but I'll be giving your method a try after I try what ponce posted, only for the fact that his is much less complex. Whether or not I get his working, I'll be trying yours next because your (AlienBOB's) method allows for the creation of user-specific shares down the road, and I'd like to keep that option open. I am going to be leaving out all of the printer-related stuff though. None of my machines have the same host name and there no domain/domain controller to speak of (though I could make one, but I'd rather use dd-wrt that's on my router than the server box). I'm assuming that you use your Samba setup with Windows 7 computers on the network and it's all good (although since security=user still, I imagine you would have dialog boxes popping up on the Windows machines)? One more question, don't the lines
Code:

# Synchronize Samba and Unix passwords
 passwd program = /usr/bin/passwd %u
 passwd chat = *password* %n\n *password* %n\n *changed*
 unix password sync = Yes

go in smb.conf and not in your script (did you make a mistake as to where you put ##end in your comment)? Thanks.

Your absolutely right! I did screw it up.
Thanks for pointing it out.:doh:

I guess it's time for me to start working on a
“New and Improved Shamelessly Copy and Pasted Samba Script”:D :D

ponce 07-10-2012 10:46 AM

Quote:

Originally Posted by spudgunner (Post 4723984)
I plan on having the drive be ext4 (and encrypted, but that shouldn't affect the file system at all)... does it have to be an MS readable/writable format in order for my Windows machines to use it? EDIT: Quick Google search says no, please correct me if this is wrong.

no, it's right, ext3/4 will be ok, as they support POSIX ACLs (more on this).

EDIT: ah, missed this
Quote:

Originally Posted by spudgunner (Post 4723984)
I plan on having the drive be ext4 (and encrypted, but that shouldn't affect the file system at all)

sorry, if I'm not too curious, which is the point of encrypt it if anybody in your network can mount it?

spudgunner 07-11-2012 06:44 AM

In case someone decides to walk off with it.

thund3rstruck 07-11-2012 07:18 AM

Quote:

Originally Posted by allend (Post 4723993)
You will need to provide credentials on initial connection. My experience is that Windows caches credentials and that it can be incredibly difficult to get Windows to forget cached credentials!

Actually this isn't entirely true, at least not for professional versions of Windows. There is a Group Policy that manages cached passwords and machines on a domain almost always have the domain policy set to never cache credentials.

I always just create the same accounts on all the machines on the network. As long as user1/password1 exists on the windows machines and the Samba server you don't need to provide a password when connecting to the share.

Also, I wouldn't recommend formatting the disks in NTFS on the Samba server because that relies on the NTFS-Fuse drivers instead of the native linux filesystem. I do, however, format an external USB disk to NTFS as I use that for rsync backups and I want my USB backups readable by any PC.

Also, if you are using this SAMBA server to feed a media center (like XBMC) then I highly recommend setting the guest ok = yes setting on your Movies/TV share. If you do this then you don't need to create an account on the samba for the media center and everyone on the network has read access to your videos (without a password). Media centers should never have write access anyways (some of them like to delete watched videos)

allend 07-11-2012 10:34 AM

Quote:

There is a Group Policy that manages cached passwords and machines on a domain almost always have the domain policy set to never cache credentials.
Just goes to show my lack of experience! Thanks for that as it is something for me to look into.

thund3rstruck 07-11-2012 11:36 AM

Quote:

Originally Posted by allend (Post 4725093)
Just goes to show my lack of experience! Thanks for that as it is something for me to look into.

No problem :) I just checked my notes and here's what I've got:

Disable password caching:

Group Policy -> Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options:
Network access: Do not allow storage of credentials or .NET Passports for network authentication

Set to Enabled

This will disable the "remember my password" option from both Internet Explorer and File Shares.

This is the local policy. I can dig around for the domain policy if you'd like?

spudgunner 07-11-2012 12:57 PM

Quote:

Originally Posted by thund3rstruck (Post 4724906)
Also, I wouldn't recommend formatting the disks in NTFS on the Samba server because that relies on the NTFS-Fuse drivers instead of the native linux filesystem. I do, however, format an external USB disk to NTFS as I use that for rsync backups and I want my USB backups readable by any PC.

I never planned on using NTFS for my file server because I know it can cause problems sometimes and isn't native.

Quote:

Originally Posted by thund3rstruck (Post 4724906)
Also, if you are using this SAMBA server to feed a media center (like XBMC) then I highly recommend setting the guest ok = yes setting on your Movies/TV share. If you do this then you don't need to create an account on the samba for the media center and everyone on the network has read access to your videos (without a password). Media centers should never have write access anyways (some of them like to delete watched videos)

I don't plan on passing movies/TV shows through a media server (unless you count a PS3 as a media server). I'm actually looking to do this without creating any accounts for the purpose of Samba shares right now (although this will probably change in the future as I become more familiar with Samba). Ideally, I would like my wife's PS3 to be able to access the share for TV/movies, but (at least in my experience) the PS3 is a real pain to deal with and I hate it, so I won't count it as a loss if it can't read the Samba share.

thund3rstruck 07-11-2012 01:45 PM

You're right the PS3 (and X360) are absolutely awful as media players. If you absolutely have to stream to PStriple, then give a go with MediaTomb (http://slackbuilds.org/repository/13...dia/mediatomb/).

It's really such a shame that the XBMC was born from the original XBOX and Microsoft did such a pitiful job copying it. XBMC is an absolute masterpiece though, especially coupled with SickBeard PVR, CouchPotato, and Headphones.... but I digress.. :)

Back to business, to open the server up read-only just take a vanilla Slackware installation (be sure to enable Samba server when the Slackware installer asks you what services to start or just chmod +x /etc/rc.d/rc.samba).

Then edit /etc/smb.conf and add a definition like this:

Code:

[Video]
        comment = Video Server
        path = /media/share/disk2/Videos
        read only = No
        create mask = 0775
        guest ok = Yes

Ensure no obvious errors occurred:
Code:

testparm

# if all is ok, restart samba
/etc/rc.d/rc.samba restart

In windows do: Start > Run > \\IpAddress

And you should see the share. You can't write to it yet. Once you get here, we can walk through creating samba users and mapping them to local Linux users. At this stage you'll also want to enable ACLs so all your users can read, write, and delete all the files (instead of constantly having to chmod or apply suid bits)

spudgunner 07-13-2012 07:31 AM

Man guys, all this awesome help and I haven't had time to actually do anything yet, it makes me feel bad. I'm going to do my best to get this thing working this weekend.

spudgunner 07-14-2012 12:29 PM

Just got the very basic server working with Ponce's config advice, thanks to all those who helped! I'm marking the thread as solved, but I'll probably be back looking on how to create a server that's a little more advanced (multiple shares based on users, etc). Thanks a ton guys!

kikinovak 07-14-2012 04:47 PM

1 Attachment(s)
I've written a short (four page) documentation about Samba. This is actually the configuration I use when installing a server for clients (not the machines, but the real people clients). It's taken quite some RTFM and experimenting, but right now it works perfectly. It's in French and it's written for Debian, but the smb.conf is distro-agnostic. I've attached it here, since it's in PDF format. Heavily inspired by AlienBOB and book authors Carla Schroder and Michael Kofler.

Enjoy.

mRgOBLIN 07-14-2012 09:03 PM

Quote:

Originally Posted by thund3rstruck (Post 4725157)
No problem :) I just checked my notes and here's what I've got:

Disable password caching:

Group Policy -> Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options:
Network access: Do not allow storage of credentials or .NET Passports for network authentication

Set to Enabled

This will disable the "remember my password" option from both Internet Explorer and File Shares.

This is the local policy. I can dig around for the domain policy if you'd like?

You can also manage stored passwords on windows by doing the following.

Open "run" and enter "control userpasswords2"
That'll bring up a window, hit the advanced tab and choose "Manage Passwords"

You'll be able to manage (edit|add|delete) the user/pass combo for each machine.


All times are GMT -5. The time now is 03:15 AM.