Difference between revisions of "Samba - mounting share from linux"

From thelinuxwiki
Jump to: navigation, search
(Listing samba / cifs shares)
(newer mount command (smbfs depricated))
Line 29: Line 29:
  
 
== newer mount command (smbfs depricated) ==
 
== newer mount command (smbfs depricated) ==
  mount -t cifs //server/E$ /mnt/test -o username=gagazote/mydomain,password=hackth1s
+
  mount -t cifs //server/E$ /mnt/test -o username=jsmith/mydomain,password=hackth1s
  
 
required package for cifs file type on debian: cifs-utils
 
required package for cifs file type on debian: cifs-utils
 
  sudo apt-get install cifs-utils
 
  sudo apt-get install cifs-utils
  
This might require the mount-cifs package  
+
This might require the mount-cifs package
  
 +
Allowing user right permissions
 +
 +
if you don't specify uid and gid in mount command and mount as root, write attempts for regular users will get "permission denied".
 +
 +
example:
 +
 +
suppose I mounted a samba drive on 192.168.0.10 as root (including using sudo). When I check how it was mounted with the "mount" command I can see the uid and gid parmeters are 0 for root.
 +
 +
$ '''mount | grep 192.168.0.10'''
 +
//192.168.0.10/upload on /home/jsmith/samba type cifs (rw,relatime,vers=default,cache=strict,username=jsmith,'''uid=0''',noforceuid,'''gid=0''',noforcegid,addr=192.168.0.10,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
 +
 +
solution:
 +
 +
when running the mount command, set uid and/or gid to include the user(s) of interest
 +
 +
example:
 +
 +
sudo mount -t cifs //192.168.0.10/upload /home/jsmith/samba -o rw,username=jsmith,uid=1000,gid=1000
 +
 +
where the uid/gid match the user as seen in the passwd file
 +
 +
$ '''cat /etc/passwd | grep jsmith'''
 +
 +
$ mount | grep 192.168.0.10
 +
//192.168.0.10/upload on /home/jsmith/samba type cifs (rw,relatime,vers=default,cache=strict,username=jsmith,'''uid=1000''',forceuid,'''gid=1000''',forcegid,addr=192.168.0.10,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)
 +
jsmith:x:1000:1000:jsmith,,,:/home/jsmith:/bin/bash
  
 
== old mount command ==
 
== old mount command ==

Revision as of 15:47, 26 March 2024

Contents

required packages

on gentoo... look for something similar in your distro's repo

net-fs/cifs-utils
dev-perl/Filesys-SmbClient

Listing samba / cifs shares

# smbclient -L xpmachine
Enter root's password: 
Domain=[xpmachine] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
       
Sharename Type Comment --------- ---- ------- E$ Disk Default share IPC$ IPC Remote IPC cdrom Disk data Disk ADMIN$ Disk Remote Admin C$ Disk Default share Domain=[xpmachine] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager] Server Comment --------- ------- Workgroup Master --------- -------


Mount command syntax

newer mount command (smbfs depricated)

mount -t cifs //server/E$ /mnt/test -o username=jsmith/mydomain,password=hackth1s

required package for cifs file type on debian: cifs-utils

sudo apt-get install cifs-utils

This might require the mount-cifs package

Allowing user right permissions

if you don't specify uid and gid in mount command and mount as root, write attempts for regular users will get "permission denied".

example:

suppose I mounted a samba drive on 192.168.0.10 as root (including using sudo). When I check how it was mounted with the "mount" command I can see the uid and gid parmeters are 0 for root.

$ mount | grep 192.168.0.10
//192.168.0.10/upload on /home/jsmith/samba type cifs (rw,relatime,vers=default,cache=strict,username=jsmith,uid=0,noforceuid,gid=0,noforcegid,addr=192.168.0.10,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)

solution:

when running the mount command, set uid and/or gid to include the user(s) of interest

example:

sudo mount -t cifs //192.168.0.10/upload /home/jsmith/samba -o rw,username=jsmith,uid=1000,gid=1000

where the uid/gid match the user as seen in the passwd file

$ cat /etc/passwd | grep jsmith
$ mount | grep 192.168.0.10

//192.168.0.10/upload on /home/jsmith/samba type cifs (rw,relatime,vers=default,cache=strict,username=jsmith,uid=1000,forceuid,gid=1000,forcegid,addr=192.168.0.10,file_mode=0755,dir_mode=0755,soft,nounix,serverino,mapposix,rsize=1048576,wsize=1048576,echo_interval=60,actimeo=1)

jsmith:x:1000:1000:jsmith,,,:/home/jsmith:/bin/bash

old mount command

mount -t smbfs //servername/sharename /mountdirectory -o username=mywindowsusername,password=mywindowspassword


samba users

/etc/samba/smb.conf Uncomment the security line *** this will require a local user account for each smbuser ***

security = user
username map = /etc/samba/smbusers

make local user account, no hoee dir or local passwd needs to be set

useradd smbuser

add user to /etc/samba/smbusers

<localusername> = “<samba username>”.

example

smbuser = smbuser