Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]  (Přečteno 8544 krát)

Zipule

  • Návštěvník
  • Příspěvků: 80
Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« kdy: 11 Ledna 2009, 21:23:14 »
Zdravím, potřeboval bych prosím poradit s tím, jak jednoduše vytvořit spouštěč, který by mi zapínal a vypínal wifi.
Chtěl jsem použít příkaz
Kód: [Vybrat]
zipule@Holy:~$ sudo echo 1 > /sys/devices/platform/asus-laptop/wlan
bash: /sys/devices/platform/asus-laptop/wlan: Permission denied
zipule@Holy:~$
ale bohužel u tohodle zlobí oprávnění a abych zapsal do toho souboru wlan místo nuly jedničku musím se v konzoli přihlásit příkazem su jako root. Šlo by to nějak jednoduše ošetřit, abych jen kliknul na tlačítko a wifi se zapla klikl na druhý a wifi ze vypla?
« Poslední změna: 12 Ledna 2009, 11:08:01 od Zipule »
Asus X51H, Ubuntu 9.10

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #1 kdy: 11 Ledna 2009, 21:43:24 »
Kód: [Vybrat]
sudo chown root skript.sh
sudo chmod 4755 skript.sh
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

Tomáš Pikálek

  • Závislák
  • ***
  • Příspěvků: 1859
    • Tomáš Pikálek
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #2 kdy: 11 Ledna 2009, 22:16:37 »
To je jasné, proč to nejde, sudo funguje úplně jinak...
http://wiki.ubuntu.cz/Root%20sudo#Nev.2BAP0-hodysudo

Zipule

  • Návštěvník
  • Příspěvků: 80
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #3 kdy: 11 Ledna 2009, 22:52:38 »
Tak se mi podařilo upravit pomocí chmod přístup k souboru wlan, ale stále mi nejde udělat spouštěč,.... pokud do konzole napíšu  echo 1 > /sys/devices/platform/asus-laptop/wlan wifi se mi zapne, ale pokud to hodím na tlačítko tak se hodnota v souboru wlan nepřepíše...Jestli někdo ví jak na to, zkuste mi to prosím napsat nějak polopatě. Používám Ubuntu teprve chvilku :)
Asus X51H, Ubuntu 9.10

nettezzaumana

  • Host

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #5 kdy: 11 Ledna 2009, 23:59:52 »
zipuleee, tohle uloz do souboru:
Kód: [Vybrat]
sudo echo 1 > /sys/devices/platform/asus-laptop/wlana tomu soubor nadel (jako jezisek) ty prava a pak si na nej udelej odkaz na plochu nebo kamkoliv. Uz se snad chapem.

#edit: Pojnta je, ze ten soubor bude vlastnit root a chmodem reknes, ze ikdyz ho spoustis jako zipule, pri spusteni se to spusti pod tim uzivatelem, kterej je vlastnikem souboru (root).
« Poslední změna: 12 Ledna 2009, 00:03:54 od starenka »
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

nettezzaumana

  • Host
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #6 kdy: 12 Ledna 2009, 01:08:03 »
@starenka :: to nebude imho fungovat jak ma .. set{uid,gid} nefunguje timto zpusobem ..
Citace
# echo '/sbin/fdisk $@' >/tmp/xx
# chmod +x /tmp/xx
# chmod +s /tmp/xx
# ls -la /tmp/xx
-rwsr-sr-x 1 root root 15 2009-01-12 00:57 /tmp/xx
# sudo -u nettezzaumana /tmp/xx -l
# chmod -s /tmp/xx
# ls -la /tmp/xx
-rwxr-xr-x 1 root root 15 2009-01-12 00:57 /tmp/xx
# chmod +s `which fdisk`
# sudo -u nettezzaumana /tmp/xx -l

Disk /dev/sda: 120.0 GB, 120034123776 bytes
255 heads, 63 sectors/track, 14593 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x0005373f

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1               1         797     6401871    7  HPFS/NTFS
/dev/sda2   *         798         810      104422+  83  Linux
/dev/sda3             811         944     1076355   82  Linux swap / Solaris
/dev/sda4             945       14593   109635592+   f  W95 Ext'd (LBA)
/dev/sda5             945        2984    16386268+   7  HPFS/NTFS
/dev/sda6            2985        4068     8707198+  83  Linux
/dev/sda7            4069        4515     3590496   83  Linux
/dev/sda8            4516       14593    80951503+  83  Linux
#

