|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T d
Length: 6119 (0x17e7)
Types: TextFile
Names: »dec.single.user.login«
└─⟦4f9d7c866⟧ Bits:30007245 EUUGD6: Sikkerheds distributionen
└─⟦this⟧ »./misc/dec.single.user.login«
From umd5!haven!purdue!mailrus!husc6!rutgers!psuvax1!psuvm!barilvm!bimacs!yedidya Wed Sep 6 17:37:16 EDT 1989
Article 18577 of comp.unix.wizards:
Path: umd5!haven!purdue!mailrus!husc6!rutgers!psuvax1!psuvm!barilvm!bimacs!yedidya
>From: yedidya@bimacs.BITNET (Yedidya Israel)
Newsgroups: comp.unix.wizards
Subject: SUMMERY: Single user security on DEC workstations.
Message-ID: <1053@bimacs.BITNET>
Date: 4 Sep 89 12:04:58 GMT
Organization: Math & CS, BarIlan U, Ramat-Gan, Israel
Lines: 181
In a previous article I asked:
>
>We have a few workstation of DEC running Ultrix3.0 with DECwindows.
>
>In order to prevent users from having root privileges (via b/2 on
>console) we put an "exec /bin/login" in /.profile.
>
Thanks to all of those who replied, these are the answers I got:
>From: Amos Shapir <amos@taux01.nsc.com<
You have encountered DEC's rather clumsy attempt to prevent root from
logging in, but that's the general idea: 'login root' is out, long
live 'su'. The principle is that since 'su's are registered, you could
always find out who used the root account.
--
Amos Shapir amos@taux01.nsc.com or amos@nsc.nsc.com
National Semiconductor (Israel) P.O.B. 3007, Herzlia 46104, Israel
Tel. +972 52 522261 TWX: 33691, fax: +972-52-558322
34 48 E / 32 10 N (My other cpu is a NS32532)
>From: prl%iis.UUCP@cernvax
Date: 25 Aug 89 9:58 +0200
This may not give you the protection that you hope. Try booting the machine
and leaning on |C just before it starts the login shell; or leaning
on |C while it's doing fsck in multiuser.
Sun has changed init so that if console is set as non-secure in ttys,
then `/bin/login root' is run instead of /bin/sh in single-user mode.
Unfortunately, for the sufficiently subtle, this is no hinderance anyway.
I can send more details to postmaster or root on your machine, including
DEC's most unsatisfactory response. Fortunately, we don't have
any DEC workstations.
Replys to ...!uunet!mcvax!ethz!prl, prl@ethz.uucp, and prl@iis.ethz.ch
should work, depending on the mood of your mailer.
If you are running Ultrix 3.0, you should turn off setuid on /bin/login
or install 3.1 right now, if you are at all interested in security.
--
Peter Lamb
uucp: uunet!mcvax!ethz!prl eunet: prl@ethz.uucp Tel: +411 256 5241
Integrated Systems Laboratory
ETH-Zentrum, 8092 Zurich
>From: Carl-Lykke Pedersen <carllp@diku.dk>
We use the following program (called /.lockup) and calls it from
/.profile
It is not completly secure, but I hope you can use it.
Regards
Carl-Lykke
/* Written by Bruce G. Barnett <barnett@ge-crd.arpa> */
#include <stdio.h>
#include <signal.h>
#include <pwd.h>
struct passwd *pwd;
struct passwd *getpwuid();
char *strcpy();
char *crypt();
char *getpass();
char *pw;
char pwbuf[10];
char *rootpw = "DEFAULT_CRYPTED_PASSWD";
#define MESSAGE() fprintf(stderr, "\n\007\007\n%s\n%s\n%s\n%s\n\n", \
"***********************************************************", \
"*** THE SYSTEM IS IN AN INCONSISTENT STATE ***", \
"*** PLEASE, CONTACT THE COMPUTER DEPARTMENT IMMEDIATELY ***", \
"***********************************************************")
main()
{
int msg = 0;
signal(SIGINT, SIG_IGN);
signal(SIGQUIT, SIG_IGN);
signal(SIGTSTP, SIG_IGN);
/* Get the password entry for root */
/* use 0 if you want to hard-wire the passwd for root */
/* else use getuid() */
pwd=getpwuid(0);
if (pwd != NULL)
rootpw = pwd->pw_passwd;
while (1) {
if (msg++ % 5 == 0)
MESSAGE();
strcpy(pwbuf,getpass("Password:"));
pw = crypt(pwbuf, rootpw);
if (strcmp(pw, rootpw) == 0)
exit(0);
}
}
>From: barnett@unclejack.crd.ge.com (Bruce Barnett)
We used to do this until it corrupted our file systems.
If a system crashed, and rebooted, and it could not automatically
repair the disks, it would go into single user mode.
When it executed login, it would wait for a password, not get one,
and terminated. Then the system would continue the reboot, going
into multi-user mode WITHOUT REPAIRING THE DISK!
Eventually the disk became very corrupted and we lost a lot of files.
My solution was to run a program lock.c instead of login:
lock.c:
#include <stdio.h>
#include <signal.h>
#include <pwd.h>
struct passwd *pwd;
struct passwd *getpwuid();
char *strcpy();
char *crypt();
char *getpass();
char *pw;
char pwbuf[10];
main()
{
signal(SIGINT, SIG_IGN);
signal(SIGQUIT, SIG_IGN);
signal(SIGTSTP, SIG_IGN);
/* get the password entry for root */
/* use 0 if you want to hard-wire the passwd for root */
/* else use getuid() */
pwd=getpwuid(getuid());
if (pwd == NULL )
(void) fprintf(stderr,"Cannot get password entry for root");
while ( 1) { /* forever */
(void) strcpy(pwbuf,getpass("Password:"));
pw = crypt(pwbuf, pwd->pw_passwd);
if (strcmp(pw,pwd->pw_passwd) == 0 ) {
return(0);
}
}
}
--
Bruce G. Barnett <barnett@crd.ge.com> uunet!crdgw1!barnett
--
| Israel Yedidya, Math & CS Department, Bar-Ilan U, Ramat-Gan, ISRAEL. |
+----------------------------------------------------------------------+
| Bitnet: yedidya@bimacs |
| Internet: yedidya@bimacs.biu.ac.il |
| Arpa: yedidya%bimacs.bitnet@cunyvm.cuny.edu |
| Uucp: ...!uunet!mcvax!humus!bimacs!yedidya |
| Csnet: yedidya%bimacs.bitnet%cunyvm.cuny.edu@csnet-relay |
\----------------------------------------------------------------------/
\--- If someone proves there is no God, I'll stop being religious ---/
--------------------------------------------------------------------