#!/bin/sh#!/bin/sh: export USER=maronecho ------------------------------ >> /tmp/lm-startstop.logecho ------------------------------ >> /tmp/err-startstop.logdate >> /tmp/lm-startstop.logdate >> /tmp/err-startstop.logecho $1 >> /tmp/lm-startstop.logecho $USER >> /tmp/lm-startstop.log#export >>/tmp/export.txt#bash -c "echo $DBUS_SESSION_BUS_ADDRESS >> /tmp/lm-startstop.log"case "$1" in start) #příkazy při přechodu do batery mody echo vypínám služby >> /tmp/lm-startstop.log service bluetooth stop 2>> /tmp/err-startstop.log service ssh stop 2>> /tmp/err-startstop.log service avahi-daemon stop 2>> /tmp/err-startstop.log service winbind stop 2>> /tmp/err-startstop.log service cups stop 2>> /tmp/err-startstop.log service hotkey-setup stop 2>> /tmp/err-startstop.log service rsync stop 2>> /tmp/err-startstop.log service apport stop 2>> /tmp/err-startstop.log service jetty stop 2>> /tmp/err-startstop.log service virtualbox-ose stop 2>> /tmp/err-startstop.log service vboxdrv stop 2>> /tmp/err-startstop.log service apache2 stop 2>> /tmp/err-startstop.log #service mysql-ndb-mgm stop 2>> /tmp/err-startstop.log #service mysql-ndb stop 2>> /tmp/err-startstop.log service mysql stop 2>> /tmp/err-startstop.log echo zavírám aplikace >> /tmp/lm-startstop.log killall akregator 2>> /tmp/err-startstop.log# killall kmix 2>> /tmp/err-startstop.log #killall knetworkmanager killall klipper 2>> /tmp/err-startstop.log killall java 2>> /tmp/err-startstop.log ;; stop) #příkazy při ukončení batery mode echo zapínám služby >> /tmp/lm-startstop.log service bluetooth start 2>> /tmp/err-startstop.log service ssh start 2>> /tmp/err-startstop.log service avahi-daemon start 2>> /tmp/err-startstop.log service winbind start 2>> /tmp/err-startstop.log service cups start 2>> /tmp/err-startstop.log service hotkey-setup start 2>> /tmp/err-startstop.log service rsync start 2>> /tmp/err-startstop.log service apport start 2>> /tmp/err-startstop.log service jetty start 2>> /tmp/err-startstop.log service virtualbox-ose start 2>> /tmp/err-startstop.log service vboxdrv start 2>> /tmp/err-startstop.log service apache2 start 2>> /tmp/err-startstop.log #service mysql-ndb-mgm start 2>> /tmp/err-startstop.log #service mysql-ndb start 2>> /tmp/err-startstop.log service mysql start 2>> /tmp/err-startstop.log# echo spouštím aplikace >> /tmp/lm-startstop.log# bash -c "akregator --hide-mainwindow 2>> /tmp/err-startstop.log"# bash -c "kmix 2>> /tmp/err-startstop.log" #knetworkmanager# bash -c "klipper 2>> /tmp/err-startstop.log" ;;esacexit 0
pokud chces, aby se ten skript spoustel s pravy roota, tak to bohuzel nepujde zaridit pomoci suid. nejsnazsi reseni asi bude nastavit v /etc/sudoers, aby tento konkretni skript sel spoustet se sudo bez zadavani hesla.
%sudo ALL=NOPASSWD: /etc/laptop-mode/batt-start/startstop.sh
#!/bin/sh: export USER=maron
a je uzivatel (ten co to spousti) ve skupine sudo (ze to tak mas nastavene)? zkousel si to poustet z konzole (jak)? je ten skript spustitelny?
Ten USER Ti nefunguje asi proto, že ho máš v poznámce Citace#!/bin/sh: export USER=maronMožná jiná varianta: ten skript by měl fungovat s právy pro roota, pokud:- je spustitelný uživatelem (maron)- v sudoers je něco jako maron ALL=NOPASSWD: /home/maron/startstop.sh- spouštíš ho pomocí sudo /home/maron/startstop.sh (neměl by chtít heslo)- no a pokud samozřejmě funguje sám o sobě
Z konzole jsem to zkoušel jako "./cesta k souboru" nespustilo se to s právy roota, pak jsem to zkoušel sudo ./cesta a chtělo to heslo.
Nevím který uživatel to spouští a asi ani nezjistím, protože to spouští laptop-mode a v logu to nechá prázdný řádek.
id > /tmp/kdojsem
Citace: maron 07 Února 2009, 13:27:43Z konzole jsem to zkoušel jako "./cesta k souboru" nespustilo se to s právy roota, pak jsem to zkoušel sudo ./cesta a chtělo to heslo.cili jeste jednou a pomaleji... patris do skupiny "sudo"? Mas totiz nastaveno, aby to heslo nechtelo jen po clenech teto skupiny. spoustet se to ma samozrejme pomoci sudo a heslo (pokud patris do te skupiny) by to chtit nemelo. navic to zadavej s absolutni cestou ke skriptu (jak je to v /etc/sudoers).Citace: maron 07 Února 2009, 13:27:43Nevím který uživatel to spouští a asi ani nezjistím, protože to spouští laptop-mode a v logu to nechá prázdný řádek.neni nic snazsiho, nez prinutit laptop-mode spustit skript s prikazemKód: [Vybrat]id > /tmp/kdojsema pak si to precist.
akregator(13062): KUniqueApplication: Cannot find the D-Bus session server akregator(13038): KUniqueApplication: Pipe closed unexpectedly. <unknown program name>(13070)/: KUniqueApplication: Cannot find the D-Bus session server <unknown program name>(13068)/: KUniqueApplication: Pipe closed unexpectedly.
Laptop-mode to vrátí toto: uid=0(root) gid=0(root)A přesto když tam chci spustit akregator tak to hlásí chyby. Kód: [Vybrat]akregator(13062): KUniqueApplication: Cannot find the D-Bus session server akregator(13038): KUniqueApplication: Pipe closed unexpectedly. <unknown program name>(13070)/: KUniqueApplication: Cannot find the D-Bus session server <unknown program name>(13068)/: KUniqueApplication: Pipe closed unexpectedly.
Citace: maron 08 Února 2009, 11:20:35Laptop-mode to vrátí toto: uid=0(root) gid=0(root)A přesto když tam chci spustit akregator tak to hlásí chyby. Kód: [Vybrat]akregator(13062): KUniqueApplication: Cannot find the D-Bus session server akregator(13038): KUniqueApplication: Pipe closed unexpectedly. <unknown program name>(13070)/: KUniqueApplication: Cannot find the D-Bus session server <unknown program name>(13068)/: KUniqueApplication: Pipe closed unexpectedly. hm, takze se to pousti s pravy roota uz ted, na laborovani se sudo muzes zapomenout. rekl bych, ze ta chyba s pravy vubec nesouvisi a ze k ni dojde vzdycky, jen o tom nevis (to pokud ten akregator nakonec bezi).. jsi si jisty, ze se ten akregator nespusti? treba si jen stezuje, ale nabehne.. a co ten d-bus, ten bezi?
sudo -iprikaz 1prikaz 2...