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

From thelinuxwiki
Jump to: navigation, search
(Listing samba / cifs shares)
 
(7 intermediate revisions by one user not shown)
Line 8: Line 8:
  
  
# smbclient -L xpmachine
+
# smbclient -L xpmachine
Enter root's password:  
+
Enter root's password:  
Domain=[xpmachine] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
+
Domain=[xpmachine] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
 
+
         <br>Sharename      Type      Comment
         Sharename      Type      Comment
+
 
         ---------      ----      -------
 
         ---------      ----      -------
 
         E$              Disk      Default share
 
         E$              Disk      Default share
Line 20: Line 19:
 
         ADMIN$          Disk      Remote Admin
 
         ADMIN$          Disk      Remote Admin
 
         C$              Disk      Default share
 
         C$              Disk      Default share
Domain=[xpmachine] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
+
Domain=[xpmachine] OS=[Windows 5.1] Server=[Windows 2000 LAN Manager]
 
+
 
         Server              Comment
 
         Server              Comment
 
         ---------            -------
 
         ---------            -------
 
 
         Workgroup            Master
 
         Workgroup            Master
 
         ---------            -------
 
         ---------            -------
Line 32: 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 ==

Latest revision as of 19:26, 22 May 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