Автор Тема: Shell-script- за минаване от един юзър в друг  (Прочетена 3570 пъти)

Nik123

  • Напреднали
  • *****
  • Публикации: 3128
  • Distribution: Mageia, Q4OS
    • Профил
Здравейте!  Имам инсталирани wine в основния юзър- nik, и cedega в юзъра clamav. По принцип за всичко си ползвам юзъра nik, но с игрите имам малък проблем- играя една игра, която не върви под wine, а тръгва под cedega. Инсталирал съм я в cedega-та в юзъра clamav, и сега, като искам да я играя, през терминал su clamav, password, cedega и като ми зареди cedega, си пускам играта оттам.
Въпросът ми е, не могат ли всичките тези стъпки да се обединят в шел-скрипт, който, като си извадя на десктопа, и го направя изпълним, с едно кликване на мишката, да влиза в юзъра clamav, и да ми стартира cedega? Направил съм си подобни скриптове за стартиране на игрите, но са си в и за юзъра nik- например за стартиране на Call of Duty Myltiplayer- codmp.sh:
$!/bin/bash
$ codmp.sh
cd games/cod
wine CoDMP.exe

Идеята ми е за нещо подобно, но със su в юзъра clamav?

OS Mandriva 2006, GNOME 2.10, kernel 2.6.12-22mdk
Активен

sdr

  • Напреднали
  • *****
  • Публикации: 655
    • Профил
Shell-script- за минаване от един юзър в друг
« Отговор #1 -: Jun 28, 2006, 16:03 »
man su

su -c skript_za_startirane

Ако искаш да попрескочиш паролките можеш да видиш нещо аналогично с kdesu или нещо подобно



Активен

Nik123

  • Напреднали
  • *****
  • Публикации: 3128
  • Distribution: Mageia, Q4OS
    • Профил
Shell-script- за минаване от един юзър в друг
« Отговор #2 -: Jun 28, 2006, 16:28 »
Изчел съм му man pages на su и въпреки това не намерих нещо по моя проблем, предполагам, че не ми стигат знанията и практиката. kdesu не ми върши никаква работа, понеже не ползвам kde, а gnome.. A su -c  скрипта_за стартиране не ми върши работа, понеже искам да избегна писането в терминала, а тук трябва пак да прибягвам до терминал,  ако правилно съм те разбрал. Благодаря все пак.
Активен

kip

  • Напреднали
  • *****
  • Публикации: 162
  • Distribution: Debian, FreeBSD, Arch Linux
  • Window Manager: Gnome,LXDE,XFCE
    • Профил
Shell-script- за минаване от един юзър в друг
« Отговор #3 -: Jun 28, 2006, 16:37 »
sudo  не ти ли върши работа.
http://www.linux-bg.org/cgi-bin....0821718
Активен

Nik123

  • Напреднали
  • *****
  • Публикации: 3128
  • Distribution: Mageia, Q4OS
    • Профил
Shell-script- за минаване от един юзър в друг
« Отговор #4 -: Jun 28, 2006, 17:34 »
Мисля, че това ще свърши работа, благодаря, сега ще го пробвам.

Edit: И така не става. Ето /etc/sudoers:
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification
 User_Alias FULLTIMERS = nik

# Cmnd alias specification
 Cmnd_Alias    su = /bin/su
# Defaults specification

# Runas alias specification

# User privilege specification
root   ALL=(ALL) ALL
 FULLTIMERS ALL = NOPASSWD: su
# Uncomment to allow people in group wheel to run all commands
# %wheel   ALL=(ALL)   ALL

