Use login_progok().
This commit is contained in:
parent
fbbe016b64
commit
ce28475da5
@ -17,7 +17,7 @@
|
||||
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
*
|
||||
* $Id: main.c,v 1.72 1997/08/25 01:52:11 brian Exp $
|
||||
* $Id: main.c,v 1.73 1997/08/26 23:20:11 brian Exp $
|
||||
*
|
||||
* TODO:
|
||||
* o Add commands for traffic summary, version display, etc.
|
||||
@ -38,8 +38,7 @@
|
||||
#include <netinet/in_systm.h>
|
||||
#include <netinet/ip.h>
|
||||
#include <sysexits.h>
|
||||
#include <pwd.h>
|
||||
#include <login_cap.h>
|
||||
#include <libutil.h>
|
||||
#include "modem.h"
|
||||
#include "os.h"
|
||||
#include "hdlc.h"
|
||||
@ -320,40 +319,6 @@ Greetings()
|
||||
}
|
||||
}
|
||||
|
||||
static int
|
||||
Runnable()
|
||||
{
|
||||
login_cap_t *lc;
|
||||
const struct passwd *pwd;
|
||||
char **data;
|
||||
int result;
|
||||
|
||||
result = 1; /* return non-zero if I'm runnable */
|
||||
|
||||
pwd = getpwuid(getuid());
|
||||
if (!pwd) {
|
||||
perror("getpwuid");
|
||||
return result; /* Run anyway - probably spawned from inetd or the like */
|
||||
}
|
||||
lc = login_getpwclass(pwd);
|
||||
if (!lc) {
|
||||
perror("login_getpwclass");
|
||||
return result; /* Run anyway - We're missing login.conf ? */
|
||||
}
|
||||
|
||||
data = login_getcaplist(lc, "prog.deny", NULL);
|
||||
if (data)
|
||||
for (; *data; data++)
|
||||
if (!strcmp(*data, "ppp")) {
|
||||
result = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
login_close(lc);
|
||||
|
||||
return result; /* OK to run */
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
@ -373,7 +338,7 @@ main(int argc, char **argv)
|
||||
if (!(mode & MODE_DIRECT))
|
||||
VarTerm = stdout;
|
||||
|
||||
if (!Runnable()) {
|
||||
if (!login_progok(getuid(), "/usr/sbin/ppp")) {
|
||||
LogPrintf(LogERROR, "You do not have permission to execute ppp\n");
|
||||
return EX_NOPERM;
|
||||
}
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" $Id: ppp.8,v 1.57 1997/08/23 23:14:24 brian Exp $
|
||||
.\" $Id: ppp.8,v 1.58 1997/08/26 23:20:16 brian Exp $
|
||||
.Dd 20 September 1995
|
||||
.Os FreeBSD
|
||||
.Dt PPP 8
|
||||
@ -131,13 +131,15 @@ stack (ie. Win95, WinNT)
|
||||
|
||||
.It Supports execution restriction.
|
||||
If
|
||||
.Nm
|
||||
.Nm /usr/sbin/ppp
|
||||
is specified in the
|
||||
.Dv prog.deny
|
||||
list in
|
||||
.Pa /etc/login.conf ,
|
||||
.Nm
|
||||
will refuse to execute.
|
||||
will refuse to execute. Refer to
|
||||
.Xr login_progok 3
|
||||
for further details.
|
||||
|
||||
.Sh GETTING STARTED
|
||||
|
||||
@ -2081,7 +2083,8 @@ Get port number if port number is using service name.
|
||||
.Xr syslog 3 ,
|
||||
.Xr syslog.conf 5 ,
|
||||
.Xr syslogd 8 ,
|
||||
.Xr login.conf 5
|
||||
.Xr login.conf 5 ,
|
||||
.Xr login_progok 3
|
||||
|
||||
.Sh HISTORY
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
.\" $Id: ppp.8,v 1.57 1997/08/23 23:14:24 brian Exp $
|
||||
.\" $Id: ppp.8,v 1.58 1997/08/26 23:20:16 brian Exp $
|
||||
.Dd 20 September 1995
|
||||
.Os FreeBSD
|
||||
.Dt PPP 8
|
||||
@ -131,13 +131,15 @@ stack (ie. Win95, WinNT)
|
||||
|
||||
.It Supports execution restriction.
|
||||
If
|
||||
.Nm
|
||||
.Nm /usr/sbin/ppp
|
||||
is specified in the
|
||||
.Dv prog.deny
|
||||
list in
|
||||
.Pa /etc/login.conf ,
|
||||
.Nm
|
||||
will refuse to execute.
|
||||
will refuse to execute. Refer to
|
||||
.Xr login_progok 3
|
||||
for further details.
|
||||
|
||||
.Sh GETTING STARTED
|
||||
|
||||
@ -2081,7 +2083,8 @@ Get port number if port number is using service name.
|
||||
.Xr syslog 3 ,
|
||||
.Xr syslog.conf 5 ,
|
||||
.Xr syslogd 8 ,
|
||||
.Xr login.conf 5
|
||||
.Xr login.conf 5 ,
|
||||
.Xr login_progok 3
|
||||
|
||||
.Sh HISTORY
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user