1 |
> |
2 |
> No es posible que el usuario sobreescriba las variables, por que su es |
3 |
> el padre, y su hijo es un shell con login. Un hijo no puede modificar al |
4 |
> padre. |
5 |
> |
6 |
> No. Yo creo que lo que te está sucediendo es que al regresar del shell, |
7 |
> de alguna forma tu echo es sobreescrito. Posiblemente por el prompt. O |
8 |
> algo similar. |
9 |
> Intenta poner un echo vacío antes y después, y checa si sucede algo. |
10 |
|
11 |
|
12 |
no.. si el problema.. no es que el hijo sobre escriba las variables de el |
13 |
padre.. |
14 |
el problema es que al hijo.. no le llegan la variables del padre.. |
15 |
|
16 |
fijate.. he aislado mas el problema aun .. |
17 |
|
18 |
he creado un script muy sencillo: |
19 |
========================================0 |
20 |
linuxready root # cat /tmp/script.sh |
21 |
#!/bin/sh |
22 |
echo "valor=$VARIABLE" |
23 |
========================================0 |
24 |
|
25 |
|
26 |
exporto una variable: |
27 |
========================================0 |
28 |
linuxready root # export VARIABLE="valor" |
29 |
========================================0 |
30 |
|
31 |
la leo a traves de un su - y un -c: |
32 |
========================================0 |
33 |
linuxready root # su - tomcat -c "echo valor=$VARIABLE" |
34 |
valor=valor |
35 |
========================================0 |
36 |
|
37 |
todo bien.. |
38 |
|
39 |
ahora la leo invocando al script desde el -c: |
40 |
========================================0 |
41 |
linuxready root # su - tomcat -c "/tmp/script.sh" |
42 |
valor= |
43 |
========================================0 |
44 |
|
45 |
la variabel no está.. |
46 |
|
47 |
podría ser que en el $HOME del usuario tomcat hubiera un .bashrc que borrara |
48 |
todas la variables de entorno .. pero no es el caso: |
49 |
=========================================0 |
50 |
linuxready root # finger tomcat |
51 |
Login: tomcat Name: Apache Tomcat |
52 |
Directory: /home/tomcat Shell: /bin/sh |
53 |
Never logged in. |
54 |
No mail. |
55 |
No Plan. |
56 |
linuxready root # ls -la /home/tomcat/ |
57 |
total 5 |
58 |
drwx------ 2 tomcat tomcat 80 May 17 12:49 . |
59 |
drwxr-xr-x 7 root root 200 May 17 12:41 .. |
60 |
-rw------- 1 tomcat tomcat 177 May 17 13:23 .bash_history |
61 |
===========================================0 |
62 |
|
63 |
|
64 |
ahora.. si prueba en ved de con el su - .. con el su a secas: |
65 |
===========================================0 |
66 |
linuxready root # su tomcat -c "/tmp/script.sh" |
67 |
valor=valor |
68 |
===========================================0 |
69 |
|
70 |
funciona¡¡ |
71 |
|
72 |
todo esto .. lo he probado en otra máquina y ocurre exactamente lo mismo.. |
73 |
|
74 |
tengo entendido que cuando le pones el - al comando su.. lo que ocurre es que |
75 |
se ejecuta el entorno del usuario.. es decir.. el .bashrc y el .bash_profile |
76 |
que tenga en su home.. |
77 |
|
78 |
pero este usuario no tiene nada en el home.. |
79 |
|
80 |
entonces.. |
81 |
por que se borra la variable de entorno?? |
82 |
como puedo evitarlo.. ?? |
83 |
|
84 |
deberé modificar el script del demonio que me ha creado el emerge.. y quitarle |
85 |
el - a la sentencia su ?? |
86 |
|
87 |
gracias.. y saludos |
88 |
d2clon |
89 |
|
90 |
|
91 |
-- |
92 |
gentoo-user-es@g.o mailing list |