uid= pw->pw_uid;
else
{
- uid= strtol(cpe->word, &check, 0);
- if (check[0] != '\0')
+ if (!strncmp(cpe->word, KW_SELF, strlen(KW_SELF)+1))
{
- fatal("do_uid: bad uid/login '%s' at %s:%d",
- cpe->word, cpe->file, cpe->line);
+ uid= getuid(); /* Real uid */
+ }
+ else {
+ uid= strtol(cpe->word, &check, 0);
+ if (check[0] != '\0')
+ {
+ fatal("do_uid: bad uid/login '%s' at %s:%d",
+ cpe->word, cpe->file, cpe->line);
+ }
}
}
#define KW_SERVICE "service"
#define KW_UID "uid"
+#define KW_SELF "SELF"
#define KW_SIGMGR "sigmgr"
#define KW_SCHEDULER "scheduler"
#define KW_PRIORITY "priority"
given system service. In each service entry, the following options can
be used:
.PP
-\fBuid\fR \fI<uid|user name>\fR\fB;\fR
+\fBuid\fR \fI<uid|SELF|user name>\fR\fB;\fR
.PP
.RS
specifies the user id or the user name to use to run the system service.
+\fISELF\fR can be used when the service has to start with the realuid of
+the user who's executing the \fBservice\fR utility.
Many system services run with root privileges (uid \fB0\fR).
The default user is service (uid \fB12\fR).
.RE