Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Общий по Linux (http://forum.oszone.net/forumdisplay.php?f=9)
-   -   [решено] запуск скриптов от непривилигированного пользователя (http://forum.oszone.net/showthread.php?t=163688)

hnsk 16-01-2010 16:11 1321802

запуск скриптов от непривилигированного пользователя
 
нужно запустить скрипт при загрузке системы от непривилигированного юзера.

скопировал скрипт в /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 1321807

Использовать su -с КОМАНДА - ИМЯ_ПОЛЬЗОВАТЕЛЯ

http://forum.oszone.net/thread-72834.html

hnsk 17-01-2010 16:19 1322677

хмм... тут наверно нужно более подробнее.

мой исполняемый файл имеет свои ключи и после
и после ввода su ругается на то что я не правльно его использовал и дает мне краткий хелп

по man выходит так что для того что бы новосозданный интерпритатор понимал все верно, необходимо su --command, но это к сожалению тоже ни кчем не привело.

ruslandh 17-01-2010 21:18 1322973

Используйте кавычки.

BuGfiX 18-01-2010 11:54 1323311

Или сделайте враппер для вашего скрипта с параметрами

hnsk 18-01-2010 19:09 1323657

ruslandh, rкавычки не катят. :-((
BuGfiX, хмм....
не поможете скрипт написать?! или дать адекватную ссылку. на все что натыкаюсь сейчас в поисковиках не совсем то , как мне каежтся

лучше конечно ссылочку)

BuGfiX 18-01-2010 19:28 1323675

Код:

#!/bin/sh
user=testuser
program=/usr/bin/program

su -m ${user} -c ${program}

Как-то так

hnsk 18-01-2010 19:57 1323701

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 наверно вы имели ввиду?!
в общем результат тот же((

hnsk 24-01-2010 16:54 1328612

проблему так и не рашил ((

ruslandh 24-01-2010 17:09 1328622

Расставьте правильно кавычки.


$ 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

hnsk 25-01-2010 22:01 1329778

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 1329808

а где равно?

hnsk 26-01-2010 20:17 1330639

[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 1330780

а на фига $
$ - это знак, приглашения, у вас оно выглядит. как mafik@debian:~/cstrike16/games$

hnsk 26-01-2010 23:54 1330862

Код:

#!/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 1330876

Пример:
Цитата:

#!/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}

hnsk 28-01-2010 21:50 1332834

Код:

#!/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

тип указан верно.

hnsk 29-01-2010 23:01 1333909

Код:

#!/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



Время: 13:35.

Время: 13:35.
© OSzone.net 2001-