← Back to team overview

sslug-teknik team mailing list archive

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.