Mounting NAS drive with cifs using credentials file through fstab does not work
It was a typo of the variable username that I missed. Somehow the s was missing as you can see from the strace call:
[pid 5240] getgid32() = 0 [pid 5240] access("/etc/smbcredentials", R_OK) = 0 [pid 5240]
open("/etc/smbcredentials", O_RDONLY) = 3
[pid 5240] fstat64(3, {st_mode=S_IFREG|0777,st_size=41, ...}) = 0
[pid 5240] mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb77d0000
[pid 5240] read(3, "uername=username\npassword=password"..., 4096) = 41 –
Related videos on Youtube
mahatmanich
Updated on September 18, 2022Comments
-
mahatmanich over 1 year
I can mount the drive in the following way, no problem there:
mount -t cifs //nas/home /mnt/nas -o username=username,password=pass\!word,uid=1000,gid=100,rw,suid
However if I try to mount it via fstab I get the following error:
//nas/home /mnt/nas cifs iocharset=utf8,credentials=/home/username/.smbcredentials,uid=1000,gid=100 0 0 auto
.smbcredentials file looks like this:
username=username password=pass\!word
Note the ! in my password ... which I am escaping in both instances
I also made sure there are no eol in the file using
:set noeol binary
from Mount CIFS Credentials File has Special Characterchmod
on .credentials file is0600
andchown
isroot:root
file is under~/
Why am I getting in on the one side and not with fstab??
I am running on ubuntu 12 LTE and mount.cifs -V gives me mount.cifs version: 5.1
Any help and suggestions would be appreciated ...
UPDATE:
/var/log/syslog
shows following[26630.509396] Status code returned 0xc000006d NT_STATUS_LOGON_FAILURE [26630.509407] CIFS VFS: Send error in SessSetup = -13 [26630.509528] CIFS VFS: cifs_mount failed w/return code = -13
UPDATE no 2
Debugging with strace mount through fstab:
strace -f -e trace=mount mount -a Process 4984 attached Process 4983 suspended Process 4985 attached Process 4984 suspended Process 4984 resumed Process 4985 detached [pid 4984] --- SIGCHLD (Child exited) @ 0 (0) --- [pid 4984] mount("//nas/home", ".", "cifs", 0, "ip=<internal ip>,unc=\\\\nas\\home"...) = -1 EACCES (Permission denied) mount error(13): Permission denied Refer to the mount.cifs(8) manual page (e.g. man mount.cifs) Process 4983 resumed Process 4984 detached
Mount through terminal
strace -f -e trace=mount mount -t cifs //nas/home /mnt/nas -o username=user,password=pass\!wd,uid=1000,gid=100,rw,suid Process 4990 attached Process 4989 suspended Process 4991 attached Process 4990 suspended Process 4990 resumed Process 4991 detached [pid 4990] --- SIGCHLD (Child exited) @ 0 (0) --- [pid 4990] mount("//nas/home", ".", "cifs", 0, "ip=<internal ip>,unc=\\\\nas\\home"...) = 0 Process 4989 resumed Process 4990 detached
-
Ansgar Wiechers over 11 yearsUnless you have a typo in your post you are not escaping the
!
in both cases. The escape character is the backslash\
, not the forward slash/
. -
mahatmanich over 11 yearsHey thanks for the heads up. It is only a typo here! Obviously I used the \ char to escape ;-).
-
ptman over 11 yearsAre you sure the password should be escaped in the credentials file? It's a shell metachar, which is why it has to be escaped on the command line but how will it be misinterpreted in the credentials file without escaping? Also I can't see any error message in your post, just command to mount and a line from fstab, no error message.
-
mahatmanich over 11 yearsptman I tried both, escaped and unescaped versions, I think it never gets to read the file. how could I check that?
-
ptman over 11 yearsyou can check for open() and read() syscalls using strace
-
mahatmanich over 11 yearsptman I never get a file open when mounting through fstab, I tried moving the file to /etc and giving it 777 permission to see if I get any call, but for some reason I got no open() or read(). I have never used strace so there might be the problem, any help with that?
-
mahatmanich over 11 yearsptman As you can see in the strace calls, it is an authentication problem ...
-
ptman over 11 yearsyou are asking strace to not show open calls, try using
-e trace=open,read
instead or leave-e trace
out and direct the output to a file that you can examine afterwards. -
mahatmanich over 11 yearsBINGO looks like it was /n in my credentials file that was causing the problem!!! WORKS NOW THANKS A BUNCH PTMAN!
-