Przeczytaj opis programu setfacl, a następnie napisz skrypt, który:
odpyta użytkownika o typ i składniki nowego wpisu do listy ACL,
zbuduje polecenie, które umieści ten wpis na liście ACL,
wykona to polecenie (setfacl -m ...); tylko tworzymy nowe wpisy, nie próbujemy usuwać ani modyfikować istniejących.
Uwaga: celem jest uwolnienie użytkownika od pamiętania składni wywołania setfacl, a więc skrypt nie może prosić o podanie gotowej specyfikacji, tylko zadawać proste pytania, jak czy wpis ma być dla użytkownika, grupy, czy ustawienia domyślnego, itp.
Uwaga 2: podobnie jak w przypadku innych zadań, ciekawym rozszerzeniem ćwiczenia byłoby przetestowanie i dostosowanie rozwiązania do innych systemów uniksowych, np. Linuksa. W tym konkretnym zadaniu ta praca nie będzie łatwa, bo jakkolwiek listy ACL istnieją w większości współczesnych Uniksów, to mają różne postaci, i programy do ich tworzenia (setfacl) mogą mieć różne wymagania i sposób wywołania.
?
[color=green]dd if=/home/millena of=/dev/null [/color]-> [color=olive]od kiedy kieruje backupy do /dev/null idą o wiele szybciej [/color] [img]http://mandrivauser.ovh.org/.image/fftoie.gif[/img]
[url=http://bdtk.sourceforge.net][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] #337142
--------------------------------------------
"I had a letter in the post today. It said 'Gas Bill'. It sounds a tempting offer." -- Alan Cox
"Users have been trained that when a computer bluescreens and losing all of their data, it's either (a) just the way things are, or (b) it's microsoft's fault." -- Theodore Tso
Heh, ja też Nawet napisałem cały, ale zbackupowałem go twoim sposobem i nie mogę teraz znaleźć
Pamiętam że mniej więcej było tak (zalążek do uwagi 2), oczywiście skrypt nic nie ułatwia, no ale takie było zadanie
#!/bin/bash
fil="$1"
until [ -e "$fil" ]; do read -p Filename: fil; done
getfacl $fil
echo "Enter bez wartości pomija opcję:"
for lin in `setfacl --help | grep -v setfacl | cut -c7- | cut -f1 -d" "`; do
par=`echo ${lin} | grep = | cut -f1 -d=`
if [ "$par" != "" ]; then
read -p "Enter value for ${par} = :" valu
if [ "$valu" != "" ]; then setfacl ${par} ${valu} $fil; fi
else
read -p "Enter value for ${lin} (y/n):" valu
if [ "$valu" == "y" ]; then setfacl $lin $fil; fi
fi
getfacl $fil
done
Podpowiem, że analogicznie można wykorzystać trzecią kolumnę z helpa żeby nie pisać ręcznie statycznych ciągów, tylko je wygenerować, no i wszystko to można wczytać do tablicy i zrobić ewentualnie menu wyboru w pętli.... Gotowca nie dostaniesz