Показать полную графическую версию : [решено] запуск скриптов от непривилигированного пользователя
нужно запустить скрипт при загрузке системы от непривилигированного юзера.
скопировал скрипт в /etc/init.d
update-rc.d scriptname 99 defaults
перехапускаюсь
ps -uax показывает что программа запущена от root
сhown user.usergroup /etc/init.d scriptname
chmod 4700 etc/init.d scriptname
ребут тоже самое. ((
вопрос как заставить скрипт запускаться от имени юзера.
спасибо!
ruslandh
16-01-2010, 16:18
Использовать su -с КОМАНДА - ИМЯ_ПОЛЬЗОВАТЕЛЯ
http://forum.oszone.net/thread-72834.html
хмм... тут наверно нужно более подробнее.
мой исполняемый файл имеет свои ключи и после
и после ввода su ругается на то что я не правльно его использовал и дает мне краткий хелп
по man выходит так что для того что бы новосозданный интерпритатор понимал все верно, необходимо su --command, но это к сожалению тоже ни кчем не привело.
ruslandh
17-01-2010, 21:18
Используйте кавычки.
Или сделайте враппер для вашего скрипта с параметрами
ruslandh, rкавычки не катят. :-((
BuGfiX, хмм....
не поможете скрипт написать?! или дать адекватную ссылку. на все что натыкаюсь сейчас в поисковиках не совсем то , как мне каежтся
лучше конечно ссылочку)
#!/bin/sh
user=testuser
program=/usr/bin/program
su -m ${user} -c ${program}
Как-то так
BuGfiX,
#!/bin/sh
user=mafik
program=/home/mafik/games/hlds_run -game cstrike +ip 192.168.1.30 +port 27020 -nomaster -insecure +map de_dust2 +maxplayers 10
su -m ${user} -c ${program}
mafik@debian:~/games$ ./server_start
./server_start: line 3: -game: команда не найдена
su: ключ требует аргумент -- c
Использование: su [параметры] [имя пользователя]
Параметры:
-c, --command COMMAND передать команду COMMAND вызываемой оболочке
-h, --help показать данное сообщение и закончить работу
-, -l, --login запускать оболочку как регистрационную
-m, -p,
--preserve-environment не сбрасывать переменные окружения и
сохранить запустившую оболочку
-s, --shell SHELL использовать значение переменной SHELL
вместо значения из файла passwd
mafik@debian:~/games$
-l -c наверно вы имели ввиду?!
в общем результат тот же((
проблему так и не рашил ((
ruslandh
24-01-2010, 17:09
Расставьте правильно кавычки.
$ program=/home/mafik/games/hlds_run -game cstrike +ip 192.168.1.30 +port 270; echo $program
bash: -game: команда не найдена
/home/mafik/games/hlds_run -game cstrike +ip 192.168.1.30 +port 270
$ program="/home/mafik/games/hlds_run -game cstrike +ip 192.168.1.30 +port 270"; echo $program
/home/mafik/games/hlds_run -game cstrike +ip 192.168.1.30 +port 270
ruslandh,
mafik@debian:~/cstrike16/games$ $program "/home/mafik/cstrike16/games/hlds_run -game cstrike";echo $program
bash: /home/mafik/cstrike16/games/hlds_run -game cstrike: Нет такого файла или каталога
папки перещещал поэтому путь сейчас другой. но смысл тот же.
ruslandh
25-01-2010, 22:27
а где равно?
[root@myfedora ~]# $program="/usr/bin/empathy -a";echo $program
-bash: =/usr/bin/empathy -a: No such file or directory
ruslandh
26-01-2010, 22:29
а на фига $
$ - это знак, приглашения, у вас оно выглядит. как mafik@debian:~/cstrike16/games$
#!/bin/sh
user=mafik;echo $user
program="/usr/bin/empathy -a";echo $program
su -l ${mafik} -c ${program}
[root@myfedora ~]# ./empathytest
mafik
/usr/bin/empathy -a
su: invalid option -- 'a'
Try `su --help' for more information.
[root@myfedora ~]#
если строки из скрипта выполнять почередно, то работает, когда запускаю скрипт, то вижу это..
я так понисвю что su думает что ключ -а относится к нему. можно нужны еще какие нибудь служебные символы?"
ruslandh
27-01-2010, 00:21
Пример:
#!/bin/sh
user=USER ;echo User=$user
program1="/bin/ls -l"
program2="echo I is $(/usr/bin/whoami)"
su -c "${program1}" - ${user}
su -c "${program2}" - ${user}
#!/bin/sh
user=mafik
prog="/bin/ls -l"
su -c "${prog}" -l ${user}
работает
так запускается только я подставляю строку /home/mafik/cstrike16/games/hlds_run -game cstrike
получаю
Invalid game type 'cstrike' sepecified.
Чтв Янв 28 21:49:38 MSK 2010: Server Failed
тип указан верно.
#!/bin/sh
cd /home/mafik/games/cstrike16
#user=mafik
prog="sudo -u mafik ./hlds_run -game cstrike"
${prog}
запуска. под рутом
root 2218 0.0 0.1 4908 1188 pts/0 S+ 23:01 0:00 /bin/sh /home/mafik/games/cstrike16/server_start
mafik 2219 0.0 0.1 4912 1288 pts/0 S+ 23:01 0:00 /bin/sh ./hlds_run -game cstrike
mafik 2227 8.0 6.3 84188 64332 pts/0 Sl+ 23:01 0:02 ./hlds_i686 -game cstrike
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.