Cambio de permisos para / var / www / html

12

He estudiado este tema https://help.ubuntu.com/community/FilePermissions por un tiempo y no puedo hacerlo funcionar por alguna razón.

Particularmente, estas líneas me interesan más:

Para cambiar todos los permisos de cada archivo y carpeta en un directorio específico a la vez, use sudo chmod con -R

$ sudo chmod 777 -R /path/to/someDirectory
$ ls -l
total 3
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file1
drwxrwxrwx  2 user user 4096 Nov 19 20:13 folder
-rwxrwxrwx  1 user user 0 Nov 19 20:13 file2

Esto es lo que escribí:

mark@ubuntuserver:~$ sudo chmod 755 /var/www/html
mark@ubuntuserver:~$ ls -l
total 0

Luego verifiqué cualquier cambio en sftp:

sftp> cd /
sftp> cd var/www/html
sftp> pwd
Remote working directory: /var/www/html
sftp> ls -l
-rw-r--r--    1 root     root        11321 Apr 10 20:07 index.html

De la salida está claro que el directorio html todavía es modificable solo por root.

¿Cómo puedo cambiar esto de la forma en que yo (no root) puede subir archivos al directorio html?

También probé:

El propietario de un archivo se puede cambiar con el comando chown. Por ejemplo, para cambiar el propietario del archivo foobar a tux:

$ sudo chown tux foobar

Escribí desde el servidor:

sudo chown mark owner

sin efecto.

Mark Alexa
fuente
Te falta la opción -r para recursivo. Y 777 es -nunca- el cambio correcto a realizar (a menos que también establezca la opción t (bit fijo). Pregunta: ¿por qué el directorio está vacío en el segundo comando y se llena con index.html en el tercer comando? Esos comandos NO son emitido con las mismas situaciones, sudo chown mark owner¿qué se supone que debe hacer? ¿Cómo puede introducir un archivo o directorio llamado "propietario" allí?
Rinzwind
Para tomar posesión de un archivo o directorio, debe especificar quién es el nuevo propietario, el grupo (opcional) y el archivo o directorio. Por ejemplo, sudo chown user:user mydocsdónde está el nuevo propietario y grupo usery el directorio del que se está mydocs
apropiando
1
En este caso, dejaría solo la propiedad del directorio, para modificar los permisos de ese directorio específico para que pueda escribir en él, establecer permisos de lectura / escritura, siendo el comandosudo chmod 766 -r /var/www/html
Gansheim
Parece que @Rinzwind emitió el ls -lcomando desde su directorio de inicio. @Mark A menos que esté en el directorio que está tratando de ver / manipular, debe especificar la ruta, en este caso debería haber emitido el comando comols -l /var/www/html
Gansheim el
1
Como los muchachos han señalado, chmodcambia los permisos, chowncambia el propietario. 755 primer dígito (7) significa que 'propietario' tiene todos los permisos, mientras que el segundo y último dígito (5) significa que 'grupo' y 'otro' tienen permisos de lectura y ejecución. Puede agregar su usuario al grupo y otorgarle permisos completos para que no tenga que hacer tantos cambios.
Samuel

Respuestas:

11

En este caso, dejaría solo la propiedad del directorio. Para modificar los permisos para ese directorio específico para que pueda escribir en él, establezca los permisos de lectura / escritura, siendo el comando sudo chmod 766 -R /var/www/html. Esto asignará permisos completos 7para el propietario, lectura / escritura 6para el grupo y lectura / escritura para todos 6, de forma recursiva.

Gansheim
fuente
9

Puedes hacerte el dueño de ese directorio

sudo chown pi /var/www/html

Pero definitivamente quieres establecer los permisos

chmod 755 -R /var/www/html

El uso de la opción -R (recursiva) se asegurará de que sus archivos de script y su archivo .htaccess estén configurados de la misma manera.


Cada vez que agregue un nuevo script, asegúrese de configurarlo de esta manera también.

chmod 755 /var/www/html/cgi-bin/newscript.cgi

Tenga en cuenta que algunos programas CGI tienen sus propios requisitos, como el

Bestdam Website Visitor Logger + Contador de visitas

Extracto:

Abra el archivo bdlogger.pl en un editor de texto y, si es necesario, modifique la línea shebang.

En el servidor, cree un subdirectorio bdlogger en su directorio cgi-bin y envíe por FTP el script y los archivos de datos utilizando el modo ASCII

Si utiliza un servidor UNIX / Linux, modifique los archivos:

bdlogger.pl to 755
all other files to 666

Agregue la siguiente etiqueta de directiva SSI a su (s) página (s) web:

<!--#exec cgi="/cgi-bin/bdlogger/bdlogger.pl" -->
SDsolar
fuente
5

Debe configurar el propietario de la carpeta www de 'root' a 'Me'.

Desde su terminal, ejecute el comando:

sudo chown -R your_system_username /var/www

¡¡Espero que funcione!!

Genio
fuente
2

Si bien las respuestas anteriores serán bastante útiles, este es un enfoque más saludable. Lo más probable es que desee modificar archivos dentro de / var / www / html porque desea agregar una aplicación web para servir Apache2. Para lograr esto necesitas los siguientes pasos

  1. Agregue el usuario al grupo de usuarios www-dataque tiene la propiedad predeterminada de la carpeta. ¿Por qué? Porque si tiene la intención de realizar cambios dinámicos en la aplicación web, incluso si wordpressestá activada, necesitará que los usuarios de este grupo tengan permisos de escritura. Para hacer esto simplemente escriba: sudo adduser username grouptoaddEn nuestro caso lo será sudo adduser username www-data.
  2. A continuación, debe cambiar el read/write permissionsuso del chmodcomando. Recuerde que ahora es parte del grupo de usuarios y no necesita cambiar la propiedad utilizando chown. Para hacer esto, simplemente ejecute: sudo chmod -R 766 directoryen este caso lo será sudo chmod -R 766 html. Si te sientes deportivo, puedes obtener permisos de escritura completos (777), dependiendo de qué tan segura sea tu aplicación.

El -Rsignificado es una función recursiva, que permite que el comando se aplique a todos los subdirectorios. Espero que esto ayude a alguien que lo necesite.

AntonyMN
fuente