From: Nikos C. <re...@gm...> - 2012-09-21 16:18:45
|
On 21/09/12 18:41, Miklos Szeredi wrote: > Nikos Chantziaras <re...@gm...> writes: >>>> [...] >>>> $ fusermount -u ./mnt >>>> fusermount: entry for /home/realnc/mnt not found in /etc/mtab >>>> >>>> However, mtab does have an entry: >>>> >>>> $ grep "/home/realnc/mnt" /etc/mtab >>>> foss: /home/realnc/mnt fuse.sshfs rw,nosuid,nodev 0 0 >>>> >>> This mtab-entry misses the option 'user=<username>'. [...] >> >> mtab is a automatically generated file. What system component is >> responsible for the "user=" option? > > Fuse. > > More specifically, libfuse will execute fusermount, which will add the > entry to /etc/mtab. This is the code that does it: > > > | if (getuid() != 0) { > | const char *user = get_user_name(); > | if (user == NULL) > | return -1; > | > | if (add_option(mnt_optsp, "user=", strlen(user)) == -1) > | return -1; > | strcat(*mnt_optsp, user); > | } > | > > One possibility is that getuid() is now returning zero, but why that > would happen I have no idea. I inserted a fprintf() to stderr on the entry point as well as every exit point in get_mnt_opts() to get some idea of what's happening, but I see nothing printed on stderr. It would seem that get_mnt_opts() isn't even called once, so the error must be happening prior to that. (Unless fuse does something funny with stderr and what gets printed doesn't make it to the screen.) |