Zugriff verweigert mkdir /Volumes

Mir wird eine Berechtigung verweigert, wenn ich versuche, unter /Volumes auf meinem Mac zu erstellen oder zu mounten. Ich bin ein Administrator und kann beides mit sudo tun, aber ich verstehe nicht, warum ich sudo auf diesem Mac verwenden muss, aber nicht auf anderen Macs in meinem Büro.

/Volumes
> mkdir foo
mkdir: foo: Permission denied

Meine Gedanken sind, chown/chmod zu verwenden, aber ich zögere, dies zu tun, ohne vorher zu fragen.

/Volumes
> ll
total 8
drwxr-xr-x@  4 root      admin   136B Apr 22 13:40 .
drwxr-xr-x  33 root      wheel   1.2K Mar 30 22:23 ..
drwxr-xr-x@ 11 medialab  staff   442B Apr 14 15:34 06b_SD_Video_BK
lrwxr-xr-x   1 root      admin     1B Apr 18 10:48 Macintosh_HD -> /

Wir montieren LTO-Bänder auf diesem Computer und können dies derzeit nur mit sudo tun. Dies war nicht immer der Fall und ich weiß nicht, warum sudo plötzlich erforderlich ist.

Wie gehe ich vor, um die Berechtigungen für /Volumes zu ändern?

pkgutil --file-info /Volumesgibt Ihnen die Informationen, die Sie zum Festlegen der Berechtigungen für das /VolumesVerzeichnis benötigen
Danke @fd0. --file-infohing im Terminal ohne Ausgabe, also habe ich es versucht--file-info-plist
Ich kann aus der Ausgabe nicht viel machen.

Antworten (2)

Für dieses Verzeichnis gelten Zugriffsbeschränkungen. Sie können diese von der Befehlszeile aus überprüfen:

ls -lOe /

(Das ist ein Großbuchstabe O und keine Null 0) Ich würde vorschlagen, Ihr Volume in ein anderes Verzeichnis zu mounten - entweder /tmp oder $TMPDIR, anstatt sich mit den Einschränkungen herumzuschlagen, die verhindern sollen, was Sie haben - ein tatsächliches Verzeichnis mit tatsächlichen Dateien darin /Volumen.

Ohne Ihr Skript und Ihren Workflow zu kennen, ist es schwer zu erraten/zu raten, außer Dinge nicht zu ändern, die Apple beim nächsten Patch des Systems wieder ändern wird.

Ihr Anbieter der LTO-Bänder sollte über Software verfügen, die das Mounten des Volumes auf eine Weise handhabt, die Apples Disk Arbitration Framework verwendet, sodass Sie die Mounts nicht in einem Skript verwalten müssen.


Sie können einen Benutzer hinzufügen, der expliziten Schreibzugriff auf dieses Verzeichnis hat, wenn Sie sicher sind, dass dies hilfreich ist:

sudo chmod +a "User 1:allow:add_subdirectory" /Volumes
Danke @bmike. Ich muss das LTO auf jeden Fall nach /Volumes mounten. Es ist Teil eines Github-Skripts, das dies erfordert.
Ich musste tun, ich musste tun sudo chmod -RN; sudo chmod +a "myusername:allow:add_subdirectory,add_file" .. Dadurch werden die ACLs gelöscht und neue für diesen Ordner und alle Unterordner erstellt

Die Standardberechtigungen des Verzeichnisses /Volumes sind:

...
drwxrwxrwt@  4 root      admin  hidden  136 Apr 22 22:05 .
 0: group:everyone deny add_file,add_subdirectory,directory_inherit,only_inherit
...

Ich schlage vor, Berechtigungen entweder mit dem Festplattendienstprogramm/diskutil oder einem Drittanbieter-Tool zu reparieren und/oder die Berechtigungen manuell zu ändern.

Danke @klanomath. Wie kann ich die Berechtigungen manuell ändern? chmod 755 /Volumesbekommt es nicht hin.
@Blake sudo chmod 777 /Volumes. sudo chmod +a|=a ....Abhängig von Ihrem ls -le0 ...Ergebnis müssen Sie möglicherweise auch die ACL ändern .
Vielen Dank. Ich musste die ACL ändern, mit der ich noch nie zuvor gearbeitet hatte.