Würde nur kommentieren, wenn ich könnte. Ich habe nicht genug Karma auf dieser Seite.
Ich habe keine Ahnung, warum jemand @callaginn heruntergestuft hat, da er einen gültigen Punkt anspricht.
Die folgenden Methoden sind gültig (und wahrscheinlich die besten Optionen für Shell-Skripting):
id -u # returns UID
id -un # returns username
id -g # returns primary (a.k.a. effictive) GID
id -gn # returns primary Group Name
Siehe man id
für weitere Optionen.
Um diese spezielle Frage zu beantworten, wenn ich ein Skript schreiben würde, das in jeder Umgebung funktioniert, würde ich nicht davon ausgehen, dass die Standardgruppe staff
verwendet wird, und stattdessen würde ich Folgendes tun, wenn ich ein Skript schreibe, das für jeden Benutzer ausgeführt werden kann (unabhängig davon, ob er sein System modifiziert hat oder nicht):
chown "$(id -un):$(id -gn)" some_file
Es ist immer besser, wenn möglich plattformunabhängig zu sein (wenn es nicht zu viel Zeit kostet), da Sie später weniger technische Schulden haben.
Bitte beachten Sie, dass das chown
-Flag von -R
nur mit größter Vorsicht verwendet werden sollte. Sie könnten Ihr System wirklich durcheinander bringen (Obwohl es erwähnenswert ist, dass Apple es schwer gemacht hat, seit sie System Integrity Protection
implementiert haben). Betrachten Sie zum Beispiel
, wenn Sie chown -R 755 /var
statt chown -R 755 /var/www
als Root mit deaktiviertem System Integrity Protection
verwenden würden, dann glaube ich, dass es Sie erwischen würde. Ich kann Ihnen nicht sagen, was zuerst kaputt gehen würde, aber es würde zuerst auf einem Darwin-System kaputt gehen, aber bitte nehmen Sie mein Wort, dass es nicht schön wäre.
Hoffentlich findet das jemand hilfreich.