¿Por qué no puedo crear un directorio en / sys

8

Estoy aprendiendo Ubuntu y experimentando con cosas.

Noté que no podía crear un directorio dentro de / sys

¿Es este un directorio especial o algo así? ¿Hay otros tipos de directorios?

(Hice una sudo -iy una chmod a+w /sys)

planta de araña0
fuente

Respuestas:

17

Primero, debe /sysvolver a cambiar los permisos ( sudo chmod a-r /syslo hará, ya que los permisos predeterminados son dr-xr-xr-x)./sysno debe ser escribible en el mundo!

En general, para crear archivos y directorios en partes del sistema fuera de su carpeta de inicio, medios externos y la /tmpcarpeta, debe hacerlo comoroot con sudo, en lugar de cambiar los permisos o la propiedad para tener acceso. Hacer directorios que se puedan escribir en todo el mundo no se recomienda particularmente.

Para obtener información sobre la forma recomendada, consulte:

Incluso puede usar gksudo nautilus(o sudo -H nautilussi no tiene gksudo) para abrir una ventana del explorador de archivos propiedad de root. Sin embargo, tenga cuidado con esto: puede hacer casi cualquier cosa, y la mayoría de esas cosas son cosas que probablemente no desee que se hagan. Además, tenga en cuenta que si inicia un programa desde una ventana del explorador de archivos propiedad de la raíz, ese programa también se ejecutará como raíz.

En general, eso es lo que debe hacer, editar o crear nuevos contenidos de directorios propiedad deroot . Sin embargo...

/syses diferente; inclusoroot no puede crear cosas directamente allí

Me gusta /procy /dev, en Ubuntu y otros sistemas operativos que usan el kernel de Linux, /syses un sistema de archivos virtual , lo que representa no son archivos reales en su disco (o en cualquier lugar).

En resumen, /syses una forma en que el núcleo proporciona información sobre dispositivos (físicos y virtuales).

Algunas entradas en el /syssistema de archivos también se pueden escribir de manera significativa y escribir en ellas es una forma de establecer dinámicamente la configuración de los dispositivos. (Esto no debe confundirse con el /devsistema de archivos; escribir en las entradas /deves una forma de enviar datos a los dispositivos ) .

Pero esto aún debe hacerse como root. En lugar de cambiar el permiso /syso parte de él, solo debe realizar esas acciones como root sudocomo se explicó anteriormente.

Esta respuesta en Unix.SE explica cómo hacerlo, e incluso cómo permitir que algunos no administradores (que no pueden realizar la mayoría de las acciones como root) cambien algunas /sysconfiguraciones.

Para obtener más información sobre cómo /sysfunciona, consulte:

Las entradas en /sysson creadas por el núcleo y por los controladores; no puedes simplemente crearlos desde la línea de comandos. (Como se indicó anteriormente, puede editar algunos como root, pero generalmente no puede crear nuevos desde el espacio de usuario, excepto cargando módulos del kernel o instalando controladores o modificando el kernel).

Si le interesa escribir controladores, consulte:

Eliah Kagan
fuente
4

Sí, /syses un directorio "especial". De Wikipedia :

Las distribuciones modernas de Linux incluyen un directorio / sys como un sistema de archivos virtual (sysfs, comparable a / proc, que es un procfs), que almacena y permite la modificación de los dispositivos conectados al sistema, mientras que muchos sistemas operativos UNIX y Unix tradicionales usan / sys como un enlace simbólico al árbol fuente del núcleo.

El "Almacena y permite la modificación de los dispositivos conectados al sistema" es bastante importante. El hecho de que /sysse use como un sistema de archivos virtual, montado especialmente, es la razón por la cual usted (y el root) no pueden escribir en él. Evitaría meterse con /sys. Con Linux, que es muy abierto y transparente, las cosas generalmente no se pueden cambiar por una buena razón; ya sea por motivos de seguridad o, en este caso, porque hay otra forma de lograr su objetivo que es mucho menos arriesgada.

Ricardo
fuente