Pregunta
Generalmente no escribo para solucionar mis problemas, pero ahora si que
me paso algo que no entiendo y me gustaría que me dieran una manito si
han tenido una experiencia como la mía..., bueno..
Tengo una laptop HP 550 con resolución de 1280x768 con Debian Lenny 5.04
y la conecté con un cable vga(los que se usan para los data shows) a un
televisor Sony pantalla plana de 32 pulgadas... la resolución se acomodó
bastante bien, pero las letras de los menús, iconos y todo eran
gigantes, así que fui a
Sistema-Administración-Preferencias-Tipografías y en vez de los
valores que por defecto estaban en 10, puse 2, y ya se veía bien en el
televisor (aunque las letras del menú de google-earth todavía estaban
muy grandes). Luego cuando traté de utilizar la laptop normalmente,
volví a cambiar todos los valores de las tipografías a 10(como estaban
antes) e igual se ve todo gigantesco en la pantalla, y aunque retorne
los valores a 2 como lo hice para que funcione en el televisor algunos
menús son muy grandes, por ejemplo el de mi iceweasel (firefox), asi que
no puedo ni navegar :'(. Ya revisé el xorg.conf y está igual que antes,
es seguro que algo se desconfiguró pero no se donde..
Heeelp!!..
Respuesta
la solución fue arreglar el DPI :).
Blog basado en el foro de www.softwarelibre.org.bo y autorizado por sus moderadores. Está destinado a quienes tienen conocimientos sobre Linux y desean despejar dudas. Este blog está compuesto por una compilación de las mejores consultas con sus respectivas respuestas. Nuestra única fuente es el foro anteriormente mencionado y no nos hacemos responsables por las preguntas y respuestas compiladas ni por los enlaces que puedan figurar en las mismas.
Busqueda sobre Linux y software libre
Noticias sobre linux y software libre - Google
Abrir un archivo del sistema desde php en Ubuntu
Pregunta
tengo otra pregunta
cuando me encuentro en la terminal de ubuntu escribo lo siguiente:
gksu gedit /etc/misarchivos/configuracion.conf
y eso me abre el archivo con privilegios para editarlo y luego guardarlo como administrador "su"
ocurre lo siguiente, ...... eso mismo necesito realizarlo desde PHP con código, he encontrado que con fopen("/etc/misarchivos/configuracion.conf") puedo abrir un archivo,
intentando hacerlo con fopen al hacerlo correr me sale el error que no tengo permiso, claro es porque me falta gksu gedit para tener privilegio de administrador "su"
Ahora por otro lado encontre lo siguiente:
$ultima_linea = system('ls', $retval);
system dice que me ejecuta comandos desde php, lo he probado y si funciona, quise combinar los dos
fopen() y system() , pero no obtuve un buen resultado.
Alquien me puede ayudar por favor, o darme alguna guia ?????
Respuesta
como ejecutas el script PHP, desde consola o mediante el navegador??
Aver si te sirve esto:
Desde la consola con el cliente php puedes ejecutar:
sudo php /var/www/fichero.php
puedes combinarlo junto con system y hacer lo que necesitas.
Otra respuesta
¿Por que no cambias los permisos antes de ejecutar tu script de PHP?
chmod 777 /etc/misarchivos/configuracion.conf
Si no quieres cambiar los permisos, puedes executar tu archivo de php con sudo:
sudo php micodigo.php
Si quieres evitar usando una contraseña, puedes editar tu archivo /etc/sudoers:
sudo visudo
Y añadir esta linea:
Entonces, puedes usar esto en tu script de php:
exec("sudo
Donde $a tiene el contenido del archivo en un array.
Y otra respuesta
En general es una mala idea poner permisos para todo el mundo. Yo suelo
decir que también que es una idea peresoza por no buscar mejores
caminos.
Por lo que se indica , asumo que su código PHP se está ejecutando vía
el servidor web apache. Y por ahí debe ir la solución.
El tema de permisos de acceso a un archivo, es validado por el sistema
verificando la propiedad del archivo y la propiedad del proceso. En la
mayoría de los sistemas el servidor web (por tanto PHP) se ejecutan bajo
un usuario determinado (propietario del proceso), en Debian www-data, en
CentOS apache.
Entonces si quiero tener un script PHP que ejecutado via web pueda
editar un archivo, todo lo que tengo que hacer es que mi usuario
www-data/apache sea dueño de ese archivo. Esto es bastante permisivo, y
en general la seguridad recomienda dar el permiso mínimo necesario. Asi
que en lugar que sea dueño del archivo es mejor que sólo pertenezca a su
grupo.
Traduciendo a órdenes sería así: (asumiendo que el usuario bajo el cual
corre el servidor web es 'apache')
chown root.apache /etc/misarchivos/configuracion.conf
chmod u=rw,g=rw,o= /etc/misarchivos/configuracion.conf
A partir de este momento un script PHP como se menciona antes podría
hacer fopen("/etc/misarchivos/configuracion.conf") y modificar el
archivo.
Para averiguar que usuario es dueño del proceso "servidor web" se puede
hacer: ps aux | grep http
En mi máquina obtengo esto:
[root@hardy ~]# ps aux | grep http
apache 1668 0.0 6.1 43084 22812 ? S Aug17
0:04 /usr/sbin/httpd
apache 10130 0.0 6.8 45276 25144 ? S Aug18
0:04 /usr/sbin/httpd
root 19690 0.0 4.9 35804 18200 ? Ss Jun05
10:07 /usr/sbin/httpd
apache 21769 0.0 6.5 44112 24000 ? S Aug17
0:05 /usr/sbin/httpd
apache 26457 0.0 6.1 42944 22752 ? S Aug18
0:03 /usr/sbin/httpd
apache 28042 0.0 5.4 41460 20136 ? S 09:31
0:00 /usr/sbin/httpd
root 29736 0.0 0.1 1836 492 pts/0 S+ 13:00 0:00 grep
http
tengo otra pregunta
cuando me encuentro en la terminal de ubuntu escribo lo siguiente:
gksu gedit /etc/misarchivos/configuracion.conf
y eso me abre el archivo con privilegios para editarlo y luego guardarlo como administrador "su"
ocurre lo siguiente, ...... eso mismo necesito realizarlo desde PHP con código, he encontrado que con fopen("/etc/misarchivos/configuracion.conf") puedo abrir un archivo,
intentando hacerlo con fopen al hacerlo correr me sale el error que no tengo permiso, claro es porque me falta gksu gedit para tener privilegio de administrador "su"
Ahora por otro lado encontre lo siguiente:
$ultima_linea = system('ls', $retval);
system dice que me ejecuta comandos desde php, lo he probado y si funciona, quise combinar los dos
fopen() y system() , pero no obtuve un buen resultado.
Alquien me puede ayudar por favor, o darme alguna guia ?????
Respuesta
como ejecutas el script PHP, desde consola o mediante el navegador??
Aver si te sirve esto:
Desde la consola con el cliente php puedes ejecutar:
sudo php /var/www/fichero.php
puedes combinarlo junto con system y hacer lo que necesitas.
Otra respuesta
¿Por que no cambias los permisos antes de ejecutar tu script de PHP?
chmod 777 /etc/misarchivos/configuracion.conf
Si no quieres cambiar los permisos, puedes executar tu archivo de php con sudo:
sudo php micodigo.php
Si quieres evitar usando una contraseña, puedes editar tu archivo /etc/sudoers:
sudo visudo
Y añadir esta linea:
%users ALL = NOPASSWD: cat
/etc/misarchivos/configuracion.confEntonces, puedes usar esto en tu script de php:
exec("sudo
cat
/etc/misarchivos/configuracion.conf", $a);Donde $a tiene el contenido del archivo en un array.
Y otra respuesta
En general es una mala idea poner permisos para todo el mundo. Yo suelo
decir que también que es una idea peresoza por no buscar mejores
caminos.
Por lo que se indica , asumo que su código PHP se está ejecutando vía
el servidor web apache. Y por ahí debe ir la solución.
El tema de permisos de acceso a un archivo, es validado por el sistema
verificando la propiedad del archivo y la propiedad del proceso. En la
mayoría de los sistemas el servidor web (por tanto PHP) se ejecutan bajo
un usuario determinado (propietario del proceso), en Debian www-data, en
CentOS apache.
Entonces si quiero tener un script PHP que ejecutado via web pueda
editar un archivo, todo lo que tengo que hacer es que mi usuario
www-data/apache sea dueño de ese archivo. Esto es bastante permisivo, y
en general la seguridad recomienda dar el permiso mínimo necesario. Asi
que en lugar que sea dueño del archivo es mejor que sólo pertenezca a su
grupo.
Traduciendo a órdenes sería así: (asumiendo que el usuario bajo el cual
corre el servidor web es 'apache')
chown root.apache /etc/misarchivos/configuracion.conf
chmod u=rw,g=rw,o= /etc/misarchivos/configuracion.conf
A partir de este momento un script PHP como se menciona antes podría
hacer fopen("/etc/misarchivos/configuracion.conf") y modificar el
archivo.
Para averiguar que usuario es dueño del proceso "servidor web" se puede
hacer: ps aux | grep http
En mi máquina obtengo esto:
[root@hardy ~]# ps aux | grep http
apache 1668 0.0 6.1 43084 22812 ? S Aug17
0:04 /usr/sbin/httpd
apache 10130 0.0 6.8 45276 25144 ? S Aug18
0:04 /usr/sbin/httpd
root 19690 0.0 4.9 35804 18200 ? Ss Jun05
10:07 /usr/sbin/httpd
apache 21769 0.0 6.5 44112 24000 ? S Aug17
0:05 /usr/sbin/httpd
apache 26457 0.0 6.1 42944 22752 ? S Aug18
0:03 /usr/sbin/httpd
apache 28042 0.0 5.4 41460 20136 ? S 09:31
0:00 /usr/sbin/httpd
root 29736 0.0 0.1 1836 492 pts/0 S+ 13:00 0:00 grep
http
Suscribirse a:
Entradas (Atom)