sudo: jak to udelat?

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Neděle Září 23 12:10:10 CEST 2001


On 21 Sep 2001, Pavel Lisy wrote:

> V sudo mám nastaveno:
> 
> %users   marta.tmapy.cz=/usr/bin/head NOPASSWD:
> 
> Chtěl bych udělat neco na způsob:
> 
> /usr/bin/sudo /usr/bin/head --bytes `/usr/bin/isosize /dev/hda` <
> /dev/hda > /export/write-cd/image

Gratuluji, to je skutecne vyjimecne chytry zpusob, jak udelat sudo.
Proc tem uzivatelum rovnou nereknete rootovske heslo, to by vyslo
skoro nastejno? (Pokud takhle povolite spousteni head, tak mohou
napr. precist uplne libovolny soubor).

Pokud je ucelem povolit urcitou konkretni operaci -- v tomto pripade
zkopirovani obsahu cedecka, pak proste udelam program, ktery danou operaci
provadi, a povolim spusteni *tohoto programu*. Takovym programem muze byt
zcela jednoduchy skript:

#!/bin/sh
dev=/dev/hda
size=`isosize $dev`
[ "$size" -gt 0 ] || exit 1
exec head --bytes="$size" $dev

Navic je rozumne neco takoveho nespoustet primo pod rootem, ale misto
toho nastavit prava na prislusnem zarizeni (zarizenich) tak, aby to mohl
provadet nejaky specializovany a mene privilegovany uzivatel.

P.S. Syntaxe vyse uvedene direktivy v sudoers mi pripada ponekud
podezrela.

--Pavel Kankovsky aka Peak  [ Boycott Microsoft--http://www.vcnet.com/bms ]
"Resistance is futile. Open your source code and prepare for assimilation."



Další informace o konferenci Linux