summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordavidn <davidn@FreeBSD.org>1997-01-02 08:05:43 +0000
committerdavidn <davidn@FreeBSD.org>1997-01-02 08:05:43 +0000
commit92746eca8682886861092d9eca8783451c1e5fd0 (patch)
tree62a914cb0e26eee76f6757ec5a9ef9b1ae57d3e6
parent7174e698fdd0caf4f14e4f893f1bcec7a1f74e80 (diff)
downloadFreeBSD-src-92746eca8682886861092d9eca8783451c1e5fd0.zip
FreeBSD-src-92746eca8682886861092d9eca8783451c1e5fd0.tar.gz
Added group= facility to /etc/ttys for tty grouping for more
more manageable and convenient referencing by login.conf (login class database) and (e.g.) login.access. This is the first of a group of commits which implements the login class capabilities database.
-rw-r--r--include/ttyent.h3
-rw-r--r--lib/libc/gen/getttyent.37
-rw-r--r--lib/libc/gen/getttyent.c3
-rw-r--r--libexec/getty/ttys.536
4 files changed, 38 insertions, 11 deletions
diff --git a/include/ttyent.h b/include/ttyent.h
index e95db25..accaf9c 100644
--- a/include/ttyent.h
+++ b/include/ttyent.h
@@ -42,6 +42,8 @@
#define _TTYS_ON "on"
#define _TTYS_SECURE "secure"
#define _TTYS_WINDOW "window"
+#define _TTYS_GROUP "group"
+#define _TTYS_NOGROUP "none"
struct ttyent {
char *ty_name; /* terminal device name */
@@ -52,6 +54,7 @@ struct ttyent {
int ty_status; /* status flags */
char *ty_window; /* command to start up window manager */
char *ty_comment; /* comment field */
+ char *ty_group; /* tty group */
};
#include <sys/cdefs.h>
diff --git a/lib/libc/gen/getttyent.3 b/lib/libc/gen/getttyent.3
index 7ee453d..0bbd850 100644
--- a/lib/libc/gen/getttyent.3
+++ b/lib/libc/gen/getttyent.3
@@ -31,7 +31,7 @@
.\"
.\" @(#)getttyent.3 8.1 (Berkeley) 6/4/93
.\"
-.Dd June 4, 1993
+.Dd November 17, 1996
.Dt GETTTYENT 3
.Os BSD 4.3
.Sh NAME
@@ -69,6 +69,7 @@ struct ttyent {
int ty_status; /* flag values */
char *ty_window; /* command for window manager */
char *ty_comment; /* comment field */
+ char *ty_group; /* tty group name */
};
.Ed
.Pp
@@ -98,6 +99,10 @@ Allow users with a uid of 0 to login on this terminal.
.El
.It Fa ty_window
The command to execute for a window system associated with the line.
+.It Fa ty_group
+A group name to which the tty belongs.
+If no group is specified in the ttys description file,
+then the tty is placed in an anonymous group called "none".
.It Fa ty_comment
Any trailing comment field, with any leading hash marks (``#'') or
whitespace removed.
diff --git a/lib/libc/gen/getttyent.c b/lib/libc/gen/getttyent.c
index 5d40ac9..db615cb 100644
--- a/lib/libc/gen/getttyent.c
+++ b/lib/libc/gen/getttyent.c
@@ -110,6 +110,7 @@ getttyent()
}
tty.ty_status = 0;
tty.ty_window = NULL;
+ tty.ty_group = _TTYS_NOGROUP;
#define scmp(e) !strncmp(p, e, sizeof(e) - 1) && isspace(p[sizeof(e) - 1])
#define vcmp(e) !strncmp(p, e, sizeof(e) - 1) && p[sizeof(e) - 1] == '='
@@ -122,6 +123,8 @@ getttyent()
tty.ty_status |= TTY_SECURE;
else if (vcmp(_TTYS_WINDOW))
tty.ty_window = value(p);
+ else if (vcmp(_TTYS_GROUP))
+ tty.ty_group = value(p);
else
break;
}
diff --git a/libexec/getty/ttys.5 b/libexec/getty/ttys.5
index 7b65526..7337810 100644
--- a/libexec/getty/ttys.5
+++ b/libexec/getty/ttys.5
@@ -30,9 +30,9 @@
.\" SUCH DAMAGE.
.\"
.\" from: @(#)ttys.5 8.1 (Berkeley) 6/4/93
-.\" $Id: ttys.5,v 1.1.1.2 1996/04/13 15:33:16 joerg Exp $
+.\" $Id: ttys.5,v 1.3 1996/05/05 19:01:13 joerg Exp $
.\" "
-.Dd June 4, 1993
+.Dd November 17, 1996
.Dt TTYS 5
.Os
.Sh NAME
@@ -86,10 +86,15 @@ or
The remaining fields set flags in the
.Fa ty_status
entry (see
-.Xr getttyent 3 )
-or specify a window system process that
+.Xr getttyent 3 ),
+specify a window system process that
.Xr init 8
-will maintain for the terminal line.
+will maintain for the terminal line, or specify a tty group
+name that allows the login class database (see
+.Xr login.conf 5 )
+to refer to many ttys as a group, to selectively allow or
+deny access or enable or disable accounting facilities for
+ttys as a group.
.Pp
As flag values, the strings ``on'' and ``off'' specify that
.Xr init
@@ -117,21 +122,31 @@ string which
will execute
.Em before
starting the command specified by the second field.
+.Pp
+The string ``group='' may be followed by a group name comprised of
+alphanumeric characters that can be used by
+.Xr login.group 5
+to refer to many tty lines as a group to enable or disable access
+and accounting facilities.
+If no group is specified, then the tty becomes a member of the group
+"none".
+For backwards compatibility, the ``group='' should appear last on the
+line, immediately before the optional comment.
.Sh EXAMPLES
.Bd -literal
# root login on console at 1200 baud
console "/usr/libexec/getty std.1200" vt100 on secure
# dialup at 1200 baud, no root logins
-ttyd0 "/usr/libexec/getty d1200" dialup on # 555-1234
+ttyd0 "/usr/libexec/getty d1200" dialup on group=dialup # 555-1234
# Mike's terminal: hp2621
-ttyh0 "/usr/libexec/getty std.9600" hp2621-nl on # 457 Evans
+ttyh0 "/usr/libexec/getty std.9600" hp2621-nl on group=dialup # 457 Evans
# John's terminal: vt100
-ttyh1 "/usr/libexec/getty std.9600" vt100 on # 459 Evans
+ttyh1 "/usr/libexec/getty std.9600" vt100 on group=dialup # 459 Evans
# terminal emulate/window system
ttyv0 "/usr/new/xterm -L :0" vs100 on window="/usr/new/Xvs100 0"
# Network pseudo ttys -- don't enable getty
-ttyp0 none network
-ttyp1 none network off
+ttyp0 none network group=pty
+ttyp1 none network off group=pty
.Ed
.Sh FILES
.Bl -tag -width /etc/ttys -compact
@@ -142,6 +157,7 @@ ttyp1 none network off
.Xr getttyent 3 ,
.Xr ttyslot 3 ,
.Xr gettytab 5 ,
+.Xr login.conf 5 ,
.Xr termcap 5 ,
.Xr getty 8 ,
.Xr init 8
OpenPOWER on IntegriCloud