mirror of
https://github.com/opnsense/src.git
synced 2026-06-09 08:43:19 -04:00
Add an 'add' command to ugidfw(8), which permits specifying a new
rule without explicitly specifying a new rule number. Update copyrights, remove license clause three. Obtained from: TrustedBSD Project Sponsored by: DARPA, McAfee Research
This commit is contained in:
parent
47ab23aa82
commit
ae5fbd9b53
2 changed files with 65 additions and 10 deletions
|
|
@ -1,4 +1,4 @@
|
|||
.\" Copyright (c) 2002 Networks Associates Technology, Inc.
|
||||
.\" Copyright (c) 2002, 2004 Networks Associates Technology, Inc.
|
||||
.\" All rights reserved.
|
||||
.\"
|
||||
.\" This software was developed for the FreeBSD Project by Chris
|
||||
|
|
@ -15,9 +15,6 @@
|
|||
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||
.\" notice, this list of conditions and the following disclaimer in the
|
||||
.\" documentation and/or other materials provided with the distribution.
|
||||
.\" 3. The names of the authors may not be used to endorse or promote
|
||||
.\" products derived from this software without specific prior written
|
||||
.\" permission.
|
||||
.\"
|
||||
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
|
||||
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
|
|
@ -33,7 +30,7 @@
|
|||
.\"
|
||||
.\" $FreeBSD$
|
||||
.\"
|
||||
.Dd October 11, 2002
|
||||
.Dd February 24, 2004
|
||||
.Dt UGIDFW 8
|
||||
.Os
|
||||
.Sh NAME
|
||||
|
|
@ -41,6 +38,18 @@
|
|||
.Nd "firewall-like access controls for file system objects"
|
||||
.Sh SYNOPSIS
|
||||
.Nm
|
||||
.Cm add
|
||||
.Cm subject
|
||||
.Op Cm not
|
||||
.Op Cm uid Ar uid
|
||||
.Op Cm gid Ar gid
|
||||
.Cm object
|
||||
.Op Cm not
|
||||
.Op Cm uid Ar uid
|
||||
.Op Cm gid Ar gid
|
||||
.Cm mode
|
||||
.Ar arswxn
|
||||
.Nm
|
||||
.Cm list
|
||||
.Nm
|
||||
.Cm set
|
||||
|
|
@ -71,6 +80,27 @@ policy.
|
|||
.Pp
|
||||
The arguments are as follows:
|
||||
.Bl -tag -width indent -offset indent
|
||||
.It Cm add
|
||||
Add a new
|
||||
.Nm
|
||||
rule.
|
||||
.It Xo
|
||||
.Cm add
|
||||
.Cm subject
|
||||
.Op Cm not
|
||||
.Op Cm uid Ar uid
|
||||
.Op Cm gid Ar gid
|
||||
.Cm object
|
||||
.Op Cm not
|
||||
.Op Cm uid Ar uid
|
||||
.Op Cm gid Ar gid
|
||||
.Cm mode
|
||||
.Ar arswxn
|
||||
.Xc
|
||||
Add a new rule, automatically selecting the rule number.
|
||||
See the description of
|
||||
.Cm set
|
||||
for syntax information.
|
||||
.It Cm list
|
||||
Produces a list of all the current
|
||||
.Nm
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/*-
|
||||
* Copyright (c) 2002 Networks Associates Technology, Inc.
|
||||
* Copyright (c) 2002, 2004 Networks Associates Technology, Inc.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software was developed for the FreeBSD Project by NAI Labs, the
|
||||
|
|
@ -15,9 +15,6 @@
|
|||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The names of the authors may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
|
|
@ -50,6 +47,9 @@ void
|
|||
usage(void)
|
||||
{
|
||||
|
||||
fprintf(stderr, "ugidfw add [subject [not] [uid uid] [gid gid]]"
|
||||
" [object [not] [uid uid] \\\n");
|
||||
fprintf(stderr, " [gid gid]] mode arswxn\n");
|
||||
fprintf(stderr, "ugidfw list\n");
|
||||
fprintf(stderr, "ugidfw set rulenum [subject [not] [uid uid] [gid gid]]"
|
||||
" [object [not] \\\n");
|
||||
|
|
@ -59,6 +59,29 @@ usage(void)
|
|||
exit(-1);
|
||||
}
|
||||
|
||||
void
|
||||
add_rule(int argc, char *argv[])
|
||||
{
|
||||
char errstr[BUFSIZ];
|
||||
struct mac_bsdextended_rule rule;
|
||||
long value;
|
||||
int error, rulenum;
|
||||
char *endp;
|
||||
|
||||
error = bsde_parse_rule(argc, argv, &rule, BUFSIZ, errstr);
|
||||
if (error) {
|
||||
fprintf(stderr, "%s\n", errstr);
|
||||
return;
|
||||
}
|
||||
|
||||
error = bsde_add_rule(&rulenum, &rule, BUFSIZ, errstr);
|
||||
if (error) {
|
||||
fprintf(stderr, "%s\n", errstr);
|
||||
return;
|
||||
}
|
||||
printf("Added rule %d\n", rulenum);
|
||||
}
|
||||
|
||||
void
|
||||
list_rules(void)
|
||||
{
|
||||
|
|
@ -168,7 +191,9 @@ main(int argc, char *argv[])
|
|||
if (argc < 2)
|
||||
usage();
|
||||
|
||||
if (strcmp("list", argv[1]) == 0) {
|
||||
if (strcmp("add", argv[1]) == 0) {
|
||||
add_rule(argc-2, argv+2);
|
||||
} else if (strcmp("list", argv[1]) == 0) {
|
||||
if (argc != 2)
|
||||
usage();
|
||||
list_rules();
|
||||
|
|
|
|||
Loading…
Reference in a new issue