spustiť skript ako bežny user

Sekcia: Aplikácie & Desktop 25.11.2006 | 13:30
marian   Návštevník
prosim o radu,ako spustim skript,pomocou ktoreho sa pripajam na internet(stdsl.sh start),ako obyčajny uživatel.
    • Re: spustiť skript ako bežny user 24.11.2006 | 18:42
      WlaSaTy   Návštevník
      moznosti su dve.: 1) dat uzivatelovi prava na zmenu sietovych nastaveni 2) nastavit suid flag na roota pre dany skript a jedna bonusova moznost, neviem ci bude vyhovovat (koli vikendovemu internetu a internetu vecer, v noci): startovat to rovno pri boote systemu.
      • Re: Re: spustiť skript ako bežny user 24.11.2006 | 18:53
        marian   Návštevník
        Vďaka,pekna odpoved,len keby si mi nedaval tie možnosti a poprostu polopatisticky ma nasmeroval k tomu ako dam uzivatelovi prava na zmenu sietovych nastaveni.
        • Re: Re: Re: spustiť skript ako bežny user 24.11.2006 | 20:36
          WlaSaTy   Návštevník
          alebo pouzi sudo. konfigurak je v /etc/sudoers, bacha aby si nedal priliz velke privilehia kazdemu, niekedy to moze vadit.
      • Re: Re: spustiĹĽ skript ako beĹžny user 24.11.2006 | 20:26
        stando   Návštevník
        suid bit pre skript nejde nastavit. Musi sa to riesit cez skompilovany program.
      • Re: Re: spustiĹĽ skript ako beĹžny user 24.11.2006 | 20:43
        stando   Návštevník
        Ako som napisal musis to riesit cez skompilovany program. Suid bit pre skript sa neda nastavit, lebo v skutocnosti sa spusta program bash(v tomto pripade) a ten ako vstup pouzije tvoj skript. Riesit to cez noveho user-a je trochu neprakticke(to je ako ist s kradivom na komara) Najdednoduchsie to mas takto(teda, nic lepsie nepoznam :) ): vytvor si subor "stdsl_on.c" #include #include #include int main() { setuid(0); system("/usr/bin/stdsl.sh start"); return 0; } To v system() sa bude spustat, mala by tam byt cesta k tvojmu stdsl.sh (plus start) Potom to skompiluj: gcc -o stdsl_on stdsl_on.c Vytvori ti program stdsl_on. Tento program nespravy nic, len spusti to co je v system(). teraz sa prihlas na root-a a zmen vlastnika na root: su chown root:root stdsl_on a uz len pridat suid bit - zaruci, ze sa subor bude spustat pod efektivnymi pravami vlasnika - to je root (mozes si to pozret cez ls) chmod u+s stdsl_on Teraz to moze spustit ktokolvek a bude sa to tvarit akoze to spustil root. PS: S tym iternetom cez vikend som to nepochopil. Ale ak chces docielit nejake casovaine pozri si "cron". Dufam, ze je to jasne. :) Prajem hodne zdaru.
        • Re: Re: Re: spustiĚĽ skript ako beĚŞny user 24.11.2006 | 20:48
          stando   Návštevník
          sakra, < a > pochopilo ako metaznak pre html tak to nevidiet ... ma tam byt: #include <sys/types.h> #include <unistd.h> #include <stdlib.h> :)
          • Re: Re: Re: Re: spustiÄšÄË? skript ako beĚŠ24.11.2006 | 20:55
            stando   Návštevník
            a teraz sa hambim do tretice, ze som si nespomenul na sudo. :) toto je tvoje riesenie: http://www.courtesan.com/pipermail/sudo-users/2002-August/001174.html
    • Re: spustiť skript ako bežny user 24.11.2006 | 19:57
      Juraj   Návštevník
      Ja by som isiel na to asi touto cestou: 1. Vytvoril by som uzivatela a skupinu Internet. 2. Skriptu by som pridelil prava uzivatela a skupiny Internet 3. Vsetkych uzivatelov, ktori sa maju pripojit, by som zahrnul do skupiny Internet ;)
      • Re: Re: spustiť skript ako bežny user 24.11.2006 | 20:03
        Juraj   Návštevník
        Ak by to neslapalo, tak tomu skriptu pridaj usera root a skupinu Internet....
        • Re: Re: Re: spustiť skript ako bežny user 24.11.2006 | 20:27
          marian   Návštevník
          V tych pravach to asi nebude,tam som skušal už asi všetko(vo vlastnostiach skriptu su opravnenia povolene všetkym),no aj napriek tomu mi to pri spustení vyhadzuje:bash: stdsl.sh: command not found
          • Re: Re: Re: Re: spustiť skript ako bežny user 24.11.2006 | 20:34
            Juraj   Návštevník
            Mas ten skript v /usr/bin resp. /usr/local/bin ?
            • Re: Re: Re: Re: Re: spustiť skript ako bežny user 24.11.2006 | 20:36
              marian   Návštevník
              Ten skript je v /usr/sbin
              • Re: Re: Re: Re: Re: Re: spustiť skript ako bežny u 24.11.2006 | 20:42
                Juraj   Návštevník
                hmm, ak nie je problem v ceste, tak to asi nepomoze, ale skus ho premiestnit do /usr/bin ... Ta hlaska,, ze neexistuje, mi nejako nesedi....
                • Re: Re: Re: Re: Re: Re: Re: spustiť skript ako bež 24.11.2006 | 20:54
                  marian   Návštevník
                  juraj to premiestnenie do /usr/bin nepomohlo(už to nejde spustiť ani ako root),ale aj tak ď,teraz skusim ten standov postup(aj ked neviem ci to zvladnem)
                  • Re: Re: Re: Re: Re: Re: Re: Re: spustiť skript ako 24.11.2006 | 21:15
                    marian   Návštevník
                    chalani teraz som už uplne v riti,čakal som 1(slovom jedno) jednoduche riešenie a vy mi ich ponukate asi 4,a zatial čo tie jednoduchšie akosi nezaberajú,tak na tie (akože) zložitejšie akosi nestačím,nenašlo by sa ešte niečo čo by zabralo a zaroven čo by som zvladol aj ja
                    • Re: Re: Re: Re: Re: Re: Re: Re: Re: spustiť skript 24.11.2006 | 21:23
                      WlaSaTy   Návštevník
                      skus si dat do /etc/sudoers riadok: %users localhost=/usr/local/bin/stdsl.sh a ten skript daj do /usr/local/bin/stdsl.sh, samozrejmostou je aj aby mal execute flag. potom ho spustis jednoducho: sudo /usr/local/bin/stdsl.sh na vyzvu odpovies vlastnym heslom.
                      • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: spustiť sk 24.11.2006 | 21:38
                        marian   Návštevník
                        ešte mi povedz čo je to execute flag
                        • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: spusti 24.11.2006 | 21:52
                          Juraj   Návštevník
                          Este uved distro, aby sme vylucili, co ktore prepisuje ; Ak je to Mandriva alebo SUSE, s tym ti neporadim...
                          • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: sp 24.11.2006 | 21:57
                            marian   Návštevník
                            mam mandrivu 2006.chcel by som dosiahnuť to,aby som sa tak ako pod rotom mohol pripojiť a odpojiť na jedno kliknutie na vytvoreny odkaz.
                        • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: spusti 24.11.2006 | 21:58
                          WmaSaTy   Návštevník
                          chmod +rx /usr/local/bin/stdsl.sh man chmod niekedy si myslim ze zive odchovava ludi ktory potom nemaju preco citat manualy. je to tak?
                          • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: sp 24.11.2006 | 22:22
                            marian   Návštevník
                            juj chlapi,ja zas na to zive moc nechodim a fakt je ,že manualy velmi necitam,ale tie prava by tam praveže mali byť ok:[marian@localhost bin]$ ls -l stdsl.sh -rwxrwxrwx 1 marian users 370 čec 22 22:19 stdsl.sh*.tak naozaj neviem čo s tym.skušal som tu standovu kompilaciu,ale zatial mi to vyhadzuje len nejake chyby.
                            • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 24.11.2006 | 23:18
                              marian   Návštevník
                              standova kompilacia to nevyriešila,vytvoreny spustitelny subor stdsl_on sa sprava rovnako ako stdsl.sh start.
                              • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 24.11.2006 | 23:33
                                marian   Návštevník
                                [marian@localhost ~]$ ./stdsl_on /usr/local/bin/stdsl.sh: line 6: modprobe: command not found /usr/local/bin/stdsl.sh: line 7: modprobe: command not found /usr/local/bin/stdsl.sh: line 8: modprobe: command not found /usr/local/bin/stdsl.sh: line 9: br2684ctl: command not found /usr/local/bin/stdsl.sh: line 10: ifconfig: command not found /usr/local/bin/stdsl.sh: line 11: adsl-start: command not found To iste vyhadzuje aj pri "stdsl.sh start".
                                • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 24.11.2006 | 23:59
                                  stando   Návštevník
                                  uff..."command not found". to znamena, ze nenaslo ten prikaz. Problem je v tom, ktore adresare sa prehliadaju. Skus sa prihlasit na root-a a napis "echo $PATH" potom sa prihlas na "seba" a napis to iste. Uvidis presny rozdiel. Aby ti to islo musis editovat stdsl.sh. Najskor si ho odzalohuj. Potom ku vsetkym prikazom dopis plnu cestu. Tu zistis ked napisis napriklad "which modprobe". To stdsl.sh je obycajny zoznam prikazov. Takze zmenis naprikaz "modprobe" za "/sbin/modprobe", alebo co ti vypise "which modprobe". Cestu dopl ku vsetkym prikazom, nie len k modprobe, ale aj br2684ctl, ifconfig, adsl-start.
                              • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 24.11.2006 | 23:49
                                WlaSaTy   Návštevník
                                ak si nakonfiguroval sudoers a uvedeny prikaz spustal cez sudo, tak ti to vypisalo chybu. skus ju odfotit mobilom, vytlacit, odfaxovat. alebo pouzi copy and paste.
                                • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 25.11.2006 | 00:04
                                  Juraj   Návštevník
                                  To je poj***** Mandriva, ziadne sudo mu nepomoze. Skor by som odporucil forum Mandrivy, ale neviem, kde sa momentalne nachadza....
                                  • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 25.11.2006 | 13:02
                                    marian   Návštevník
                                    Dobry den,vdaka za ochotu vyriešit moj problem,k tomu sudo-tento prikaz je pre mna uplna neznama(musim si to pozriet)-po nakonfigurovani /etc/sudoers-posledny riadok-#%users localhost=/usr/local/bin/stdsl.sh je takato odozva(aj u roota,aj u uživatela):[root@localhost ~]# sudo /usr/local/bin/stdsl.sh >>> sudoers file: syntax error, line 29
                                    • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 25.11.2006 | 13:14
                                      marian   Návštevník
                                      este raz ta odozva na sudo:[root@localhost ~]# sudo /usr/local/bin/stdsl.sh >>> sudoers file: syntax error, line 29
                                      • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 25.11.2006 | 13:18
                                        marian   Návštevník
                                        tak do tretice:[root@localhost ~]# sudo /usr/local/bin/stdsl.sh >>> sudoers file: syntax error, line 29
                                        • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 25.11.2006 | 13:23
                                          marian   Návštevník
                                          tak teraz som sa ozaj nasral.[root@localhost ~]# sudo /usr/local/bin/stdsl.sh >>> sudoers file: syntax error, line 29 sudo: parse error in /etc/sudoers near line 29 Přerušena roura (SIGPIPE)
                                          • Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re 25.11.2006 | 13:30
                                            ethyl   Návštevník
                                            zda sa mi, ze si sudoers needitoval cez visudo (lebo ti to asi nikto nepovedal). visudo ti skontroluje syntax a neumozni ti ulozit zmrveny sudoers.