sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #57369
RE: Kopiere en fil til alle brugere
> -----Original Message-----
> From: Klaus S. Madsen [mailto:sslug@xxxxxxxxxxxxxxxx]
>
> > Jeg skal kopiere en fil til alle brugernes HOME er der en
> eller anden
> > smart måde at gøre dette på ???
>
> for i in /home/*; do
> cp fil /home/$i/
> done
>
> Det forudsætter så at alle brugerenes hjemmebiblioteker
> ligger i /home.
Lad os sige filen hedder fil ...
Hvis en (dum?) bruger har lavet et link fra /home/dum/fil til
f.eks /etc/passwd er du lidt på den.... (da du kører som root)
Hvad hvis det er brugerens mest vigtige fil du overskriver?
Der er ingen grund til at kopiere til lost+found, core ...
Hvad med ftp, samba ... (går ud fra rigtige brugere har UID>=500)
Hvem skal være ejer af filen?
Hvis det skal være brugeren selv, kan du måske bruge ...
FIL=fil
for USER in `ls /home/` ; do
if id "$USER" >/dev/null 2>&1 ; then
if test `id -u "$USER"` -ge 500 ; then
if test \! -f /home/$USER/$FIL ; then
su "$i" -c "cp /path/$FIL /home/$USER/"
else
echo "WARNING: File exist: /home/$USER/$FIL" >&2
fi
else
echo "INFO: skipping $USER. UID < 500" >&2
fi
else
echo "INFO: skipping $USER. Not a user" >&2
fi
done
Det er måske overkill.
(Og der skal tastes ret meget)
/Kristian Høgh.