# Same thing without a password
# %wheel   ALL=(ALL)   NOPASSWD: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
ALL ALL=NOPASSWD:/bin/mount -o loop -t iso9660 /home/*/.kisotmp/* ,/bin/umount /home/*/.kisotmp/*


ето и резултатите:
[nik@localhost ~]$ sudo clamav
>>> sudoers file: syntax error, line 10 <<<
>>> sudoers file: syntax error, line 20 <<<
sudo: parse error in /etc/sudoers near line 10
[nik@localhost ~]$ sudo su clamav
>>> sudoers file: syntax error, line 10 <<<
>>> sudoers file: syntax error, line 20 <<<
sudo: parse error in /etc/sudoers near line 10
[nik@localhost ~]$
Предполагам, че съм объркал нещо.
Значи, проблема се свежда до следното: преминаване през терминал от юзър nik в юзър clamav без парола

Edit: Или с парола, но тя да си е в скрипта, да не се налага да я пиша ръчно. Пробвах така в скрипта:
su -l clamav
echo password

и пак не стана. Някакви идеи?



Активен

Nik123

  • Напреднали
  • *****
  • Публикации: 3128
  • Distribution: Mageia, Q4OS
    • Профил
Shell-script- за минаване от един юзър в друг
« Отговор #5 -: Jul 03, 2006, 20:22 »
Оправих се, 10х to PhobosK, ето и разрешението на "случая":
Трябват два скрипта и редактиране на /etc/sudoers:
sudoers трябва да се редактира така:
# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification
User_Alias OTHERS = nik

# Cmnd alias specification
Cmnd_Alias SU = /bin/su
# Defaults specification

# Runas alias specification

# User privilege specification
root   ALL=(ALL) ALL
OTHERS ALL = NOPASSWD: SU
nik    ALL = /usr/bin/su -l clamav -c start_*
# Uncomment to allow people in group wheel to run all commands
# %wheel   ALL=(ALL)   ALL

# Same thing without a password
# %wheel   ALL=(ALL)   NOPASSWD: ALL

# Samples
# %users  ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users  localhost=/sbin/shutdown -h now
ALL ALL=NOPASSWD:/bin/mount -o loop -t iso9660 /home/*/.kisotmp/* ,/bin/umount /home/*/.kisotmp/*
редактиран по този начин, sudoers дава възможност чрез sudo на юзър nik да се логва в юзър clamav без парола чрез команда sudo su clamav и да изпълнява команди и стартира приложения вече като юзър clamav, започващи със start_ (например start_cedega.sh).
Трябват и два скрипта- един за логване в юзър clamav, чрез който се стартира и вторият скрипт, за стартирането на приложение като  юзър clamav, в случая се стартира седега.
Скрипт 1 - нарекъл съм го crusader.sh, понеже играта, която играя под седега, се казва crusader:
#!/bin/bash
DIR=/home/clamav
sudo /bin/su -l clamav -c start_cedega.sh
Този скрипт се слага в папка /home/nik/Desktop, и се прави изпълним- за да може да се стартира и с кликване на мишката от потребителя nik. Този скрипт логва чрез bash юзър nik в юзър clamav, и вече като clamav стартира следващия- наречен start_cedega.sh , понеже с него се стартира приложението cedega. Ето и неговото съдържание- start_cedega.sh:
#!/bin/bash
/usr/bin/cedega

Скрипта start_cedega.sh се слага в /usr/bin за да е достъпен за изпълнение от всички потребители, и също се прави изпълним. След като се направи всичко гореизложено, със стартиране на скрипта crusader.sh се стартира приложението cedega от името на юзъра clamav. Гореописаната система работи на мандрива 2006, гноме 2.10, ядро 2.6.12-22мдк, но предполагам, ще работи и на другите линукс-дистрибуции, като се преправи според това къде се намират необходимите изпълними файлове.



Активен

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
rc.d shell script
Настройка на програми
VlasA 3 2853 Последна публикация Aug 29, 2004, 12:05
от VlasA
Bash shell script - многозадачност
Общ форум
Astor 10 5563 Последна публикация May 29, 2012, 22:33
от Astor
shell script с параметри
Общ форум
k0tka 1 2881 Последна публикация May 25, 2012, 20:23
от k0tka
shell script
Общ форум
villimon 29 10599 Последна публикация Nov 01, 2013, 21:43
от neter
ПРЕМЕСТЕНО: shell script
Общ форум
neter 0 1893 Последна публикация Oct 18, 2013, 22:59
от neter