הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   בעיה ב- bash (https://hosts.co.il/forums/showthread.php?t=72069)

Jonathan Zeierman 17-02-09 14:30

בעיה ב- bash
 
שלום לכולם.
אני מתכנת איזה פאנל בשפת bash.
עכשיו אני מנסה לעשות ככה:
להכנס ליוזר מסויים דרך הפקודה: su דרך הroot.
הוא מצליח להיכנס אבל אחרי שעושים את הפקודה su yoni הוא נותן לנו ככה:
קוד:

[yoni@100 root]$
בשביל להיכנס ולבצע פקודות בתוך היוזר צריך לעשות אחרי הפקודה cd.
אבל זה לא עושה כלום, אחרי הפקודה אני מנסה להריץ פקודה מסוימת ורק אחרי שאני יוצא מהיוזר היא מופעלת.
הנה הקוד להבנה טובה יותר:
קוד:

function install
{
if [ $1 = 2 ]; then
echo "Pleas supplied a username [אנא ספק את שם היוזר]"
read username
clear
su $username
cd
echo "Number servers running [מספר השרתים שרצים ביוזר]:"
ps ux | grep hlds_i686 | wc -l
exit
else
echo "בחירה לא טובה, תודה."
echo "אתה מנותק מהמערכת"
sleep 3
exit
read dist
install $dist
fi
}

מה עושים?
יוני.

Jonathan Zeierman 17-02-09 15:44

הסתדרתי עם הקוד הבא:
קוד:

function install
{
if [ $1 = 2 ]; then
echo "Pleas supplied a username [אנא ספק את שם היוזר]"
read username
clear
cd /home/$username
su $username
echo "Number servers running [מספר השרתים שרצים ביוזר]:"
ps ux | grep hlds_i686 | wc -l
exit
else
echo "בחירה לא טובה, תודה."
echo "אתה מנותק מהמערכת"
sleep 3
exit
read dist
install $dist
fi
}

אבל אחרי שהוא עושה:
su הוא לא מציג את הפקודה, ז"א רק אחרי שיוצאים מהיוזר רואים את הפקודה.
ז"א הוא ממתין עד שאני אצא מהיוזר.
יש משהו שאפשר לעשות?
יוני.

דניאל 17-02-09 16:19

אפשר לפתור את זה בצורה יפה (ומעט יותר מאובטחת) ע"י sudo -S
(שמאפשר לקבל את הסיסמא בתור stdin)

ממליץ לך לקרוא את הmenual של sudo


כל הזמנים הם GMT +2. הזמן כעת הוא 14:21.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