Sto imparando Ubuntu e sperimentando cose.
Ho notato che non sono riuscito a creare una directory all'interno di / sys
È una directory speciale o qualcosa del genere? Esistono altri tipi di directory?
(Ho fatto un sudo -i
e un chmod a+w /sys
)
Sto imparando Ubuntu e sperimentando cose.
Ho notato che non sono riuscito a creare una directory all'interno di / sys
È una directory speciale o qualcosa del genere? Esistono altri tipi di directory?
(Ho fatto un sudo -i
e un chmod a+w /sys
)
Risposte:
Innanzitutto, è necessario modificare /sys
nuovamente le autorizzazioni ( sudo chmod a-r /sys
lo faranno, poiché le autorizzazioni predefinite sono dr-xr-xr-x
). /sys
non dovrebbe essere scrivibile in tutto il mondo!
In generale, per creare file e directory in parti del sistema al di fuori della cartella principale, dei supporti esterni e della /tmp
cartella, è necessario farlo comeroot
con sudo
, anziché modificando le autorizzazioni o la proprietà per concederti l'accesso. Rendere le directory scrivibili in tutto il mondo non è particolarmente raccomandato.
Per informazioni sul modo consigliato, vedere:
Puoi persino usare gksudo nautilus
(o sudo -H nautilus
se non hai gksudo
) per aprire una finestra del browser dei file di proprietà di root. Fai attenzione, però: può fare praticamente qualsiasi cosa e la maggior parte di queste cose sono cose che probabilmente non vorresti fare. Inoltre, tieni presente che se avvii un programma da una finestra del browser dei file di proprietà di root, anche quel programma verrà eseguito come root.
Questo è generalmente ciò che dovresti fare, per modificare o creare nuovi contenuti di directory di proprietà di root
. Però...
/sys
è diverso; non è nemmeno root
possibile creare direttamente cose lìCome /proc
e /dev
, in Ubuntu e altri sistemi operativi che usano il kernel Linux, /sys
è un filesystem virtuale , ciò che rappresenta non sono file reali sul tuo disco (o ovunque).
In breve, /sys
è un modo in cui il kernel fornisce informazioni sui dispositivi (fisici e virtuali).
Alcune voci nel /sys
filesystem sono anche significativamente scrivibili e scrivere su di esse è un modo per impostare dinamicamente la configurazione per i dispositivi. (Questo non deve essere confuso con il /dev
filesystem; scrivere su voci in /dev
è un modo di inviare dati ai dispositivi. )
Ma questo deve ancora essere fatto come root. Invece di modificare l'autorizzazione su /sys
o parte di essa, è necessario eseguire tali azioni come root con sudo
come spiegato sopra.
Questa risposta su Unix.SE spiega come farlo e persino come consentire ad alcuni non amministratori (che non possono eseguire la maggior parte delle azioni come root) di modificare alcune /sys
impostazioni.
Per ulteriori informazioni su come /sys
funziona, vedere:
Le voci in /sys
vengono create dal kernel e dai driver; non puoi semplicemente crearli dalla riga di comando. (Come affermato sopra, è possibile modificarne alcuni come root, ma in genere non è possibile crearne di nuovi dallo spazio utenti se non caricando i moduli del kernel o installando in altro modo i driver o modificando il kernel.)
Se sei interessato a scrivere i driver, vedi:
Sì, /sys
è una directory "speciale". Da Wikipedia :
Le moderne distribuzioni Linux includono una directory / sys come un filesystem virtuale (sysfs, paragonabile a / proc, che è un procfs), che memorizza e consente la modifica dei dispositivi collegati al sistema, mentre molti sistemi operativi tradizionali UNIX e simili a Unix utilizzano / sys come collegamento simbolico all'albero dei sorgenti del kernel.
Il "Memorizza e consente la modifica dei dispositivi collegati al sistema" è piuttosto importante. Il fatto che /sys
sia usato come filesystem virtuale, montato appositamente, è il motivo per cui tu (e il root) non potete scrivere su di esso. Eviterei di fare casini /sys
. Con Linux, che è molto aperto e trasparente, le cose di solito non sono modificabili per una buona ragione; o per motivi di sicurezza o, in questo caso, perché esiste un altro modo per raggiungere il tuo obiettivo che è molto meno rischioso.