He abusado sudo
.
He creado un directorio temporal de muy, muy corta vida que quería compartir entre algunos usuarios durante unas horas ... y llamé a este directorio /some/path/tmp
Desafortunadamente, he lanzado en sudo chown 777 -R /tmp
lugar de sudo chown 777 -R tmp
, por lo que mi /tmp
archivo ahora es completamente público.
Utilizo el común con /tmp
bastante frecuencia (todos los días, casi cada hora) personalmente para archivos de corta vida, guiones, muchos guiones.
¿Es un problema de seguridad ahora que está completamente configurado como público? ¿Debería volver a cambiarlo a configuraciones más seguras, o como configuraciones predeterminadas comunes para una distribución Debian o Ubuntu - (no sé cuáles eran)? ¿Para qué son los permisos correctos /tmp
?
fuente
chown
ochmod
?chmod
. chown (como ch - own), trata sobre la propiedad de los archivos, cuyo usuario posee un archivo. chmod (como ch - modifify) trata más sobre quién puede ejecutar, escribir dentro o leer el contenido de un archivo.chown 777
que establece la propiedad de un archivo para el usuario con el ID 777. Sin embargo, todas las respuestas, incluida la aceptada, funcionanchmod
. Dado que todos establecen el permiso en el mismo valor para todos los usuarios (propietario, grupo, otros), la mayoría de los efectos de la propiedad del archivo se vuelven irrelevantes. Sin embargo, el comando correcto para rectificar el resultado desudo chown 777 -R /tmp
debería sersudo chown root -R /tmp
.Respuestas:
La configuración normal para
/tmp
es 1777, que sels
muestra comodrwxrwxrwt
. Es decir: abierto, excepto que solo el propietario de un archivo puede eliminarlo (eso es lo que significa estet
bit extra para un directorio).El problema con un
/tmp
modo 777 es que otro usuario podría eliminar un archivo que haya creado y sustituir el contenido de su elección.Si su
/tmp
es un sistema de archivos tmpfs, un reinicio restaurará todo. De lo contrario, correchmod 1777 /tmp
.Además, muchos archivos
/tmp
deben ser privados. Sin embargo, al menos un directorio debe ser críticamente legible:/tmp/.X11-unix
y posiblemente otros directorios similares (/tmp/.XIM-unix
, etc.). El siguiente comando debería en su mayoría arreglar las cosas:Es decir, hacer que todos los archivos y directorios sean privados (eliminar todos los permisos para grupos y otros), pero hacer que los sockets X11 sean accesibles para todos. El control de acceso en estos sockets es impuesto por el servidor, no por los permisos del archivo. Puede haber otros enchufes que deben estar disponibles públicamente. Ejecútelo
find /tmp -type s -user 0
para descubrir los sockets propiedad de la raíz que puede necesitar hacer accesibles al mundo. Puede haber también tomas de corriente de otros usuarios del sistema (por ejemplo, para comunicarse con un bus del sistema) explore confind /tmp -type s ! -user $UID
(donde$UID
está su ID de usuario).fuente
go-rwx
: sin permisos para grupo y otros. Esto establece los permisos enrwx------
(excepto que los archivos que se crearon ya quechmod
pueden terminar con menos permisos, por ejemplorw-------
). En otras palabras, los archivos serán accesibles solo por su propietario./tmp/.[!.]*
es incluir archivos de puntos, que comúnmente existen en/tmp
./tmp
y/var/tmp
debería tener derechos de lectura, escritura y ejecución para todos; pero por lo general también agregaría el sticky-bit (o+t
), para evitar que los usuarios eliminen archivos / directorios que pertenecen a otros usuarios. Entonceschmod a=rwx,o+t /tmp
debería funcionar.En cuanto a cambiar los permisos de forma recursiva ... Mientras el propietario / grupo permanezca como lo es para los archivos y directorios, no debería ser un gran problema. Pero quizás podría cambiar el permiso de todo lo que se encuentra debajo
/tmp
(no / tmp) para garantizar la privacidad de los usuarios, eliminando losrx
derechos de los demás y quizás del grupo.Encontrar es una buena manera de hacer esto. Como root, haz:
fuente
/tmp/.X11-unix/*
legible en todo el mundo, o ya no podrá iniciar aplicaciones X.chmod a=rwX,o+t /tmp -R
Debería hacer lafind
magia.Desde una máquina CentOS 5.9.
fuente