Warum kann ich kein Verzeichnis in / sys erstellen?

8

Ich lerne Ubuntu und experimentiere mit Dingen.

Ich habe festgestellt, dass ich in / sys kein Verzeichnis erstellen konnte

Ist das ein spezielles Verzeichnis oder so? Gibt es andere Arten von Verzeichnissen?

(Ich habe a sudo -iund a gemacht chmod a+w /sys)

spiderplant0
quelle

Antworten:

17

Zuerst sollten Sie die /sysBerechtigungen zurück ändern ( sudo chmod a-r /syswird dies tun, da die Standardberechtigungen sind dr-xr-xr-x). /syssollte nicht weltschreibbar sein!

Um Dateien und Verzeichnisse in Teilen des Systems außerhalb Ihres Basisordners, externer Medien und des /tmpOrdners zu erstellen , sollten Sie diesroot im Allgemeinen wie bei tunsudo , anstatt die Berechtigungen oder den Besitz zu ändern, um sich selbst Zugriff zu gewähren. Es wird insbesondere nicht empfohlen, Verzeichnisse weltweit beschreibbar zu machen.

Informationen zum empfohlenen Weg finden Sie unter:

Sie können sogar ein Dateibrowserfenster im Root-Besitz öffnen gksudo nautilus(oder sudo -H nautilusnicht gksudo). Seien Sie jedoch vorsichtig damit - es kann fast alles, und die meisten dieser Dinge sind Dinge, die Sie wahrscheinlich nicht tun möchten. Beachten Sie außerdem , dass dieses Programm auch als Root ausgeführt wird , wenn Sie ein Programm über ein Dateibrowserfenster im Root-Besitz starten .

Dies ist im Allgemeinen das, was Sie tun sollten, um neue Inhalte von Verzeichnissen zu bearbeiten oder zu erstellen, deren Eigentümer sie sind root. Jedoch...

/sysist anders; selbst rootkann nicht direkt Sachen dort erstellen

Wie /procund /devin Ubuntu und anderen Betriebssystemen, die den Linux-Kernel verwenden, /syshandelt es sich um ein virtuelles Dateisystem , das keine realen Dateien auf Ihrer Festplatte (oder irgendwo anders) darstellt.

Kurz gesagt, /sysist ein Weg , die Kernel Informationen über (physische und virtuelle) Geräte zur Verfügung stellt.

Einige Einträge im /sysDateisystem sind auch sinnvoll beschreibbar, und das Schreiben in sie ist eine Möglichkeit, die Konfiguration für Geräte dynamisch festzulegen. (Dies sollte nicht mit dem /devDateisystem verwechselt werden. Das Schreiben in Einträge in /devist eine Möglichkeit , Daten an Geräte zu senden. )

Dies muss aber noch als root erfolgen. Anstatt die Berechtigung für /sysoder einen Teil davon zu ändern , sollten Sie diese Aktion einfach als Root ausführen, sudowie oben erläutert.

Diese Antwort unter Unix.SE erklärt, wie das geht und wie einige Nicht-Administratoren (die die meisten Aktionen nicht als Root ausführen können) einige /sysEinstellungen ändern können.

Weitere Informationen zur Funktionsweise /sysfinden Sie unter:

Einträge in /syswerden vom Kernel und von Treibern erstellt. Sie können sie nicht einfach über die Befehlszeile erstellen. (Wie oben erwähnt, können Sie einige als root bearbeiten , aber Sie können im Allgemeinen keine neuen aus dem Benutzerbereich erstellen, außer indem Sie Kernelmodule laden oder auf andere Weise Treiber installieren oder den Kernel ändern.)

Wenn Sie zufällig Treiber schreiben möchten, lesen Sie:

Eliah Kagan
quelle
4

Ja, /sysist ein "spezielles" Verzeichnis. Aus Wikipedia :

Moderne Linux-Distributionen enthalten ein / sys-Verzeichnis als virtuelles Dateisystem (sysfs, vergleichbar mit / proc, einem procfs), in dem die mit dem System verbundenen Geräte gespeichert und geändert werden können, während viele herkömmliche UNIX- und Unix-ähnliche Betriebssysteme verwendet werden / sys als symbolische Verknüpfung zum Kernel-Quellbaum.

Das "Speichert und ermöglicht die Änderung der an das System angeschlossenen Geräte" ist ziemlich wichtig. Die Tatsache, dass /syses sich um ein speziell bereitgestelltes virtuelles Dateisystem handelt, ist der Grund, warum Sie (und root) nicht darauf schreiben können. Ich würde es vermeiden, mich damit herumzuschlagen /sys. Unter Linux, das sehr offen und transparent ist, können Dinge aus gutem Grund normalerweise nicht geändert werden. entweder aus Sicherheitsgründen oder in diesem Fall, weil es einen anderen Weg gibt, um Ihr Ziel zu erreichen, der viel weniger riskant ist.

Richard
quelle