Dlaczego nie mogę utworzyć katalogu w / sys

8

Uczę się Ubuntu i eksperymentuję z różnymi rzeczami.

Zauważyłem, że nie mogę utworzyć katalogu w / sys

Czy to specjalny katalog czy coś takiego? Czy istnieją inne typy katalogów?

(Zrobiłem A sudo -ii A chmod a+w /sys)

spiderplant0
źródło

Odpowiedzi:

17

Najpierw powinieneś zmienić /sysuprawnienia z powrotem ( sudo chmod a-r /syszrobi to, ponieważ są to uprawnienia domyślne dr-xr-xr-x). /sysnie powinno się pisać na całym świecie!

Ogólnie rzecz biorąc, aby tworzyć pliki i katalogi w częściach systemu poza folderem domowym, mediami zewnętrznymi i /tmpfolderem, należy to zrobić tak, jak wroot przypadku sudo, zamiast zmieniać uprawnienia lub prawa własności, aby uzyskać dostęp. Szczególnie nie zaleca się, aby katalogi były zapisywane na całym świecie.

Aby uzyskać informacje na temat zalecanego sposobu zobacz:

Możesz nawet użyć gksudo nautilus(lub sudo -H nautilusjeśli nie masz gksudo), aby otworzyć okno przeglądarki plików należące do katalogu głównego. Uważaj jednak na to - może zrobić wszystko, a większość z tych rzeczy prawdopodobnie nie powinna być zrobiona. Zauważ też, że jeśli uruchomisz program z okna przeglądarki plików należącego do roota, ten program będzie również działał jako root.

To na ogół , co należy zrobić, aby edytować lub tworzyć nowe zawartość katalogów należących root. Jednak...

/sysjest inny; nawet rootnie może bezpośrednio tworzyć tam rzeczy

Jak /proci /dev, w Ubuntu i innych systemów operacyjnych wykorzystujących Linuksa, /systo wirtualny system plików , co oznacza, że nie jest prawdziwe plików na dysku (lub gdziekolwiek).

Krótko mówiąc, /sysjest to sposób, w jaki jądro dostarcza informacji o urządzeniach (fizycznych i wirtualnych).

Niektóre wpisy w /syssystemie plików są również w znacznym stopniu zapisywalne, a zapisywanie w nich jest sposobem na dynamiczne ustawienie konfiguracji urządzeń. (Nie należy tego mylić z systemem /devplików; zapisywanie wpisów /devjest sposobem wysyłania danych do urządzeń ).

Ale to wciąż musi być zrobione jako root. Zamiast zmieniać uprawnienia na /sysjakiejkolwiek jego części, powinieneś po prostu wykonać tę akcję jako root, sudojak wyjaśniono powyżej.

Ta odpowiedź na Unix.SE wyjaśnia, jak to zrobić, a nawet jak zezwolić niektórym nie-administratorom (którzy nie mogą wykonywać większości akcji jako root) zmienić niektóre /sysustawienia.

Aby uzyskać więcej informacji o tym /sys, jak działa, zobacz:

Wpisy /syssą tworzone przez jądro i sterowniki; nie można ich po prostu utworzyć z wiersza polecenia. (Jak wspomniano powyżej, możesz edytować niektóre jako root, ale ogólnie nie możesz tworzyć nowych z przestrzeni użytkownika, chyba że ładujesz moduły jądra lub w inny sposób instalujesz sterowniki lub modyfikujesz jądro.)

Jeśli interesuje Cię pisanie sterowników, zobacz:

Eliah Kagan
źródło
4

Tak, /systo katalog „specjalny”. Z Wikipedii :

Nowoczesne dystrybucje Linuksa zawierają katalog / sys jako wirtualny system plików (sysfs, porównywalny z / proc, który jest procfs), który przechowuje i umożliwia modyfikację urządzeń podłączonych do systemu, podczas gdy wiele tradycyjnych systemów operacyjnych UNIX i Unix używa / sys jako symboliczne łącze do drzewa źródeł jądra.

„Przechowuje i pozwala modyfikować urządzenia podłączone do systemu” jest dość ważne. Fakt, że /sysjest używany jako wirtualny system plików, specjalnie zamontowany, powoduje, że ty (i root) nie możesz do niego pisać. Unikałbym bałaganu /sys. W Linuksie, który jest bardzo otwarty i przejrzysty, rzeczy zwykle nie są zmieniane z dobrego powodu; albo ze względów bezpieczeństwa, albo w tym przypadku, ponieważ istnieje inny sposób na osiągnięcie celu, który jest o wiele mniej ryzykowny.

Richard
źródło