@Zipule :: ja osobne vidim tuto jedinou rozumnou moznost ::

Citace: wlan-on.c
#include <stdio.h>

main() {
FILE *fw;

fw = fopen("/sys/devices/platform/asus-laptop/wlan", "w");
fprintf(fw, "1\n");
fclose(fw);
}

Citace: wlan-off.c
#include <stdio.h>

main() {
FILE *fw;

fw = fopen("/sys/devices/platform/asus-laptop/wlan", "w");
fprintf(fw, "0\n");
fclose(fw);
}


zkompilujes pomoci `gcc -o wlan-on wlan-on.c`a `gcc -o wlan-off wlan-off.c` .. umistis tyto dva soubory nekam do cesty a das jako vlastnika roota a priradis jim jak rikal vyse starenka setuid ..

takze napriklad pokud mas soubory v /tmp jako wlan-{on,off}.c a v ceste mas adresar ~/bin, tak udelas ::

# cd ~/bin
# gcc -o wlan-on /tmp/wlan-on.c
# gcc -o wlan-off /tmp/wlan-off.c
# sudo chown root wlan-*
# sudo chmod +s wlan-*

a dale s nima uz nudes zachazet dle libosti (aka zastupce na plochu apod ..)

regards
« Poslední změna: 12 Ledna 2009, 02:29:02 od nettezzaumana »

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #7 kdy: 12 Ledna 2009, 03:33:53 »
argh! myslel jsem, ze jsem na to konecne prisel, ale bylo to tim, ze si to sudo to heslo pamatuje par minut.

zipuli se timto omlouvam
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #8 kdy: 12 Ledna 2009, 08:08:39 »
A co uživatele a soubor přidat do /etc/sudoers (přes visudo) s oprávněním přístupu NOPASSWD?
Nebo jsem nepochopil, o co se tu snažíte?
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #9 kdy: 12 Ledna 2009, 09:28:05 »
A co treba v /etc/sudoers povolit uzivateli bez zadavani hesla (jenom) tento konkretni prikaz?

ntz: Ja vim, sudo, uplne se mi navalilo.
« Poslední změna: 12 Ledna 2009, 09:30:41 od kkaarreell »

nettezzaumana

  • Host
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #10 kdy: 12 Ledna 2009, 10:12:30 »
ale dyk jsem napsal (u sebe odzkouseno) postup .. co je tak tezkeho na tom zkompilovat si dve male binarky wlan-on a wlan-off a tem priradit +s (setuid) ???

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #11 kdy: 12 Ledna 2009, 10:38:05 »
nettezzaumana: jistě, ale proč to dělat složitě? :)
kkaarreell: není to to samé, co jsem navrhoval? :D
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

nettezzaumana

  • Host
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #12 kdy: 12 Ledna 2009, 11:01:11 »
nettezzaumana: jistě, ale proč to dělat složitě? :)
kkaarreell: není to to samé, co jsem navrhoval? :D
.. ne. muj postup je zdaleka nejjednodussi a rekl bych, ze i v ramci moznosti nejbezpecnejsi ..

proste dve binarky co zapisuji na jedno misto (jinam nemuzou) a jde s nima krasne manipulovat .. jde si z nich udelat zastupce na plochu, namapovat je na klavesovou zkratku, neni potreb anic nastavovat v systemu apod ..

Zipule

  • Návštěvník
  • Příspěvků: 80
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #13 kdy: 12 Ledna 2009, 11:07:32 »
Sice tomu moc nerozumím, ale taky mi přijde jednodušší ten od Ntz, každopádně jsem to podle toho udělal a už to šlape děkuju mockrát :)
Asus X51H, Ubuntu 9.10

nettezzaumana

  • Host
Re: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« Odpověď #14 kdy: 12 Ledna 2009, 11:10:01 »
@Zipule ::

