add a mountopt flag for automatically adding uid

SVN revision: 59427
This commit is contained in:
Mike Blumenkrantz 2011-05-16 00:06:41 +00:00
parent ad7a0d33b0
commit 1856a909e3
4 changed files with 12 additions and 1 deletions

View File

@ -1,4 +1,7 @@
2011-05-15 Mike Blumenkrantz (discomfitor/zmike)
+EEZE_DISK_MOUNTOPT_UID
Add a uid=%i mount option using getuid, NOT geteuid
--------------------------------------
+eeze_disk_mount_wrapper_set
+eeze_disk_mount_wrapper_get
Allow use of wrapper exes for mount commands (such as sudo)

View File

@ -48,7 +48,8 @@ typedef enum
EEZE_DISK_MOUNTOPT_UTF8 = (1 << 2),
EEZE_DISK_MOUNTOPT_NOEXEC = (1 << 3),
EEZE_DISK_MOUNTOPT_NOSUID = (1 << 4),
EEZE_DISK_MOUNTOPT_REMOUNT = (1 << 5)
EEZE_DISK_MOUNTOPT_REMOUNT = (1 << 5),
EEZE_DISK_MOUNTOPT_UID = (1 << 6) /**< use current user's uid */
} Eeze_Mount_Opts;

View File

@ -2,6 +2,8 @@
#include "config.h"
#endif
#include <unistd.h>
#include <Ecore.h>
#include <Eeze.h>
#include <Eeze_Disk.h>
@ -154,6 +156,8 @@ eeze_disk_mountopts_set(Eeze_Disk *disk, unsigned long opts)
if (opts != disk->mount_opts)
disk->mount_cmd_changed = EINA_TRUE;
disk->mount_opts = opts;
if (opts & EEZE_DISK_MOUNTOPT_UID)
disk->uid = getuid();
return EINA_TRUE;
}
@ -265,6 +269,8 @@ eeze_disk_mount(Eeze_Disk *disk)
eina_strbuf_append(disk->mount_cmd, "nosuid,");
if (disk->mount_opts & EEZE_DISK_MOUNTOPT_REMOUNT)
eina_strbuf_append(disk->mount_cmd, "remount,");
if (disk->mount_opts & EEZE_DISK_MOUNTOPT_UID)
eina_strbuf_append_printf(disk->mount_cmd, "uid=%i,", (int)disk->uid);
eina_strbuf_append_printf(disk->mount_cmd, " UUID=%s %s", disk->cache.uuid, disk->mount_point);
}
disk->mount_cmd_changed = EINA_FALSE;

View File

@ -55,6 +55,7 @@ struct _Eeze_Disk
const char *mount_point;
const char *mount_wrapper;
unsigned long mount_opts;
uid_t uid;
struct
{