--- freem/src/fmadm.c 2025/04/02 02:16:27 1.23 +++ freem/src/fmadm.c 2025/04/02 03:02:42 1.24 @@ -1,5 +1,5 @@ /* - * $Id: fmadm.c,v 1.23 2025/04/02 02:16:27 snw Exp $ + * $Id: fmadm.c,v 1.24 2025/04/02 03:02:42 snw Exp $ * FreeM Administration Tool * * @@ -24,6 +24,9 @@ * along with FreeM. If not, see . * * $Log: fmadm.c,v $ + * Revision 1.24 2025/04/02 03:02:42 snw + * Stop requiring users to pass -e to fmadm when -u or -g are passed + * * Revision 1.23 2025/04/02 02:16:27 snw * Add fmadm status environment command and move journals to a better location * @@ -230,7 +233,6 @@ int main (int argc, char **argv) env_user[k++] = argv[i][j]; } - fma_explicit_environment = TRUE; base_arg++; break; @@ -248,7 +250,6 @@ int main (int argc, char **argv) env_group[k++] = argv[i][j]; } - fma_explicit_environment = TRUE; base_arg++; break; @@ -298,7 +299,7 @@ int main (int argc, char **argv) } } } - + if (obj != OBJ_DAEMON) { if (strlen (env_user) == 0) { snprintf (env_user, 6, "freem"); @@ -419,7 +420,6 @@ int main (int argc, char **argv) else return fmadm_usage(); if (strncmp (obj_str, "lock", STRLEN - 1) == 0) obj = OBJ_LOCK; - else if (strncmp (obj_str, "zallocate", STRLEN - 1) == 0) obj = OBJ_ZALLOC; else if (strncmp (obj_str, "journal", STRLEN - 1) == 0) obj = OBJ_JOURNAL; else if (strncmp (obj_str, "namespace", STRLEN - 1) == 0) obj = OBJ_NAMESPACE; else if (strncmp (obj_str, "global", STRLEN - 1) == 0) obj = OBJ_GLOBAL; @@ -677,7 +677,6 @@ int fm_shell (void) strcpy (obj_str, args[0]); if (strncmp (obj_str, "lock", STRLEN - 1) == 0) obj = OBJ_LOCK; - else if (strncmp (obj_str, "zallocate", STRLEN - 1) == 0) obj = OBJ_ZALLOC; else if (strncmp (obj_str, "journal", STRLEN - 1) == 0) obj = OBJ_JOURNAL; else if (strncmp (obj_str, "namespace", STRLEN - 1) == 0) obj = OBJ_NAMESPACE; else if (strncmp (obj_str, "global", STRLEN - 1) == 0) obj = OBJ_GLOBAL; @@ -881,7 +880,7 @@ int fmadm_usage (void) fprintf (stdout, " stop, restart\n\n"); fprintf (stdout, " can be one of:\n"); - fprintf (stdout, " lock, zallocate, journal, namespace, global, routine, job,\n"); + fprintf (stdout, " lock, journal, namespace, global, routine, job,\n"); fprintf (stdout, " environment\n\n"); fprintf (stdout, " Not all actions are valid for all objects. Please see the FreeM manual\n"); @@ -1338,8 +1337,6 @@ void fm_configure (void) char usrrtn[4096]; char usrgbl[4096]; - char locktab[4096]; - char zalloctab[4096]; char jnldir[4096]; char jnlfile[4096]; char jnlmode[4]; @@ -1367,6 +1364,11 @@ void fm_configure (void) char *groupname = env_group; #if !defined(__OS2__) + if (geteuid () != 0) { + fprintf (stderr, "fmadm: not superuser\n"); + exit (1); + } + struct group *d_grp; struct passwd *d_user; gid_t d_gid; @@ -1391,8 +1393,6 @@ void fm_configure (void) snprintf (sysgbl, 4095, "%s/freem/%s/SYSTEM/globals", LOCALSTATEDIR, fma_environment); snprintf (usrrtn, 4095, "%s/freem/%s/USER/routines", LOCALSTATEDIR, fma_environment); snprintf (usrgbl, 4095, "%s/freem/%s/USER/globals", LOCALSTATEDIR, fma_environment); - snprintf (locktab, 4095, "/tmp/locktab"); - snprintf (zalloctab, 4095, "/tmp/zalloctab"); snprintf (jnldir, 4095, "%s/freem/%s/journals", LOCALSTATEDIR, fma_environment); snprintf (jnlfile, 4095, "%s/freem_journal_%s.dat", jnldir, fma_environment); snprintf (jnlmode, 3, "on");