Re: Manipulation im Homeverzeichnis verhindern
On Monday 09 September 2002 21:39, Ulrich Wiederhold wrote:
[...]
> * Ulrich Gehring <ufg@hosengummi.de> [020909 21:09]:
> > Gibt es da etwas eleganteres als beim Booten das ganze
> > Verzeichnis zu löschen und dann ein "neutrales" hinein zu
> > kopieren?
>
> Du kannst das über Benutzerrechte machen.
>
> 1. Wenn alle Benutzer nicht in ihrem Homeverzeichnis schreiben
> dürfen, kannst Du auch alle auf ein /home/default setzen und
> ihnen dort die Schreibrechte entziehen (ala chmod 555), dann
> brauchst Du nicht für jeden Benutzer ein home-Verzeichnis.
>
> 2. Bei allen Files im Verzeichnis wäre vielleicht ein "chmod
> 444" angebracht.
>
> 3. Zusätzlich solltest Du eine entsprechende umask in der
> .bashrc setzen.
>
> 4. Wenn die User irgendwo Daten ablegen können sollen, einfach
> ein Verzeichnis /daten anlegen, über quotas dessen Größte
> begrenzen, vielleicht zur Sicherheit ein T-Bit setzen, dann
> können mit entsprechenden Rechten die User ihre Dateien nicht
> gegenseitig verändern/löschen. Diese Verzeichnis kannst Du dann
> bei jedem Neustart löschen, oder per cronjob jede Stunde, sofern
> ein gewisses Alter der Datei überschritten ist.
[...]
Ich finde das ist ein etwas unflexibler Weg, ich würd's anders
machen. Allerdings hat deine variante den Vorteil, dass sie den
User ein sehr enges Korsett anlegt. So ähnlich würde man es in
einer grösseren Firma sicherlich in Erwägung ziehen.
Das KDE Menü eines Benutzers liegt unterhalb von
$HOME/.kde/share/applnk $HOME ist in meinem Beispiel durch dein
entsprechendes User Verzeichnis zu ersetzen!
Ist das Home Verzeichnis des Users eine ext2 oder ext3 Partition,
dann:
Damit der User nichts mehr an den KDE Menüs ändern kann setzt du
dieses Verzeichnis als root mit
chattr -i $HOME/.kde/share/applnk
auf immutable (unveränderlich). Die Rechte und Zugehörigkeiten des
verzeichnisses bleibt gleich nur kann der User nichts mehr in
dieses Verzeichnis schreiben. Und das beste ist er wird sich nur
wundern warum er nicht in das Verzeichhnis schreiben kann und es
nicht löschen kann. Für ihn sieht alles so wie immer aus :)
Das gleiche machst du jetzt mit allen Dateien und Verzeichnissen
unter $HOME//KDesktop:
su -
cd KDesktop
find . -type f -exec chattr +i {} \;
find . -type d -exec chattr +i {} \;
cd ..
chattr +i KDesktop
und der User ist eingekästelt, zumindestens was KDE und den KDE
Desktop angeht.
Alle anderen Verzeichnisse und Dateien sind weiterhin mit ihren
gesetzten Rechten vom User zu bearbeiten.
Nachteilig ist allerdings, dass bei einem Wechsel zu einer neuen
KDE Version unter Umständen alle diese Einstellungen wieder zu
ändern sind. Das bedeutet dann etwas mehr arbeit.
Ist das Home Verzeichnis des Users keine ext2 oder ext3 Partition
dann bleibt dir nur der Weg die ownership der betreffenden Dateien
und Verzeichnisse dem User zu entziehen:
chown root:root $HOME/.kde/share/applnk
su -
cd KDesktop
find . -type f -exec chown root:root {} \;
find . -type d -exec chown root:root {} \;
cd ..
chown root:root KDesktop
Ein weiterer möglicher Weg ist die Verzeichnisse durch links auf
die entsprechenden Systemverzeichnisse zu ersetzen, das ist sogar
ein etwas eleganterer Weg, IMHO :)
rm -r $HOME/.kde/share/applnk
ln -s /usr/share/applnk/ $HOME/.kde/share/applnk
Die Änderungen für das Verzeichnis KDesktop sind etwas
umfangreicher. Am einfachsten ist es, wenn du ein KDesktop
Verzeichnis eines Test Users als Vorlage nach /etc opt kopierst
und das dann verlinkst.
cp -r /hame/testuser/KDesktop /etc/opt
find /etc/opt/KDesktop -exec chown root:root {} \;
chown root:root /etc/opt/KDesktop
jetzt wechselst du in das Userverzeichnis:
cd $HOME/
rm -r $HOME/KDesktop
ln -s $HOME/KDesktop /etc/opt/KDesktop
So, dass waren jetzt drei Beispiele wie man es machen kann, such
dir eins aus:)
Tschüss,
Thomas
Reply to: