8

I am currently using cifs to mount some network shares (that require authentication) in /etc/fstab. It works excellently, but I would like to move the authentication details (username/pass) outside of fstab and be able to chmod it 600 (as fstab can have issues if I were to change its permissions). I was wondering if it is possible to do this (many-user system, don't want these permissions to be viewable by all users).

from:

//server/foo/bar /mnt/bar cifs username=user,password=pass,r 0 0

to:

//server/foo/bar /mnt/bar cifs <link to permissions>,r 0 0

(or something analogous to this). Thanks.

9

From the mount.cifs manpage:

credentials=filename
    specifies a file that contains a username and/or password. The format of the file is:

                         username=value
                         password=value
   This is preferred over having passwords in plaintext in a shared file, such as /etc/fstab. Be sure to protect any credentials file properly.

  • 1
    Note that the vague "Be sure to protect any credentials file properly." usually means you should save the file (as root) to /root/, and chmod 700 it – Nate Parsons Apr 27 '12 at 16:46
  • my connection also needs domain=value part – vladkras Nov 18 '16 at 8:52
  • 2
    I had hoped the situation would be different seven years later, but sadly, it seems this is still the 'best' answer. And it's not remotely secure. Every single person with sudo access to the server can read .smbcredentials. In my case, the file would contain—unless I conned somebody else into giving up theirs—_my_ Windows login creds. Like, the same single-sign-on credentials I use to access all of the systems at Evil Corp, including payroll, benefits, etc? Seems fraught with peril. Something like this may be a bit safer: askubuntu.com/a/1081421. – evadeflow Jan 3 at 18:48
  • The syntax of that file is delicate. Do not put empty lines or even # comments in there. – David Tonhofer Feb 1 at 11:28
6

use the credentials option such as:

http://www.justlinux.com/nhf/Filesystems/Mounting_smbfs_Shares_Permanently.html

example from /etc/fstab:

//server/share/   /mnt/localmountpoint   cifs   credentials=/root/.creda

janneb's post and the link to man page show what needs to be present in the credentials file.

  • 2
    Thanks, both answers were helpful (I should have read the manpages). If I could mark 2 answers as the correct answer I would. – tj111 Jan 13 '11 at 16:36
  • no worries...once I saw janneb's answer, it was clear the answer was covered :) – damorg Jan 13 '11 at 17:16
5

So I'm accumulating both answers

  1. Create file, e.g. /root/.cifs

    username=value
    password=value
    domain=value (optional)
    
  2. set permission 600 (rw- permission) to protect your credentials

    # chmod 600 /root/.cifs
    
  3. pass credentials=/root/.cifs to your command instead of username= and password=

  • 1
    Extra-minor comment: The chmod is not needed, as the home directory of root /root is hopefully rwx------ already. – David Tonhofer Feb 1 at 11:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.