Een aantal tips voor nieuwe systeembeheerders.
Jim Dennis, jadestar@rahul.netCreëer en onderhoud een /README.`hostname` en/of een
/etc/README.`hostname`
[Of mogelijk /usr/local/etc/README.`hostname` -Maint. ]Maak vanaf *de eerste dag* dat je een systeem beheert,
notities in een online logbestand. Je zou een
"vi /README.$(hostname)" een regel in root's
/bash_logout aan kunnen maken.
Een andere manier om dit te doen is het schrijven van een su of
sudo script die iets dergelijks doet als in:
function exit \
{ unset exit; exit; \
cat ~/tmp/session.$(date +%y%m%d) \
>> /README.$(hostname) && \
vi /README.$(hostname)
}
script -a ~/tmp/session.$(date +%y%m%d)
/bin/su.org -(gebruik de opdracht typescript om een sessielog
te creëren en maak een functie aan voor het automatisch
toevoegen en bijwerken van de log).Ik geef toe dat ik het automatiseren van dit beleid niet heb
geïmplementeerd. Ik vertrouwde tot dusverre op
zelfdiscipline.
Ik heb echter met het idee gespeeld (zelfs tot aan het punt
vooraf intypen van de scripts en shellfuncties zoals je ze
hier ziet). Een ding dat me weerhoudt is de 'script' opdracht zelf.
Ik denk dat ik een paar opdrachtregelparameters aan de broncode
toe moet voegen (voor een pause/stop van het scriptopname vanaf
de opdrachtregel) voordat ik ze aanlever voor gebruik.Mijn laatste suggestie (voor deze ronde):Het pad van root zou moeten bestaan uit 'PATH= /bin'Dat is alles. Niets meer in het pad van root. Alles wat root
doet wordt geleverd door een symlink vanuit /bin of door een
alias of shellfunctie of is een script of binary in /bin, of
wordt uitgetikt met een expliciet pad.Dit maakt iedereen draaiend als root zich bewust (soms pijnlijk
bewust) van hoe hij/zij binaire bestanden vertrouwt. De verstandige
beheerder van een multi-user host zal periodiek zijn /bin en
/.*history bestanden doorzoeken op bepaalde patronen en
loopholes.De echt gemotiveerde beheerder zal reeksen ontdekken die kunnen
worden geautomatiseerd, plaatsen waar veiligheidscontroles kunnen
worden ingevoegd, en taken waarvoor "root" privileges
tijdelijk zouden moeten worden vermeden
(opstarten van editors, MTA's en andere grote interactieve
programma's met uitgebreide scriptmogelijkheden die in
transparante of gegevensbestanden, *zouden* kunnen worden ingesloten
zoals de befaamde vi ./.exrc en emacs ./.emacs en de zelfs
meer verraderlijke $EXINIT en ingesloten header/footer
macro's). Vanzelfspreken kunnen dergelijke opdrachten worden
uitgevoerd met iets als:
cp $data $some_users_home/tmp
su -c $origcommand $whatever_switches
cp $some_users_home/tmp $data
(...waar de details afhangen van de opdracht).De meeste van deze voorzorgsmaatregelen zijn voor de home- of voor een
"single" user werkstation wat overdreven, maar vormen
een erg goed beleid voor de beheerder van een multi-user systeem ---
in het bijzonder wordt een publiek toegankelijk systeem (zoals die
van netcom).