bolug bonner linux user group
news about wissen files archive hilfe suchen  

 

archive :: SchAN-User

druckfassung

SchAN-User

Re: [Schan-user] Besitzer-Problem

To: Schulen ans Netz - Anwender <schan-user@xxxxxxxxxxxxxxxxx>
Subject: Re: [Schan-user] Besitzer-Problem
From: Jörg Fiebig <jfiebig@xxxxxxxxxx>
Date: Thu, 20 Apr 2006 16:45:41 +0200
Hallo Hans-Dietrich,

> es ging doch irgendwie im zusammenhang mit einem Windows-Server,
> wenn ich mich recht erinnere.

Win-Clients

> aber eigentlich willst du ja eine "richtige" Lösung - oder?

eben ;-)

> wenn du nach Verzeichnissen und nach allem anderen unterscheiden
> willst, dann sieht die Lösung so aus:
> 
> jetzt nur noch "sub bearbeite", alles andere sollte passen.

gut, aber
die GID von root und Lehrer ist anscheinend 0
ich sehe auch keine Veränderung der angezeigten GID
aber komischerweise passiert folgendes:

einer Dateien, die ssusi gehört weise ich die Gruppe Schüler per mc zu
nach dem durchlauf des scriptes ist die Datei in der Gruppe Admins
(das will ich ja auch - aber wieso passiert das?)
ach so - das passierte mit beta 42, da mir die Platte der 43d gerade
abgeschmiert ist
Mit 43d ging es nicht - da blieb die Gruppe Schueler - und nach einigen
Versuchen mit der Eingabe einer GID 'Admins' - war sie dann 0 - also
Gruppe root

Ich würde gerne definitiv im Script die Gruppenzugehörigkeit Admins
vergeben (damit ich Lese/Schreibrechte nur für die Gruppe erteilen kann
und als Lehrer mit Admin-Freigabe-Rechten dann zugriff habe)

Wie macht man das?

irgendwas klappte was bei dem chown-Befehl nicht

Ich habe eben:
chown -v ssusi:Schueler unterricht 

gemacht - und laut mc ist das auch alles so
nach dem Scriptdurchlauf (ohne das Ausklammern von "_eindammeln" gehörte
es aber wieder root:root

Das lag also an den _einsammel-Verzeichnis, das habe ich nun ausgenommen
- aber trotzdem würde ich gerne explizit die Gruppenzugehörigkeit auf
Admins setzen

-------

das neue Script:

#!/usr/bin/perl
use strict;
use File::Find;
my $verz = '/home/Schueler';  # hier entsprechend aendern
my ($uid, $gid);              # die globalen Variablen brauchen wir noch

# wir holen erstmal alle Dateien und Verzeichnisse in eine Liste
opendir(VERZEICHNIS, $verz)
   or die "Verzeichnis konnte nicht geoeffnet werden: $!\n";
my @logins = readdir(VERZEICHNIS);

# jetzt entfernen wir alles was kein Verzeichnis ist.
my @temp;
foreach my $login (@logins) 
  {
  if ($login !~ "_einsammeln")
     {
     if ($login =~ /^\w/) {  # wenn am Anfang ein "Wortzeichen"
         my $v = "$verz/$login";        # $v von Verzeichnis
         if (-d $v) { push @temp, $v }
         }
     }
  }
# jetzt haben wir alle Logins mit Pfad in @temp
# ausser _einsammel !!!

# jetzt machen wir fuer jedes dieser Logins Folgendes
# muss heissen: fuer jedes Verzeichnis in $verz !!!!

foreach my $pfad (@temp)
{
   # wir besorgen uns erstmal die UID und die GID
   my @status = stat($pfad);
   $uid       = $status[4];         # uebergeben an globale Variable!
   $gid       = $status[5];
   &File::Find::find(\&bearbeite, $pfad);
}

sub bearbeite
{
   # Dateirechte bearbeiten
   if (-f $File::Find::name)
      {
      # die Dateirechte aendern
      chmod (0660, $File::Find::name);   # hier Dateirechte anpassen
      # fuehrende 0 muss sein 6=lesen + schreiben
      # den Besitzer der Datei aendern
      # Hie sollte aber die Gruppe auf Admins gesetzt werden!! Nur wie?
      chown ($uid, $gid, $File::Find::name);
      }
   else
      {
      # die Verzeichnisrechte aendern
      chmod (0777, $File::Find::name);   # hier Verzeichnisrechte
anpassen
      # fuehrende 0 muss sein 7=lesen + schreiben + ausführen
      # den Besitzer des Verzeichnisses aendern
      chown ($uid, $gid, $File::Find::name);
      }

   # wenn die naechste zeile auskommentiert wird, dann
   # werden die gerade abgearbeitete Datei/Verz. und die neuen UID/GID
angezeigt
   # GID: Schueler: 105   Root:0  Lehrer:0  Admins: ?
   # UID von Schülern ab 2000
   print $File::Find::name," UID: ",$uid,"  GID: ",$gid, "\n";
}


Die Verfeinerungen:
Verzeichniss-Gruppe auch Admins
kein Leserecht für "alle" -> 0770
u.s.w.  wenn es denn dann läuft (also auch auf beta44 - die ich aber
erst nächste Woche noch saugen muss)


-- 
MfG J. Fiebig
http://www.Erzgebirgskolleg.de
http://www.Fortbildung.istnichtdumm.de
http://www.Arktur.hatdichlieb.de


_______________________________________________
schan-user mailing list
schan-user@xxxxxxxxxxxxxxxxx
http://www.heise.de/bin/newsletter/listinfo/schan-user

 

seitenanfang


 

news about wissen files archive hilfe suchen  
kontakt letzte änderung: 20.04.2006