aboutsummaryrefslogtreecommitdiff
path: root/remount/remountr.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--remount/remountr.c25
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);
+}
+