Ubuntu: ¿por qué todos los directorios nuevos que creo son propiedad de root?

2

Recientemente noté que los nuevos directorios que creo siempre son propiedad de root. ¿Es así como se supone que debe ser? Creé este directorio para poner archivos html para un servidor web /var/www/site1/html/index.htmly es propiedad de root. Hice sudo chown -R a:a /path-to-directorypara cambiarme el dueño; y lo hice sudo chmod 777 -R /path-to-directorypara cambiar los permisos para todos. Ahora tengo:

-rwxrwxrwx  1 a a 2 Dec 17 19:18 index.html

¿Cómo puedo crear directorios para tener los directorios que creé con permisos de lectura y escritura? ¿Y es bueno cambiar un archivo de lectura / escritura / ejecución para todos?

Zeynel
fuente
Si está configurando un servidor web público, probablemente debería hacer una cuenta de usuario dedicada a ese propósito y tener los archivos para él propiedad de ese usuario. Por lo general, de todos modos, para el uso del servidor doméstico, probablemente no sea un problema.
nerdwaller
3
chmod 777 es el segundo peor escollo después del abuso del uso de un intérprete de comandos, por favor no lo use a menos que esté muy seguro ¿por qué quieres que
AnonymousLurker

Respuestas:

4

La propiedad debe ser dictada por quién está creando el directorio. Si su usuario ejecuta el mkdircomando, debe ser propietario del directorio.

Sin embargo, si usa, sudo mkdirentonces rootes el usuario el que realmente crea el directorio, no su usuario. Si su usuario no tiene permisos en el directorio principal para crear el subdirectorio, que es la única razón para usar, sudo mkdirentonces la mejor manera de resolver esto es cambiar los permisos del directorio principal.

George Spiceland
fuente
OK gracias. En /etc/nginx/site1.confAsumo que no es bueno para cambiar la propiedad de /etc/(porque es archivo de sistema?) Pero me adelanté y cambiado /nginx/y subdirectorios a los usuarios y ahora puedo editarlo en emacs. ¿Cuál es la mejor práctica para cambiar / no cambiar los permisos de los directorios?
Zeynel
Depende de lo que te preocupe, exactamente. Si le preocupa que los usuarios deshonestos puedan ver el directorio utilizando algún tipo de mapeo de directorios a través de html, siempre puede cambiar los permisos usando sudo en el directorio padre, y luego volver a cambiarlos al octal seguro una vez que haya terminado de hacer su ajustes Una vez que haya creado el directorio, si no lo hace -R el chmod no los afectará, solo el padre. Sin embargo, la discusión real de las mejores prácticas de permisos es probablemente la mejor para una pregunta separada, después de algunos google fu.
George Spiceland
@Zeynel Probablemente no deberías hacer que los permisos sobre nada sean /etcmás permisivos. Están protegidos por una razón y, en general, para editarlos, debería estar usando sudoo similar.
ernie
El uso sudocrea exactamente el problema al que se refiere.
George Spiceland