Propietarios / permisos predeterminados de archivos en el directorio de inicio del usuario

14

A menudo veo usuarios que intentan solucionar un problema y en algún lugar leen o simplemente intentan recursivamente chownsu directorio de inicio y, a veces, incluso restablecen los permisos de forma recursiva a algo similar rwxr-xr-xo similar.

Imagine una masacre de propietarios / permisos de este tipo: ¿existen archivos / directorios críticos que necesiten permisos especiales o que sean propiedad de la raíz para que el sistema funcione?

Byte Commander
fuente
1
¿De qué archivos estás hablando? ¿Por qué los archivos críticos propiedad de root estarían en el hogar de un usuario?
mikewhatever
1
@mikewhatever Conozco al menos tres directorios que deben ser propiedad de root: ~/.gvfs/, ~/.cache/gvfs-burn/y ~/.cache/dconf. Probablemente hay más.
Byte Commander
1
drwx------ 2 romano romano 4096 dic 2 2008 .gvfsy nunca tuve ningún problema ... (ver la fecha). Tambiéndrwx------ 2 romano romano 4096 abr 28 14:57 .cache/dconf
Rmano
3
No hay archivos "críticos" en el directorio de inicio del usuario, si los hay es el resultado de una programación muy mala, ya que el usuario puede eliminarlos a propósito / por error en un instante. A menos que sea un error, los archivos "críticos" se almacenan en otro lugar.
kos
FWIW, puedo confirmar que ~ / .gvfs y ~ / .cache / dconf en mi sistema son propiedad de root. Ejecuté "sudo ls -Al" en ambos directorios, y ambos están vacíos. Aunque he cambiado los permisos grupales y de otro tipo para documentos, nunca he ejecutado chown. Entonces, la propiedad raíz de estos dos directorios podría ser normal, al menos para Ubuntu 15.04. Además, no tengo un directorio ~ / .cache / gvfs-burn, o los directorios ipc-admin mencionados por Byte Commander que son propiedad de root. Pero, el archivo con nombre alfa numérico en ~ / .dbus / session-bus es propiedad de mí, no de la raíz.
user173876

Respuestas:

17

Ningún archivo ~debe ser propiedad de root.

Si un software requiere que un archivo en su directorio personal sea propiedad de otro usuario, es un error y debe informarse como tal.

Aparte de eso, un caso común involucra dos programas relacionados con la seguridad que requieren permisos restringidos en ciertos archivos, a saber:

  1. SSH
  2. GPG

SSH

Ver man sshsección FILES:

 ~/.ssh/config
     This is the per-user configuration file.  The file format and
     configuration options are described in ssh_config(5).  Because of
     the potential for abuse, this file must have strict permissions:
     read/write for the user, and not writable by others.  It may be
     group-writable provided that the group in question contains only
     the user.

 ~/.ssh/identity
 ~/.ssh/id_dsa
 ~/.ssh/id_ecdsa
 ~/.ssh/id_ed25519
 ~/.ssh/id_rsa
     Contains the private key for authentication.  These files contain
     sensitive data and should be readable by the user but not acces‐
     sible by others (read/write/execute).  ssh will simply ignore a
     private key file if it is accessible by others.  It is possible
     to specify a passphrase when generating the key which will be
     used to encrypt the sensitive part of this file using 3DES.

Otros archivos como authorized_keys, known_hostsetc. deben ser editables solo por el usuario, pero pueden ser legibles en todo el mundo.

GnuPG

~/.gnupg(y los contenidos) solo deben ser accesibles para usted. Con otros permisos, GPG se quejará de los permisos inseguros.

muru
fuente
Entonces ~/.gvfs/, ¿qué pasa ~/.cache/gvfs-burn/y ~/.cache/dconf? Son propiedad de root y creo que deberían serlo.
Byte Commander
2
@ByteCommander no. Usar sudocon programas GUI, ¿verdad?
muru
No es que pudiera recordarlo ... Estoy creando un nuevo usuario y comprobando allí. Un momento por favor.
Byte Commander
@ByteCommander eche un vistazo: bugzilla.gnome.org/show_bug.cgi?id=534284
muru
1
@ByteCommander si esa era la intención, entonces sudo -io sudo -Hprobablemente debería usarse.
muru
11

En general, los archivos y el directorio de su hogar deben ser de su propiedad.
Tengo algunos archivos extraños propiedad de root que probablemente son el resultado de ejecutar sudocomandos; de hecho, hay programas que escriben cosas debajo $HOME(que los programas que se comportan bien y que requieren privilegios de superusuario no deberían hacerlo; el efecto es que la raíz se apropia de los archivos que deberían pertenecer al usuario).
Normalmente, eliminarlos o volver a poseerlos (según el archivo) no crea problemas y, a menudo, resuelve algunos, como el infame .Xauthorityarchivo --- y, a veces, después de ejecutarlos sudo dconf-editor, tiene cosas en configuraciones que ya no puede modificar.

Sobre modos especiales:

  • los scripts deben ser ejecutables, por supuesto, al menos para el propietario;
  • también deben ser directorios (donde xsignifica derecho a cruzar);
  • .sshdebe ser drwx------(0700) y las claves privadas que -rw-------contiene (0600)
  • si tiene un Publicdirectorio para compartir, probablemente debería ser drwxr-xr-x(permiso de lectura para cualquier persona) o drwxrwxrwt(con permiso de escritura y un bit fijo, para habilitar la escritura).

... No puedo pensar en nada más que necesite un tratamiento especial.

Rmano
fuente
Entonces ~/.gvfs/, ¿qué pasa ~/.cache/gvfs-burn/y ~/.cache/dconf? Son propiedad de root y creo que deberían serlo.
Byte Commander
@ByteCommander --- todas esas cosas me pertenecen en mi sistema, y ​​nada funciona mal. ¿Por qué crees que deben ser propiedad de root? En dconfes su configuración, y el comando privilegiado / demonio que hace el montaje de las particiones debe cambiar la propiedad a usted --- de lo contrario es un error. Comenté esto en tu pregunta.
Rmano
He encontrado otros dos archivos propiedad de root que no estoy seguro de si es correcto o incorrecto: ~/.dbus/session-bus/7ae519bec942595a6925fb2d5448031b-1y /home/ipc-admin/.aptitude/config, muchas cosas debajo /home/ipc-admin/.cache/pip/wheels/, /home/ipc-admin/.local/share/session_migration-(null)y /home/ipc-admin/.local/share/applications/mimeapps.list. ¿Te imaginas por qué son propiedad de root en mi sistema?
Byte Commander