Tutorial: Staff-Nutzer in Leopard unbekannt

ac, den 10. Januar 2008
OS X Leopard - Wallpaper
OS X Leopard – Wallpaper

In diesem Tutorial wollen wir uns einem Problem widmen, das unter OS X Leopard auftreten kann. Ist der Nutzer „Staff“ als „Unbekannt“ bei den Zugriffsrechten eingetragen, dann gibt es mitunter Probleme bei der Freigabe von Ordnern oder Dateien im Netzwerk. Wir zeigen euch, wie ihr dies beheben könnt.

Nach einem Update auf Leopard, kann es vorkommen, dass die Gruppe „Staff“ als „Unbekannt“ angezeigt wird. Möchte man Zugriffsrechte im Info-Fenster (CMD + I) ändern, kann es dazu kommen, dass Mac OS X einen Neustart hinlegt. „Unbekannt“ lässt sich auch nicht löschen. Dieses Problem ist nervig und hat Auswirkung auf die Dateien und Dokumente, die man vor dem Update benutzt hat. Hierzu kann folgendes helfen: Geht in das Terminal und gebt folgende Befehle ein. Bei „Benutzername“ gebt den Benutzer-Kurznamen (also den Namen nach dem das Heimverzeichnis benannt ist) ein. Wichtig! Solltet ihr mehrere Festplatten haben, mit CMD + E lassen sich weitere interne und externe Laufwerke deaktivieren. Danach sollte nur noch die Systemfestplatte auf dem Desktop sichtbar sein.

sudo dscl . create /Groups/Benutzername GroupMembership Benutzername
sudo dscl . change /Groups/Benutzername RecordName Benutzername _Benutzername

Ihr müsst die erste Zeile und danach die zweite Zeile eingeben, jeweils mit sudo beginnend. Habt ihr mehrere Benutzeraccounts, die davon betroffen sind, müssen diese mit den gleichen Befehlen auf die anderen Benutzer angewendet werden. Ganz wichtig ist, dass der Unterstrich vor dem Benutzernamen stehen bleiben muss!

Hilft die Lösung nicht, kann man es mit diesem Script von Thinkyhead im Terminal versuchen. Das aber nur, wenn wirklich alle Stricke reißen!

#!/bin/bash
#
# Leopard User Fix by Thinkyhead
#
# Fixes the broken group membership in Leopard after an upgrade
#

if [ `whoami` == "root" ]; then
 echo "[ERROR] `basename $0` must be executed as an admin user (no sudo)."
 exit 1
fi

GID_IS_UID=`sudo dscl . read /Users/$USER | grep PrimaryGroupID | grep "$UID"`
GID_IS_STAFF=`sudo dscl . read /Users/$USER | grep PrimaryGroupID | grep 20`

if [ -z $GID_IS_UID ]; then
 echo "[ERROR] It looks like your account is already fixed!"
  if [ -z "$GID_IS_STAFF" ]; then
   echo "[ERROR] However, you are not a member of group 'staff' which is bad!"
  fi

 echo -n "Would you like to proceed anyway? (y/N):"; read PROCEED
 if [ -z $REPAIR ] || [ "$PROCEED" = "n" ] || [ "$PROCEED" = "N" ]; then
  exit 0
 fi
fi

#
# 1. Change User's primary group to "staff" (20):
#
	sudo dscl . changei /Users/$USER PrimaryGroupID 1 20

#
# 2. Make sure the user is in the "staff" group in Directory Services:
#

USER_IS_IN_STAFF=`sudo dscl . read /Groups/staff | grep GroupMembership | grep "$USER"`

if [ -z $USER_IS_IN_STAFF ]; then
	sudo dscl . append /Groups/staff GroupMembership $USER
fi

#
# 3. Fix group permissions on all items in the user's home folder:
#
	sudo chgrp -R staff $HOME

#
# ...or more slowly, but more accurately:
#
#	sudo chgrp staff $HOME
#	sudo find $HOME -group $UID -exec chgrp staff "{}" ;
#

#
# 4. Delete the group that's no longer in use:
#
	sudo dscl . delete /Groups/$USER >/dev/null 2>&1

#
# 5. Repair Permissions
#

echo -n "Would you like to repair permissions? (Y/n):"; read REPAIR
if [ -z $REPAIR ] || [ "$REPAIR" = "y" ] || [ "$REPAIR" = "Y" ]; then
  sudo diskutil repairPermissions /
fi

#
# 6. Reboot for safety.
#

echo -n "Logging out is recommended, but reboot is more thorough.nWould you like to reboot? (Y/n):"; read REBOOT
if [ -z $REBOOT ] || [ "$REBOOT" = "y" ] || [ "$REBOOT" = "Y" ]; then
  reboot
fi

exit 0

Ähnliche Nachrichten