Return to BSD News archive
Xref: sserve comp.sys.sun.admin:48321 comp.unix.admin:29536 comp.unix.bsd:16643 comp.unix.shell:22870 comp.unix.solaris:39351 comp.unix.ultrix:25425 comp.unix.xenix:10637 comp.security.unix:13487 Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!simtel!news.kei.com!news.mathworks.com!uunet!in1.uu.net!tembel!not-for-mail From: shields@tembel.org (Michael Shields) Newsgroups: comp.sys.sun.admin,comp.unix.admin,comp.unix.bsd,comp.unix.shell,comp.unix.solaris,comp.unix.ultrix,comp.unix.xenix,comp.security.unix Subject: Re: Shutdown Account Date: 9 Jun 1995 01:09:52 -0000 Organization: Tembel's Hedonic Commune Lines: 45 Distribution: inet Message-ID: <3r8710$msp@yage.tembel.org> References: <3r2j7f$7p4@apakabar.cc.columbia.edu> <m0sJEXa-000DJrC@yage.tembel.org> <Pine.SUN.3.91.950608133632.5338L-100000@konichiwa.cc.columbia.edu> NNTP-Posting-Host: yage.tembel.org NNTP-Posting-User: shields In article <Pine.SUN.3.91.950608133632.5338L-100000@konichiwa.cc.columbia.edu>, Data <czen@columbia.edu> wrote: > > You might want to use a wrapper that double-checks that it's being > > run from the console, and exec's halt without arguments. This adds > > redundant security, and also prevents anyone from su'ing to it when not > > on the console. > > thatz a great idea! are there any sample wrappers on the net that i might > borrow and mutate? Off the top of my head: #!/usr/bin/perl # # Secure shutdown-account shell, 1995-06-08 # Michael Shields <shields@tembel.org> # # Public domain. Absolutely NO WARRANTY. # require 'syslog.pl'; open(SECURETTY, '/etc/securetty') || die "Couldn't open /etc/securetty: $!\n"; openlog('-shutdown', 'cons', 'auth'); while (<SECURETTY>) { chop; $securep{$_}++; } $tty = `/usr/bin/tty`; chop $tty; $tty =~ s,^.*/,,; # Necessary to prevent su'ing to the account. unless ($securep{$tty}) { syslog('warning', "Shutdown refused on insecure $tty by " . getpwuid($<)); die "Refused; you can only shutdown from the console\n"; } exec '/usr/etc/halt', '-halt'; -- Shields.