¿Cómo puede mi navegador de Internet escribir archivos en mi archivo "Descargas" si los permisos predeterminados no permiten "escribir"?

14

En la terminal, usé este comando:

stat Downloads

Declaró que los permisos para mi carpeta de descargas eran "drwxr-xr-x"

¿No significa esto que solo el administrador y el propietario podrán editar la carpeta? ¿Cómo descargaría el navegador algo y lo colocaría en la carpeta si no tiene el permiso, o Ubuntu detecta que usted permitió que el navegador lo haga?

Raffat
fuente
44
Sospecho que si entrara ls -ld Downloads , descubriría que es, de hecho, el propietario de su carpeta de Descargas. Entonces, cuando ejecuta su navegador, es usted, como propietario del directorio, quien está intentando colocar algo en ese directorio.
Charles Green

Respuestas:

20

Los programas se ejecutan con los privilegios del usuario que los invocó.
Entonces, cuando inicia su navegador, el proceso del navegador tiene los derechos que tiene para leer, modificar y ejecutar archivos.

Y como usted es el propietario de su carpeta de Descargas, su cuenta de usuario tiene (generalmente por defecto) rderechoswx completos de ead / rite / e ecute . Por lo tanto, su navegador también los tiene.

Para aclarar la salida estadística(d rwx r-x r-x) :

  • La primera letra (aquí:) ddescribe el tipo de objeto del sistema de archivos que está examinando. dsignifica que está mostrando los permisos de un directorio. Si está examinando un archivo, recibirá un -en su lugar. También hay otras posibilidades, como lun enlace. Además, hay (según el comentario de @ Atsby) bpara dispositivos de bloque, cpara dispositivos de caracteres, ppara tuberías y probablemente incluso más ... ¡
    Consulte * para obtener una nota sobre los permisos de directorio!
  • Las primeras tres letras rwxrepresentan los permisos del propietario . Una letra significa que se otorga el tipo de acceso respectivo, un "-" significa denegado. -> acceso completo
  • Las segundas tres letras r-xrepresentan los permisos que tienen los usuarios que son miembros del grupo de propietarios . Es el mismo formato "rwx" que el anterior. -> solo lee y ejecuta permisos, no escribe
  • Las últimas tres letras r-xrepresentan los permisos de cualquier otro usuario que no sea el propietario en sí mismo y que no sea miembro del grupo de propietarios. Sigue siendo el mismo formato "rwx". -> también solo lee y ejecuta permisos, no escribe

* Permisos de directorio:
tenga en cuenta que los permisos de directorio tienen diferentes significados que los permisos de archivo. Para directorios ... el
acceso de lectura (r) significa enumerar los archivos ( lscomando) , el
acceso de escritura (w) significa cambiar el contenido del directorio (crear, eliminar, renombrar archivos) y
ejecutar el acceso (x) significa ingresar al directorio ( cdcomando o abrir con el administrador de archivos)


Permisos de ejecución avanzados:

A veces se encuentra un S, s, To tdonde se espera una x.

Hay permisos SUID (Establecer ID de usuario) y SGID (Establecer ID de grupo) que reemplazan lo normal xsi el archivo siempre debe ejecutarse con los permisos de su propietario (SUID) o su grupo propietario (SGID). Para SUID, xse reemplazan los permisos de usuario (primer bloque), para SGID, se reemplazan xlos permisos de grupo (segundo bloque). Una letra mayúscula Srepresenta un -(permiso denegado) mientras que una pequeña sequivale a x(permiso otorgado).

Si el xdel tercer bloque (permisos de otros) se reemplaza por un T/ t, esto significa que se establece el "Sticky Bit" . Hoy en día, se usa principalmente para evitar la eliminación del archivo por parte de usuarios no propietarios que tienen permisos de escritura. Una vez más, una letra mayúscula Tes igual a -(sin permiso de ejecución para otros) sin "Sticky Bit", mientras que una pequeña trepresenta el acceso de ejecución otorgado ( x) para otros.


Notación octal:

Los permisos también se pueden representar con 3-4 dígitos (valores 0-8), lo que se denomina notación octal.
Normalmente tiene 3 dígitos o 4 dígitos con el primer dígito establecido en 0 (por ejemplo, 755o 0755).

  • El primer dígito (que se puede omitir si es 0) representa los indicadores de permisos avanzados. Valores de bandera: SUID = 4, SGID = 2, Sticky = 1.
  • El segundo dígito representa el estado de las banderas de permisos del propietario (rwx; primer bloque de permisos en formato de cadena). Valores de bandera: r = 4, w = 2, x = 1.
  • El tercer dígito representa el estado de las banderas de permisos del grupo propietario (rwx; segundo bloque de permisos en formato de cadena). Valores de bandera: r = 4, w = 2, x = 1.
  • El cuarto dígito representa el estado de todos los indicadores de permiso de los demás (rwx; tercer bloque de permisos en formato de cadena). Valores de bandera: r = 4, w = 2, x = 1.

Para calcular el valor del dígito, simplemente sume los valores de los indicadores de todos los indicadores establecidos. Ejemplos: rwx = 4 + 2 + 1 = 7, rx = 4 + 0 + 1 = 5


Fuente y referencias adicionales:
http://www.zzee.com/solutions/linux-permissions.shtml
http://www.informit.com/articles/article.aspx?p=1822622&seqNum=6
Visite esos enlaces para obtener más detalles , especialmente sobre permisos avanzados.

Byte Commander
fuente
1
+1, dsignifica directorypor cierto!
kos
@kos Gracias, agregaré esto. ¿Cuáles serían las otras posibilidades en lugar de una "d" en este lugar?
Byte Commander
Ninguno, si no es un directorio, de hecho es un archivo, por lo que siempre tiene do-
kos
3
@kos hay otras posibilidades, por ejemplo, lpara un enlace suave, bpara un dispositivo de bloque, cpara un dispositivo de personaje, ppara una tubería ... esas son solo las que conozco, probablemente hay más
Atsby
@Atsby Tienes razón, estaba hablando de lscuándo OP usóstat
kos