diff options
Diffstat (limited to '')
-rw-r--r-- | remount/remountr.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/remount/remountr.c b/remount/remountr.c new file mode 100644 index 0000000..f45c39a --- /dev/null +++ b/remount/remountr.c @@ -0,0 +1,25 @@ +#include <stdio.h> + +const char mount_str[] = "/bin/mount"; +const char remount_str[] = "remount"; +const char slash_str[] = "/"; +const char ro_str[] = "-ro"; +const char wo_str[] = "-wo"; + +int main (int argc, char **argv) { + char *flag, *mntpnt; + + if (argv[0][strlen(argv[0])-1] == 'w') + flag = wo_str; + else + flag = ro_str; + + setreuid(0, 0); + if (argc > 1) + mntpnt = argv[1]; + else + mntpnt = slash_str; + + return execl(mount_str, mount_str, flag, remount_str, mntpnt, NULL); +} + |