Difference between revisions of "File shares"
(5 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
Write yourself an /etc/fstab entry that looks like this: | Write yourself an /etc/fstab entry that looks like this: | ||
− | <pre style="white-space: pre;">// | + | <pre style="white-space: pre;">//fs01mixedsmb.wurnet.nl/DBL-STANDARD_HOMEDIR$/myuser /mnt/mdrive cifs noauto,user,username=myuser,domain=wur,uid=mylocaluser,gid=mylocalgroup 0 0</pre> |
− | (Replace | + | (Replace myuser with your own WUR account name, and mylocaluser/mylocalgroup with the account/group you have locally) |
Now you can simply: | Now you can simply: | ||
Line 38: | Line 38: | ||
The above example will only mount when called. You want it to mount on boot. However, a simple issue is present - you must authenticate to mount. Thus, you need to have some credential stash. Modify the options to this: | The above example will only mount when called. You want it to mount on boot. However, a simple issue is present - you must authenticate to mount. Thus, you need to have some credential stash. Modify the options to this: | ||
− | <pre style="white-space: pre;">// | + | <pre style="white-space: pre;">//fs01mixedsmb.wurnet.nl/Homes/username /mnt/mdrive cifs credentials=/home/localuser/.smbpassword,user,username=username,domain=wur,uid=localuser,gid=localuser 0 0</pre> |
Then you can make the credential file. Set it 600 so that only you or root may read or write. | Then you can make the credential file. Set it 600 so that only you or root may read or write. | ||
Line 47: | Line 47: | ||
<code>chmod 600 ~/.smbpassword</code> | <code>chmod 600 ~/.smbpassword</code> | ||
+ | |||
+ | |||
+ | === Automatically mounting when users login (pam_mount) === | ||
+ | |||
+ | <code>apt-get install libpam-mount cifs-utils</code> | ||
+ | |||
+ | Create or edit pam_mount.conf.xml in /etc/security | ||
+ | <pre> | ||
+ | <nowiki> | ||
+ | <?xml version="1.0" encoding="utf-8" ?> | ||
+ | <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"> | ||
+ | <!-- | ||
+ | See pam_mount.conf(5) for a description. | ||
+ | --> | ||
+ | |||
+ | <pam_mount> | ||
+ | |||
+ | <!-- debug should come before everything else, | ||
+ | since this file is still processed in a single pass | ||
+ | from top-to-bottom --> | ||
+ | |||
+ | <debug enable="0" /> | ||
+ | |||
+ | <!-- Volume definitions --> | ||
+ | |||
+ | |||
+ | <!-- pam_mount parameters: General tunables --> | ||
+ | |||
+ | <luserconf name=".pam_mount.conf.xml" /> | ||
+ | |||
+ | <!-- Note that commenting out mntoptions will give you the defaults. | ||
+ | You will need to explicitly initialize it with the empty string | ||
+ | to reset the defaults to nothing. --> | ||
+ | <mntoptions allow="*" /> | ||
+ | <!-- | ||
+ | <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" /> | ||
+ | <mntoptions deny="suid,dev" /> | ||
+ | <mntoptions allow="*" /> | ||
+ | <mntoptions deny="*" /> | ||
+ | --> | ||
+ | <mntoptions require="nosuid,nodev" /> | ||
+ | |||
+ | <logout wait="0" hup="0" term="0" kill="0" /> | ||
+ | |||
+ | <!-- pam_mount parameters: Volume-related --> | ||
+ | |||
+ | <mkmountpoint enable="1" remove="true" /> | ||
+ | |||
+ | </pam_mount> | ||
+ | </nowiki> | ||
+ | </pre> | ||
+ | |||
+ | Create a .pam_mount.conf.xml file in each users home directory. | ||
+ | |||
+ | <pre> | ||
+ | <nowiki> | ||
+ | <pam_mount> | ||
+ | <volume options="domain=WUR,nodev,nosuid" user="*" mountpoint="~/M" path="Homes/%(USER)" server="WURNET.NL" fstype="cifs" /> | ||
+ | <volume options="domain=WUR,nodev,nosuid" user="*" mountpoint="~/W" path="DFS-Root" server="WURNET.NL" fstype="cifs" /> | ||
+ | </pam_mount> | ||
+ | </nowiki> | ||
+ | </pre> | ||
+ | |||
+ | And then create the directories in the users homedir. | ||
+ | |||
+ | <code>mkdir ~/M</code> | ||
+ | |||
+ | <code>mkdir ~/W</code> | ||
+ | |||
+ | You can use skel to automatically put it in users home dir when creating a new user. If you want this then place the .pam_mount.conf.xml file in /etc/skel/ and create the M and W directory in /etc/skel | ||
=== What is the DFS-Root === | === What is the DFS-Root === | ||
Line 57: | Line 127: | ||
Should work. | Should work. | ||
+ | |||
+ | With newer versions of smbclient it could happen that it needs a version specified in the mount options because the default version is not working. Then try it with version 1.0 | ||
+ | |||
+ | <nowiki>//WURNET.NL/DFS-Root /mnt/wdrive cifs noauto,user,username=username,domain=wur,vers=1.0 0 0</nowiki> |
Revision as of 15:39, 7 January 2019
Contents
Mounting Home Directories - CIFS
As WUR has moved to a new home directory storage method, the path to finding it is much simpler:
Write yourself an /etc/fstab entry that looks like this:
//fs01mixedsmb.wurnet.nl/DBL-STANDARD_HOMEDIR$/myuser /mnt/mdrive cifs noauto,user,username=myuser,domain=wur,uid=mylocaluser,gid=mylocalgroup 0 0
(Replace myuser with your own WUR account name, and mylocaluser/mylocalgroup with the account/group you have locally)
Now you can simply:
mount /mnt/mdrive
And after entering your password, you have access to your M drive share.
Caveats
This may occasionally not work on the first try, as the hostname WURNET.NL points to multiple machines. You may need to do this repeatedly to get a stable connection.
The easiest way to gather information about available CIFS shares is using smbclient. On Ubuntu, you need the pacakge 'smbclient' to provide this.
Usage:
smbclient -L <server> -U username
This will show you all the mounts available to you on that machine.
To test the mount:
sudo mount //server/share -ousername=username,domain=wur /tmp/smb
This will hold until you unmount it.
Automatically mounting at boot (/etc/fstab)
The above example will only mount when called. You want it to mount on boot. However, a simple issue is present - you must authenticate to mount. Thus, you need to have some credential stash. Modify the options to this:
//fs01mixedsmb.wurnet.nl/Homes/username /mnt/mdrive cifs credentials=/home/localuser/.smbpassword,user,username=username,domain=wur,uid=localuser,gid=localuser 0 0
Then you can make the credential file. Set it 600 so that only you or root may read or write.
echo username=username > ~/.smbpassword
echo password=mypassword >> ~/.smbpassword
chmod 600 ~/.smbpassword
Automatically mounting when users login (pam_mount)
apt-get install libpam-mount cifs-utils
Create or edit pam_mount.conf.xml in /etc/security
<?xml version="1.0" encoding="utf-8" ?> <!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd"> <!-- See pam_mount.conf(5) for a description. --> <pam_mount> <!-- debug should come before everything else, since this file is still processed in a single pass from top-to-bottom --> <debug enable="0" /> <!-- Volume definitions --> <!-- pam_mount parameters: General tunables --> <luserconf name=".pam_mount.conf.xml" /> <!-- Note that commenting out mntoptions will give you the defaults. You will need to explicitly initialize it with the empty string to reset the defaults to nothing. --> <mntoptions allow="*" /> <!-- <mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" /> <mntoptions deny="suid,dev" /> <mntoptions allow="*" /> <mntoptions deny="*" /> --> <mntoptions require="nosuid,nodev" /> <logout wait="0" hup="0" term="0" kill="0" /> <!-- pam_mount parameters: Volume-related --> <mkmountpoint enable="1" remove="true" /> </pam_mount>
Create a .pam_mount.conf.xml file in each users home directory.
<pam_mount> <volume options="domain=WUR,nodev,nosuid" user="*" mountpoint="~/M" path="Homes/%(USER)" server="WURNET.NL" fstype="cifs" /> <volume options="domain=WUR,nodev,nosuid" user="*" mountpoint="~/W" path="DFS-Root" server="WURNET.NL" fstype="cifs" /> </pam_mount>
And then create the directories in the users homedir.
mkdir ~/M
mkdir ~/W
You can use skel to automatically put it in users home dir when creating a new user. If you want this then place the .pam_mount.conf.xml file in /etc/skel/ and create the M and W directory in /etc/skel
What is the DFS-Root
DFS is Microsoft's Distributed File System. The purpose of a distributed file system is that the user can access files without knowing on which server the files are locates. The root of a distributed files system is called the DFS-Root. In the DFS-Root are virtual directories which are actual 'links' to shares on some servers.
Most modern CIFS implementations are able to handle DFS properly, thus a config like:
//WURNET.NL/DFS-Root /mnt/wdrive cifs noauto,user,username=username,domain=wur 0 0
Should work.
With newer versions of smbclient it could happen that it needs a version specified in the mount options because the default version is not working. Then try it with version 1.0
//WURNET.NL/DFS-Root /mnt/wdrive cifs noauto,user,username=username,domain=wur,vers=1.0 0 0