In einer Klassenzimmerumgebung werden nach einem Monat ohne Probleme plötzlich alle aus ihren Ordnern gesperrt, einschließlich meines lokalen Administrators.
Was funktioniert, ist die Anmeldung bei jedem Benutzer, erhöht, ich kann Terminal-Befehl ausführen:
sudo find ~ $TMPDIR.. -exec chflags -h nouchg,nouappnd,noschg,nosappnd {} + -exec chown -h $UID {} + -exec chmod +rw {} + -exec chmod -h -N {} + -type d -exec chmod -h +x {} + 2>&-
Das ist von Linc Davis Reparieren von Berechtigungen, wenn der Eigentümer "Abrufen ..." ist
Wie kann man Apple Remote Desktop verwenden, um dies über ein UNIX-Skript zu beheben?
#! /bin/bash
cd /Users
# Create an array with a list of all users in the users folder excluding Shared, site, nc12, and g
full=$(ls -1 /Users/ | grep -v 'Shared\|site\|nc12\|g\|.localized')
echo Fixing Permissions....
# Loop permissions fix for the values of the array $full
for i in $full
{
cd /Users/$i
find ~ $TMPDIR.. -exec chflags -h nouchg,nouappnd,noschg,nosappnd ;
chown -h $UID
chmod -R -N ~ $i
chmod -R 700 $i
chmod -R 777 $i/Public
chmod -R 733 $i/Public/Drop\ Box
}
# A reboot shouldn't be necessary since the permissions change instantaneously and will be different the next time a program tries to access files.
# That said, it's never a bad idea to reboot
echo "You must REBOOT the machine to complete the process. Thank you."
exit
Was können meine Syntaxfehler sein? Andere Vorschläge?
/Users
, testen Sie, ob das Dateisystemobjekt ein gültiger Basisordner ist ( id
und dscl
könnte hier verwendet werden). Nicht zitierte Variablen im gesamten Skript. Fehlendes Escape oder Anführungszeichen im Befehl find. Fehlender Operand in der chown
Aussage. Doppelte Operanden in der chmod
Anweisung, die die ACLs entfernt