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 -i
i A chmod a+w /sys
)
źródło
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 -i
i A chmod a+w /sys
)
Najpierw powinieneś zmienić /sys
uprawnienia z powrotem ( sudo chmod a-r /sys
zrobi to, ponieważ są to uprawnienia domyślne dr-xr-xr-x
). /sys
nie 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 /tmp
folderem, 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 nautilus
jeś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...
/sys
jest inny; nawet root
nie może bezpośrednio tworzyć tam rzeczyJak /proc
i /dev
, w Ubuntu i innych systemów operacyjnych wykorzystujących Linuksa, /sys
to wirtualny system plików , co oznacza, że nie jest prawdziwe plików na dysku (lub gdziekolwiek).
Krótko mówiąc, /sys
jest to sposób, w jaki jądro dostarcza informacji o urządzeniach (fizycznych i wirtualnych).
Niektóre wpisy w /sys
systemie 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 /dev
plików; zapisywanie wpisów /dev
jest sposobem wysyłania danych do urządzeń ).
Ale to wciąż musi być zrobione jako root. Zamiast zmieniać uprawnienia na /sys
jakiejkolwiek jego części, powinieneś po prostu wykonać tę akcję jako root, sudo
jak 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 /sys
ustawienia.
Aby uzyskać więcej informacji o tym /sys
, jak działa, zobacz:
Wpisy /sys
są 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:
Tak, /sys
to 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 /sys
jest 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.