Citace
cat << 'EOF' >/tmp/wlan-on.c
#include <stdio.h>

main() {
FILE *fw;

fw = fopen("/sys/devices/platform/asus-laptop/wlan", "w");
fprintf(fw, "1\n");
fclose(fw);
}

EOF
cat << 'EOF' >/tmp/wlan-off.c
#include <stdio.h>

main() {
FILE *fw;

fw = fopen("/sys/devices/platform/asus-laptop/wlan", "w");
fprintf(fw, "0\n");
fclose(fw);
}

EOF
gcc -o /tmp/wlan-on /tmp/wlan-on.c
gcc -o /tmp/wlan-off /tmp/wlan-off.c

chmod +s /tmp/wlan-{on,off}

.. tohle cele staci jen "cut and paste" jako root (sudo -i) do terminalu a v /tmp/ se ti vytvori wlan-on a wlan-off .. staci jak rikam jen oznacit mysi a zmacknout prostredni mysitko a je to hotovo ;)
« Poslední změna: 12 Ledna 2009, 11:11:41 od nettezzaumana »

Zipule

  • Návštěvník
  • Příspěvků: 80
Re: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« Odpověď #15 kdy: 12 Ledna 2009, 11:14:42 »
Děkuju moc, někam si to uschovám pro případný reinstal :), nakonec se mi to povedlo podle toho postupu co jsi psal výš...
Asus X51H, Ubuntu 9.10

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« Odpověď #16 kdy: 12 Ledna 2009, 11:29:57 »
Netz: pokud vytvořím script, do kterého bude mít právo zápisu jen root a root bude i jeho vlastníkem, nastavím mu možnost být spuštěn přes sudo bez nutnosti zadávání hesla a onen script bude zapisovat právě jen do jednoho místa, řekni mi, co je na tom méně bezpečné, než je tvé řešení? Mimochodem, jednodušší je vytvářet dva soubory, kompilovat je, než vytvořit jediný script a upravit /etc/sudoers?

Zipule: super :)
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

nettezzaumana

  • Host
Re: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« Odpověď #17 kdy: 12 Ledna 2009, 11:44:57 »
Netz: pokud vytvořím script, do kterého bude mít právo zápisu jen root a root bude i jeho vlastníkem, nastavím mu možnost být spuštěn přes sudo bez nutnosti zadávání hesla a onen script bude zapisovat právě jen do jednoho místa, řekni mi, co je na tom méně bezpečné, než je tvé řešení? Mimochodem, jednodušší je vytvářet dva soubory, kompilovat je, než vytvořit jediný script a upravit /etc/sudoers?

Zipule: super :)
.. bude to fungovat taky, ale je potreba kvuli tomu modifikovat /etc/sudoers .. navic me reseni umim udelat v konecnem vysledku (muj posledni post) tak jednoduse, ze staci jen pohyb ruky (oznaceni textu) a zmacknuti prostredniho mysitka a je vse hotovo ;)

Petr Merlin Vaněček

  • Moderátor
  • Závislák
  • ***
  • Příspěvků: 5057
    • Lomítkáři
Re: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« Odpověď #18 kdy: 12 Ledna 2009, 12:03:46 »
Netz: pokud vytvořím script, do kterého bude mít právo zápisu jen root a root bude i jeho vlastníkem, nastavím mu možnost být spuštěn přes sudo bez nutnosti zadávání hesla a onen script bude zapisovat právě jen do jednoho místa, řekni mi, co je na tom méně bezpečné, než je tvé řešení? Mimochodem, jednodušší je vytvářet dva soubory, kompilovat je, než vytvořit jediný script a upravit /etc/sudoers?

Zipule: super :)
.. bude to fungovat taky, ale je potreba kvuli tomu modifikovat /etc/sudoers .. navic me reseni umim udelat v konecnem vysledku (muj posledni post) tak jednoduse, ze staci jen pohyb ruky (oznaceni textu) a zmacknuti prostredniho mysitka a je vse hotovo ;)

No to já umím taky :D Ukaž mi něco, co se nedá do scriptu přepsat :D :D :D

