Титла: Shell-script- за минаване от един юзър в друг Публикувано от: Nik123 в Jun 28, 2006, 15:45 Здравейте! Имам инсталирани 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 Титла: Shell-script- за минаване от един юзър в друг Публикувано от: sdr в Jun 28, 2006, 16:03 man su
su -c skript_za_startirane Ако искаш да попрескочиш паролките можеш да видиш нещо аналогично с kdesu или нещо подобно Титла: Shell-script- за минаване от един юзър в друг Публикувано от: Nik123 в Jun 28, 2006, 16:28 Изчел съм му man pages на su и въпреки това не намерих нещо по моя проблем, предполагам, че не ми стигат знанията и практиката. kdesu не ми върши никаква работа, понеже не ползвам kde, а gnome.. A su -c скрипта_за стартиране не ми върши работа, понеже искам да избегна писането в терминала, а тук трябва пак да прибягвам до терминал, ако правилно съм те разбрал. Благодаря все пак.
Титла: Shell-script- за минаване от един юзър в друг Публикувано от: kip в Jun 28, 2006, 16:37 sudo не ти ли върши работа.
http://www.linux-bg.org/cgi-bin....0821718 Титла: Shell-script- за минаване от един юзър в друг Публикувано от: Nik123 в 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 и пак не стана. Някакви идеи? Титла: Shell-script- за минаване от един юзър в друг Публикувано от: Nik123 в 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мдк, но предполагам, ще работи и на другите линукс-дистрибуции, като се преправи според това къде се намират необходимите изпълними файлове. |