problemas: chmod y php

Publicado por lugolu, Agosto 09, 2008, 17:16:14

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

lugolu

queriendo instalar apache, mysql, php y phpmyadmin en un momento quería cambiar los permisos de una carpeta en /var/www (para poder ver una página y editar sus archivos) y puse mal el comando
quise poner
chmod -R 777 ./
pero me comí el .
chmod -R 777 /
entonces empezó a cambiarme los permisos de varios archivos. ahí nomás cancelé.
harto de renegar con que no puedo abrir páginas usando un archivo index.php ((pero si le cambio el nombre anda bien me pide guardarlo o abri con en vez de abrirlo) reinicio.
cuando pongo la contraseña me sale un mensaje que dice algo como que el archivo $HOME/.... tiene que tener permiso 644 (o algo así) y que por ello no se podía hacer no sé qué.
le doy enter y sigue.
cuando me quiero conectar a internet mediante un script que está en el escritorio no me pide la contraseña y se cierra ahí nomás la consola.
el comando con el que me conecto es
sudo pppoe-stat
cuando lo escribo desde una consola me da un error de autenticación o algo así.

qué hago
(obvien comentarios algunos como pasate a windows o formatear)

y además la solución al tema de php
instalé un foro renombrando el index.php por index1.php, pero todos los enlaces apuntan a index, entonces tengo que modificar cada enlace cuando voy a querer abrirlo.
de todo un poco

cocochio

Cita de: lugolu en Agosto 09, 2008, 17:16:14
quise poner
chmod -R 777 ./
pero me comí el .
chmod -R 777 /

...

qué hago
(obvien comentarios algunos como pasate a windows o formatear)

Es que si ejecutaste ese comando como root me parece que la cagaste...
Capaz que para evitar confusiones lo mejor hubiese sido que el comando en el documento donde lo sacaste hubiese dicho chmod -R 777 .



Cita de: lugolu en Agosto 09, 2008, 17:16:14
cuando pongo la contraseña me sale un mensaje que dice algo como que el archivo $HOME/.... tiene que tener permiso 644 (o algo así) y que por ello no se podía hacer no sé qué.

Tendrías que editar a mano todos esos problemas, pero además podrías tener problemas de seguridad porque un montón de archivos tienen todos los permisos habilitados.
En el caso del error que nombrás lo podrías arreglar con chmod 644 $HOME/....

ZeiterZ

Cita de: lugolu en Agosto 09, 2008, 17:16:14
queriendo instalar apache, mysql, php y phpmyadmin en un momento quería cambiar los permisos de una carpeta en /var/www (para poder ver una página y editar sus archivos) y puse mal el comando
quise poner
chmod -R 777 ./
pero me comí el .
chmod -R 777 /
entonces empezó a cambiarme los permisos de varios archivos. ahí nomás cancelé.
harto de renegar con que no puedo abrir páginas usando un archivo index.php ((pero si le cambio el nombre anda bien me pide guardarlo o abri con en vez de abrirlo) reinicio.
cuando pongo la contraseña me sale un mensaje que dice algo como que el archivo $HOME/.... tiene que tener permiso 644 (o algo así) y que por ello no se podía hacer no sé qué.
le doy enter y sigue.
cuando me quiero conectar a internet mediante un script que está en el escritorio no me pide la contraseña y se cierra ahí nomás la consola.
el comando con el que me conecto es
sudo pppoe-stat
cuando lo escribo desde una consola me da un error de autenticación o algo así.

qué hago
(obvien comentarios algunos como pasate a windows o formatear)

y además la solución al tema de php
instalé un foro renombrando el index.php por index1.php, pero todos los enlaces apuntan a index, entonces tengo que modificar cada enlace cuando voy a querer abrirlo.

Son muchos problemas, más el cambio de permisos inadecuado que hiciste, tu sistema es imposible de arreglar vía foro (necesitaríamos 400 páginas y 2 vidas).

Además, se nota que no tienes mucha experiencia en el tema de Linux así que cualquier orden o acción avanzada de administración haría que termines copiándola o siguiéndola al pie de la letra sin personalizarla para tu Linux (que tampoco dices cuál es: Debian, Ubuntu, RedHat, Fedora, Mandriva, Suse, etc.).

Ante esta situación, lo mejor es que reinstales Linux en esa partición.

Notas:

- El tema de los permisos cambiados inadecuadamente tiene solución (sin reinstalar) pero es trabajosa
- El tema de los permisos de $HOME es trabajosa pero necesitas cierto manejo (y pericia) de la consola.
- El tema de que no abres los archivos index.php es porque hay que configurar a Apache (que tampoco aclaras, pero supongo) para que lo haga. Así que también tenía solución.

Saludos y suerte.

lugolu

#3
Cita de: ZeiterZ en Agosto 09, 2008, 19:04:21

Son muchos problemas, más el cambio de permisos inadecuado que hiciste, tu sistema es imposible de arreglar vía foro (necesitaríamos 400 páginas y 2 vidas).

Además, se nota que no tienes mucha experiencia en el tema de Linux así que cualquier orden o acción avanzada de administración haría que termines copiándola o siguiéndola al pie de la letra sin personalizarla para tu Linux (que tampoco dices cuál es: Debian, Ubuntu, RedHat, Fedora, Mandriva, Suse, etc.).

Ante esta situación, lo mejor es que reinstales Linux en esa partición.

Notas:

- El tema de los permisos cambiados inadecuadamente tiene solución (sin reinstalar) pero es trabajosa
- El tema de los permisos de $HOME es trabajosa pero necesitas cierto manejo (y pericia) de la consola.
- El tema de que no abres los archivos index.php es porque hay que configurar a Apache (que tampoco aclaras, pero supongo) para que lo haga. Así que también tenía solución.

Saludos y suerte.


no soy un novato, sé que estaba cambiado recursivamente los permisos dentro de una carpeta. sólo que no me tomó el .

es la 3ª vez que instalo apache (las anteriores en ubuntu 7.04 y 7.10) y ninguna de las anteriores me dió problemas como ésta con el tema de php..
lo del chmod lo hice para poder editar los archivos de la página. sino me los abría en sólo lectura.

puse al principio del post que todo sucedió por estar haciendo andar php, apache y mysql.

las otras veces que lo instalé lo hice desde sinaptyc igual que ahora y no tuve que configurar nada.
de todo un poco

lugolu

Cita de: cocochio en Agosto 09, 2008, 18:34:31

Cita de: lugolu en Agosto 09, 2008, 17:16:14
cuando pongo la contraseña me sale un mensaje que dice algo como que el archivo $HOME/.... tiene que tener permiso 644 (o algo así) y que por ello no se podía hacer no sé qué.

Tendrías que editar a mano todos esos problemas, pero además podrías tener problemas de seguridad porque un montón de archivos tienen todos los permisos habilitados.

En el caso del error que nombrás lo podrías arreglar con chmod 644 $HOME/....

qué clase de problemas de seguridad puedo tener?

lo de home es lo que estaba pensando hacer
de todo un poco

cocochio

Cita de: lugolu en Agosto 09, 2008, 20:14:44
Cita de: cocochio en Agosto 09, 2008, 18:34:31

Cita de: lugolu en Agosto 09, 2008, 17:16:14
cuando pongo la contraseña me sale un mensaje que dice algo como que el archivo $HOME/.... tiene que tener permiso 644 (o algo así) y que por ello no se podía hacer no sé qué.

Tendrías que editar a mano todos esos problemas, pero además podrías tener problemas de seguridad porque un montón de archivos tienen todos los permisos habilitados.

En el caso del error que nombrás lo podrías arreglar con chmod 644 $HOME/....

qué clase de problemas de seguridad puedo tener?

Y, en este momento cualquiera (incluyendo un script) puede hacer rm -rf / y te borra todo

lugolu

Cita de: cocochio en Agosto 09, 2008, 20:42:25
Cita de: lugolu en Agosto 09, 2008, 20:14:44

qué clase de problemas de seguridad puedo tener?

Y, en este momento cualquiera (incluyendo un script) puede hacer rm -rf / y te borra todo

apenas me di cuenta que había puesto / y no ./ hice Ctrl+c, no es que le aplicó los cambios a todo.

ahí probé lo que decías de hacer
chmod 644 $HOME/
pero cuando vuelvo a entrar me tira el mismo error
se ignora el archivo $HOME/.dmrc. no debería tener permisos para todos los usuarios, sino sólo para el actual. debería ser 644.
(algo así dice el error)
e inicia sesión
pero cuando quiero hacer cualquier cosa que lleve sudo adelante tira otro error:
sudo musr be suid
(o algo así) y no hace lo que está a continuación

me parece que no me va a quedar otra que instalarlo desde cero y prestar más atención la próxima vez
de todo un poco

lugolu

Cita de: lugolu en Agosto 09, 2008, 17:16:14

(obvien comentarios algunos como pasate a windows)


ésto fué porque lo copié de otro foro donde también posteé y nunca falta el que se hace el chistoso y te dice éso o que te pasa por usar linux
de todo un poco

cocochio

yo no dije chmod 644 $HOME/
puse ... como vos pusiste, queriendo decir "reemplace ... por lo que corresponda"

lugolu

Cita de: cocochio en Agosto 09, 2008, 21:06:31
yo no dije chmod 644 $HOME/
puse ... como vos pusiste, queriendo decir "reemplace ... por lo que corresponda"

no, puse el archivo que me tira el error (.dmrc)
de todo un poco

DAX

Cita de: lugolu en Agosto 09, 2008, 21:08:05
Cita de: cocochio en Agosto 09, 2008, 21:06:31
yo no dije chmod 644 $HOME/
puse ... como vos pusiste, queriendo decir "reemplace ... por lo que corresponda"

no, puse el archivo que me tira el error (.dmrc)
Proba hacer un "ls -l ./.dmrc" y ver que permisos tiene ahora.

luego, un chmod 644 .dmrc y ver si con eso soluciona el problema, aunque creo que este archivo tiene que tener permisos de lectura y escritura solo para el owner (chmod 600 .dmrc), como te dice el mensaje de error.

Respecto de php, intentá reinstalar php y fijate en el archivo de configuracion de apache si está activado, primero, yendo al directorio "/etc/apache2/mods-available" y ver si tenés los archivos "php5.conf" y "php5.load", luego, anda a "/etc/apache2/mods-enabled" y mirá si hay links simbólicos de esos archivos.

Si estos están bien, editá el archivo "apache2.conf" y busca la línea con la directiva "DirectoryIndex" y fijate si en la lista de archivos por defecto tenés "index.php", si no lo tenés, agregalo en esa lista. El orden en que estén declarados implica el orden en que apache los buscará para ejecutarlos, por ejemplo si tenés:

DirectoryIndex  index.html index.htm index.php

Apache primero buscará index.html, si existe lo ejecutará, si no existe, busca index.htm y así sucesivamente.

SaludOS/2

lugolu

Cita de: DAX en Agosto 09, 2008, 21:37:12
Cita de: lugolu en Agosto 09, 2008, 21:08:05
Cita de: cocochio en Agosto 09, 2008, 21:06:31
yo no dije chmod 644 $HOME/
puse ... como vos pusiste, queriendo decir "reemplace ... por lo que corresponda"

no, puse el archivo que me tira el error (.dmrc)
Proba hacer un "ls -l ./.dmrc" y ver que permisos tiene ahora.

luego, un chmod 644 .dmrc y ver si con eso soluciona el problema, aunque creo que este archivo tiene que tener permisos de lectura y escritura solo para el owner (chmod 600 .dmrc), como te dice el mensaje de error.

Respecto de php, intentá reinstalar php y fijate en el archivo de configuracion de apache si está activado, primero, yendo al directorio "/etc/apache2/mods-available" y ver si tenés los archivos "php5.conf" y "php5.load", luego, anda a "/etc/apache2/mods-enabled" y mirá si hay links simbólicos de esos archivos.

Si estos están bien, editá el archivo "apache2.conf" y busca la línea con la directiva "DirectoryIndex" y fijate si en la lista de archivos por defecto tenés "index.php", si no lo tenés, agregalo en esa lista. El orden en que estén declarados implica el orden en que apache los buscará para ejecutarlos, por ejemplo si tenés:

DirectoryIndex  index.html index.htm index.php

Apache primero buscará index.html, si existe lo ejecutará, si no existe, busca index.htm y así sucesivamente.

SaludOS/2

lo del chmod del archivo lo probé recién y cuando inicio de vuelta me tira el mismo error (poniéndole 644 como dice el mensaje)

lo de php es raro, porque si en vez de ser index.php es index1.php anda bien
nada más que tanto el foro (smf como éste) como phpmyadmin están hechos para funcionar con index.php como raíz de todo, por lo que todos los enlaces apuntan a ése archivo

pero me parece que voy a reinstalar todo por el riesgo que supone lo de permisos totales en partes del sistema que no deberían.
además que no me anda el comando sudo
de todo un poco

ZeiterZ

Bueno. Veamos.

podrías hacer:

find  /home/usuario -type d -exec  chmod 750 {} \;

eso pondrá los directorios dentro de tu Home a 750. Puedes poner también 700 o lo que gustes.

find /home/usuario  -type f -exec chmod 644 {} \;

eso pondrá los archivos a 644. También podrías usar 640 ó 600. Todo depende de tus necesidades.
A partir de allí todo error que aparezca puedes cambiar a mano el o los archivos que den error.

Precaución: Tratá de dar esos comandos sin privilegios (no root, no sudo)... por las dudas si en tu Home o en tu $HOME/Desktop hay enlaces a otros directorios.

Con respecto al 777 en /, te diría que cambies a mano por lo menos los directorios de /.
Un esquema usual es este:

drwxr-xr-x  24 root root 4,0K jul 15 10:31 ./
drwxr-xr-x  24 root root 4,0K jul 15 10:31 ../
drwxr-xr-x   2 root root 4,0K ago  9 13:09 bin/
drwxr-xr-x   3 root root 4,0K ago  7 11:54 boot/
lrwxrwxrwx   1 root root   11 abr  1 00:52 cdrom -> media/cdrom/
drwxr-xr-x  15 root root 3,9K ago  9 20:09 dev/
drwxr-xr-x 188 root root  12K ago  9 21:15 etc/
drwxr-xr-x   7 root root   77 may 16 13:23 home/
drwxr-xr-x   2 root root    6 ene 19  2008 initrd/
drwxr-xr-x  16 root root 8,0K ago  9 13:09 lib/
drwxr-xr-x   2 root root 4,0K ago  9 13:09 lib64/
drwx------   2 root root    6 ene 19  2008 lost+found/
drwxr-xr-x  15 root root 4,0K ago  2 15:22 media/
drwxr-xr-x   9 root root   82 jul  8 16:28 mnt/
drwxr-xr-x   4 root root   49 ago  7 11:09 opt/
dr-xr-xr-x 217 root root    0 jul 23 00:31 proc/
drwx-----  64 root root 4,0K ago  9 21:09 root/
drwxr-xr-x   2 root root 8,0K ago  9 13:09 sbin/
drwxr-xr-x   2 root root    6 mar  7  2007 selinux/
drwxr-xr-x   6 root root   59 may 31 14:16 srv/
drwxr-xr-x  11 root root    0 jul 23 00:31 sys/
drwxrwxrwt  29 root root 4,0K ago  9 21:24 tmp/
drwxr-xr-x  16 root root 4,0K jul  5 19:50 usr/
drwxr-xr-x  18 root root 4,0K feb 21 11:21 var/


Más allá de los cambios recursivos internos (que no sabemos hasta dónde llegó) por lo menos dará una mejor seguridad que la que tienes ahora.

Con respecto a index.php, fijate si tienes instalado libapache2-mod-php4 ó libapache2-mod-php5.

También asegurate de que los módulos de PHP estén habilitados:

man a2enmod

Saludos.


Nota:
Está movido este post  :jaja:
Ya postearon dos veces mientras escribía....

lugolu

con lo de hacerlo con sudo no hay problema porque no anda
cuando quiero ejecutar cualquier cosa con sudo, tira un error y no hace nada

y si no anda sudo no me puedo conectar a internet

y si no se puede conectar a internet desde linux me desheredan en mi casa
de todo un poco

ZeiterZ

¿Qué error te da sudo?

Tal vez el directorio /etc se vio afectado por el chmod 777...


lugolu

Cita de: ZeiterZ en Agosto 10, 2008, 01:00:17
¿Qué error te da sudo?

Tal vez el directorio /etc se vio afectado por el chmod 777...



sudo must be suid
(o algo así)
de todo un poco

DAX

#16
Cita de: lugolu en Agosto 10, 2008, 01:03:03
Cita de: ZeiterZ en Agosto 10, 2008, 01:00:17
¿Qué error te da sudo?

Tal vez el directorio /etc se vio afectado por el chmod 777...



sudo must be suid
(o algo así)


Proba con:

chmod 4755 `which sudo`

Eso le dara al comando sudo los permisos correspondientes y le restaurará el bit "suid" (which es para que el sistema ubique donde esta el archivo de comando sudo).

Y, respecto del archivo .dmrc intentá ponerle 600 en los permisos, a ver que pasa.

SaludOS/2

lugolu

Cita de: DAX en Agosto 10, 2008, 03:41:37
Cita de: lugolu en Agosto 10, 2008, 01:03:03
Cita de: ZeiterZ en Agosto 10, 2008, 01:00:17
¿Qué error te da sudo?

Tal vez el directorio /etc se vio afectado por el chmod 777...



sudo must be suid
(o algo así)


Proba con:

chmod 4755 `which sudo`

Eso le dara al comando sudo los permisos correspondientes y le restaurará el bit "suid" (which es para que el sistema ubique donde esta el archivo de comando sudo).

Y, respecto del archivo .dmrc intentá ponerle 600 en los permisos, a ver que pasa.

SaludOS/2

ahí hice lo de sudo pero no me anduvo
cuando ejecuto el comando tal como dices (qué es ése 4 ahí? si son 3 bytes: dueño, grupo y demás) da un error no se encuentra which (probé con comillas simples, dobles, sin comillas y nada)
después ejecuté sólo which sudo y devolvió que está en /usr/bin/sudo
bueno, le hago chmod a ésa ruta
permiso denegado

además descubrí que no puedo montar discos
será porque se necesita sudo?
cuando voy a equipo tira un error al querer abrir un disco (no probé desde la consola).

me voy convenciendo más de formatear, pero me frena lo que no puedo montar otras particiones (cuando instalé no separé /home en otra partición)
a lo mejor si inicio con un live cd antes de instalar pueda copiar todo a otro disco.
de todo un poco

DAX

Cita de: lugolu en Agosto 10, 2008, 10:33:39
ahí hice lo de sudo pero no me anduvo
cuando ejecuto el comando tal como dices (qué es ése 4 ahí? si son 3 bytes: dueño, grupo y demás) da un error no se encuentra which (probé con comillas simples, dobles, sin comillas y nada)
después ejecuté sólo which sudo y devolvió que está en /usr/bin/sudo
bueno, le hago chmod a ésa ruta
permiso denegado

además descubrí que no puedo montar discos
será porque se necesita sudo?
cuando voy a equipo tira un error al querer abrir un disco (no probé desde la consola).

me voy convenciendo más de formatear, pero me frena lo que no puedo montar otras particiones (cuando instalé no separé /home en otra partición)
a lo mejor si inicio con un live cd antes de instalar pueda copiar todo a otro disco.

Es muy probable que que no tengas el comando wich instalado. Y si por algún motivo no tenés permisos para ejecturar sudo, sólo te queda recurrir a loguearte como root, siempre que tengas habilitado el uso del superusuario.

Si no lo tenés habilitado, una opción es bootear con el liveCD y hacer lo siguiente desde la consola:

$sudo passwd root    // para habilitar root poniendo cualquier contraseña (esto es temporal)
$su root                     // nos logueamos como root
#mkdir /mnt/disco   // creamos un punto de montaje (esto es temporal)
#mount /dev/sdnx /mnt/disco  //montas la partición raíz (puede sd o hd)
#chroot /mnt/disco    // ponemos temporalmente como raíz la partición montada
#chmod 4755 /usr/bin/sudo

de paso, podes probar tambien hacer un

#chmod 600 /home/xxxx/.dmrc  // donde xxxx es tu usuario.

Reinicias, arrancas desde el HD y ves que pasa.

El 4 en el comando chmod es para activar el bit suid de sudo.

SaludOS/2

lugolu

el which si lo tengo instalado.
si lo ejecuto sólo, me da la ruta a sudo (/usr/bin/sudo)
de todo un poco

ZeiterZ

Cita de: lugolu en Agosto 10, 2008, 18:12:12
el which si lo tengo instalado.
si lo ejecuto sólo, me da la ruta a sudo (/usr/bin/sudo)

Hacé lo que dice DAX en el último post.

El tema de cambiar los permisos de sudo falló porque sólo root (o vía sudo) se pueden cambiar los permisos de un binario propiedad de root.

El camino del LiveCD es el más viable.

saludos.

lugolu

#21
anduvo

por lo menos ya me puedo conectar a internet, anda sudo

pero no puedo montar discos:



EDIT:
la cagué totalmente
cuando quise restaurar los permisos a como decías después de éso no me anda nada (sudo, man, reboot, shutdown)
y cuando reinicié no carga el servidor gráfico (todos cuadrados en vez de letras) y en la consola sigue sin andar
de todo un poco