Modifikovat /etc/sudoers můžeš jako jakýkoliv jiný běžný soubor - visudo se používá proto, aby ti zabránilo uložit nesmysly a tím se odříznout od systému
Stiskni CTRL + W ...
80% mozku tvoří kapalina ... u některých brzdová

kkaarreell

  • Stálý člen
  • **
  • Příspěvků: 1072
Re: Spouštěč na zapnutí/vypnutí wifi
« Odpověď #19 kdy: 12 Ledna 2009, 13:23:53 »
kkaarreell: není to to samé, co jsem navrhoval? :D
no, ja to pochopil jako umozneni uzivateli pouzivat sudo bez hesla pro jakykoliv prikaz, coz je proste bezpecnostni dira jak vrata. ale asi jsem te pochopil spatne, sorry
« Poslední změna: 12 Ledna 2009, 13:26:59 od kkaarreell »

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« Odpověď #20 kdy: 12 Ledna 2009, 13:33:18 »
Kdyz jsem u ty osvety, muze mi nekdo teda vysvetlit, k cemu je to zatroleny setgid a setuid? Proc to nefunguje, jak predpokladam? (viz muj post nekde na zacatku). Dekuju, sluzebnicek.
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

nettezzaumana

  • Host
Re: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« Odpověď #21 kdy: 12 Ledna 2009, 13:39:09 »
Kdyz jsem u ty osvety, muze mi nekdo teda vysvetlit, k cemu je to zatroleny setgid a setuid? Proc to nefunguje, jak predpokladam? (viz muj post nekde na zacatku). Dekuju, sluzebnicek.
http://en.wikipedia.org/wiki/Setuid .. prtecti si babizno lenosna zejmena sekci '^setuid on executables' a pochopis, jak se chova setuid flag k "binary executable" a jak ke zbytku sveta ;)

starenka

  • Stálý člen
  • **
  • Příspěvků: 1276
  • Karma: plynová [zapalovač] [hasičák]
    • /home/starenka
Re: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« Odpověď #22 kdy: 12 Ledna 2009, 14:56:34 »
Hrejiva slova, priteli. Uz chapu. Popravde ale nechapu v cem je rozdil ohledne bezpecnosti binarka vs skript. Pokud jsi magor, je ti fuk, jestli rozhazujes prava tam ci onam. Takze jediny reseni se skriptem, je vyse zmineny sudoers, hm?
mojenka | blozinek v2 | starej blozinek | krotim hady za penize | UJ! Kalužátor

Debian testing vrní v Thinkpadu X200/bedně/EEE 900a, MasoX Tiger v lampe

nettezzaumana

  • Host
Re: Spouštěč na zapnutí/vypnutí wifi [vyřešeno]
« Odpověď #23 kdy: 12 Ledna 2009, 15:18:07 »
Hrejiva slova, priteli. Uz chapu. Popravde ale nechapu v cem je rozdil ohledne bezpecnosti binarka vs skript. Pokud jsi magor, je ti fuk, jestli rozhazujes prava tam ci onam. Takze jediny reseni se skriptem, je vyse zmineny sudoers, hm?

babizno? nechapes snad, ze pokud soubor /tmp/xx obsahuje '/bin/sleep 100' a ty ho spustis aka `/tmp/xx`, tak se ti vyvola subshell ?? ::
Citace
dpecka   24703  0.0  0.1   4996  2324 pts/11   Ss   13:43   0:00  \_ /bin/bash
dpecka   25547  0.0  0.0   3996  1328 pts/11   S+   15:03   0:00      \_ /bin/sh /tmp/xx
dpecka   25548  0.0  0.0   2888   596 pts/11   S+   15:03   0:00          \_ /bin/sleep 100

.. a kvuli tomu nelze prenest setuid flag na dalsi proces jim vyvolany ? .. ps. v prikladu vyse nemam vubec setuid .. jen ti ukazuju, co to dela ..

regards ;)

ps. ja jsem desnej maaaagoooor
« Poslední změna: 12 Ledna 2009, 15:21:25 od nettezzaumana »

 

Provoz zaštiťuje spolek OpenAlt.