permisos 755 en / home / <usuario> /

14

Me pregunto por qué, por defecto, mi directorio /home/<user>/tiene permisos establecidos 755. Esto permite a otros usuarios ingresar a directorios y leer archivos en mi casa. ¿Hay alguna razón legítima para esto?

¿Puedo configurar los permisos 700para mi hogar y todos los subdirectorios, por ejemplo:

chmod -R o-xw /home/<user>/ 
chmod -R g-xw /home/<user>/

sin romper nada?

Además, ¿es posible establecer los permisos en mi casa, de modo que todos los archivos nuevos creados tengan 600directorios 700?

Martin Vegter
fuente
1
en RHEL / CentOS 5 el valor predeterminado es 700, pero en Ubuntu 755
Rahul Patil
2
Es común en ciertas configuraciones que se utilizan public_htmlpara permitir que el servidor web acceda al directorio. Aunque es muy conveniente para los usuarios, no soy un gran admirador.
Marco

Respuestas:

18

Si su directorio personal es privado, nadie más puede acceder a ninguno de sus archivos. Para acceder a un archivo, un proceso debe tener permiso de ejecución para todos los directorios en la ruta hacia abajo del árbol desde el directorio raíz. Por ejemplo, para permitir que otros usuarios lean /home/martin/public/readme, los directorios /, /home, /home/martiny /home/martin/publictodos tenemos que tener los permisos d??x??x??x(que puede ser drwxr-xr-x, o drwx--x--x, o alguna otra combinación), y, además, el archivo readmedebe ser legible públicamente ( -r??r??r??).

Es común tener directorios de inicio con modo drwxr-xr-x(755) o al menos drwx--x--x(711). El modo 711 (solo permiso de ejecución) en un directorio permite que otros accedan a un archivo en ese directorio si conocen su nombre, pero no pueden enumerar el contenido del directorio. En ese directorio de inicio, cree subdirectorios públicos y privados como desee.

Si nunca desea que otras personas lean ninguno de sus archivos, puede crear su directorio personal drwx------(700). Si hace eso, no necesita proteger sus archivos individualmente. Esto no romperá nada más que la capacidad de otras personas para leer su archivo.

Una cosa común que puede romperse, porque es una instancia de otras personas que leen sus archivos, es si tiene un directorio como ~/public_htmlo ~/wwwque contiene su página web. Dependiendo de la configuración del servidor web, este directorio puede necesitar ser legible en todo el mundo.

Puede cambiar los permisos predeterminados para los archivos que cree configurando el valor de umask en su .profile. La umask es el complemento de los permisos máximos de un archivo. Los valores comunes incluyen 022 (editable solo por el propietario, legible y ejecutable por todos), 077 (acceso solo por el propietario) y 002 (como 022, pero también de escritura grupal). Estos son permisos máximos: las aplicaciones pueden establecer permisos más restrictivos, por ejemplo, la mayoría de los archivos no son ejecutables porque la aplicación que los creó no estableció los bits de permiso de ejecución al crear el archivo.

Gilles 'SO- deja de ser malvado'
fuente
No estoy ejecutando un servidor web en mi máquina, así que no necesito permitir el acceso ~/public_html. ¿Hay algún otro programa común que no sea Apache, que podría necesitar acceso a mi casa? ¿Qué tal postfix, por ejemplo?
Martin Vegter
1
@MartinVegter Buen punto. Los programas de correo electrónico siempre se ejecutan como su usuario cuando entregan correo, pero algunos sistemas requieren .forwardque un sistema de correo que se ejecute como usuario del sistema pueda leerlos. Postfix sin embargo está bien con un privado .forward.
Gilles 'SO- deja de ser malvado'
3

Si marca en RHEL / CentOS 5.x, el permiso predeterminado es 700, pero en Ubuntu es 755.

Según un miembro del personal de Ubuntuforms.org , es para facilitar el intercambio de archivos entre nuevos usuarios. Puede cambiar el permiso a 700 o 750 si no desea que otros puedan leer y ejecutar los archivos.

Además, ¿es posible establecer los permisos en mi casa, de modo que todos los archivos nuevos creados tengan 600 y los directorios 700?

Puedes configurar umask 0077eso

Funcionará como:

El permiso predeterminado para el directorio es 0777, por lo tanto, cuando configura umask 0077, se creará un nuevo directorio con permiso, (0777-0077) es decir, 0700como desee.

Rahul Patil
fuente
¿se umaskaplica también a los archivos? Parece que solo tiene efecto cuando creo nuevos directorios.
Martin Vegter
2
Sí ... puede registrar su shell actual, solo configure umask 0077y cree el archivo, dir y verifique el permisostat filename
Rahul Patil
3

Sí, hay una razón muy legítima. Tenga en cuenta que otros usuarios pueden leer pero no escribir en sus archivos. Esto es muy útil en redes profesionales porque puede compartir fácilmente sus archivos con sus colegas.

Por ejemplo, en el laboratorio en el que solía trabajar, todos teníamos acceso a los $HOMEdirectorios de los demás para poder compartir fácilmente nuestros datos o nuestras secuencias de comandos. Si mi amiga Alice tuviera un buen script para hacer X, simplemente lo ejecutaría:

~alice/bin/scriptX.pl mydata

Como otros mencionaron, para cambiar esto necesitará configurar umask. Por ejemplo, para que solo usted pueda leer nuevos archivos y carpetas, agregue esto a su ~/.bashrc:

umask 0077
terdon
fuente
3
La parte sobre el uso del guión Perl de Alice es aterradora. Copie el script en su directorio de inicio, audítelo y luego use su copia.
AlexWebr
66
@AlexWebr en primer lugar, lo leería primero, en segundo lugar, Alice en este caso es la persona sentada a mi lado que acaba de escribir un guión genial. Podemos suponer que confío en ellos tanto como lo haría con cualquier desarrollador cuyo trabajo instalaría y ejecutaría ciegamente en mi máquina. Más que la mayoría en realidad. Además, este era un laboratorio, por lo que a menudo descargamos algunos GB de genomas y era una manera fácil de darnos acceso mutuamente.
terdon
1

Necesita cambiar la umask, para cambiar cómo se crean los nuevos archivos en su carpeta de inicio. Esto por lo general se realiza mediante la edición del script de arranque concha, hay una visión general bastante bueno aquí

En cuanto a cambiar todos los permisos en su carpeta de inicio a 700, me pregunto cómo afectaría eso a los servicios que se ejecutan bajo cuentas de servicio que necesitan información de configuración de su carpeta de inicio ... Puede terminar evitando que estos servicios lean los archivos de configuración que requieren .

Niall Byrne
fuente