Avatar billede pham Nybegynder
13. maj 2003 - 12:00 Der er 21 kommentarer og
1 løsning

shell script

hvordan laver man et shell script, som :

su root
automatisk indtastning af password
chown "bruger" "alle filer i mappen"
skifter tilbage til den normale bruger igen (exit)


håber i forstår hvad jeg mener..

m.v.h
anders
Avatar billede dank Nybegynder
13. maj 2003 - 12:36 #1
det tror jeg faktisk ikke man kan, men jeg er da med på en lytter.. iøvrigt er det den anden vej root->user sådan her

su - bruger -c "script.sh"

Hvor script.sh så er det chown script...
Avatar billede mfalck Praktikant
13. maj 2003 - 12:46 #2
hmm - jeg har ikke testet det helt igennem men man burde kunne gøre noget ala:

#!/bin/sh
su - << EOF
<passwd for root>
cd /bla/bla
chown brugernavn *
exit

EOF
Avatar billede mfalck Praktikant
13. maj 2003 - 12:47 #3
jeg får dog følgende fejl:

standard in must be a tty

hmm :-)
Avatar billede pham Nybegynder
13. maj 2003 - 12:59 #4
hmm jeg får også den fejl, og den ændre ikke ejerskab på nogle af filerne... :-(
Avatar billede dank Nybegynder
13. maj 2003 - 13:18 #5
jeg tvivler på man kan gøre det på den måde.. :o|
Avatar billede mfalck Praktikant
13. maj 2003 - 13:18 #6
må lige kigge på det efter arbejde.
Avatar billede mfalck Praktikant
13. maj 2003 - 13:21 #7
alternativet er måske at sætte brugeren ind i /etc/sudoers ... bom bom.
Avatar billede simonvalter Praktikant
13. maj 2003 - 13:22 #8
hvordan skal scriptet køre .. kan du ikke køre det fra root crontab og su bruger derfra .. så skal du ikke bruge password
Avatar billede simonvalter Praktikant
13. maj 2003 - 13:23 #9
eller er det ren og skær dovenskab at du ikke vil taste password ..

det er jo ikke ligefrem sikkert at have password liggende i et shellscript
Avatar billede pham Nybegynder
13. maj 2003 - 13:26 #10
--> loadet
du har ret, det er dovenskab... og det er ikke sikkert.

hvis det nu skal være uden automatisk indtastning af password, hvordan vil scriptet så komme til at se ud???
Avatar billede mfalck Praktikant
13. maj 2003 - 13:42 #11
#!/bin/sh
su -
<passwd for root>
cd /bla/bla
chown brugernavn *
exit
Avatar billede mfalck Praktikant
13. maj 2003 - 21:27 #12
jeg tror jeg har en løsning:

du skal bruge SUID-bit'en på shellscriptet og så skal den ejes af root:

#!/bin/sh

cd /bla/bla
chown <brugernavn> *

exit 0



MEN bemærk:

SUID shell scripts are a serious security risk, and for this reason the kernel will not honor them. Regardless of how secure you think the shell script is, it can be exploited to give the cracker a root shell.
Avatar billede mfalck Praktikant
13. maj 2003 - 21:40 #13
chmod 04755 shell-script skulle lave den suid'et
Avatar billede simonvalter Praktikant
13. maj 2003 - 22:22 #14
det kan man vist ikke med scripts
Avatar billede simonvalter Praktikant
13. maj 2003 - 22:23 #15
dvs du kan ... men det har ingen virkning

hvis du skriver det i c er der nu ikke noget problem
Avatar billede mfalck Praktikant
13. maj 2003 - 22:24 #16
jo - chmod i linux giver rwsr-xr-x ... s i første giver SUID.
Avatar billede simonvalter Praktikant
13. maj 2003 - 22:32 #17
ja .. men det har ingen virkning er jeg ret sikker på .. har du testet ?.. medmindre du bruger en eller anden distro some ikke følger en vis standart ..

det skal normalt være en executable binary for at du kan gøre det..
Avatar billede mfalck Praktikant
13. maj 2003 - 23:13 #18
dough - ja det er det med at der skal en wrapper omkring scriptet:

#define REAL_PATH "/path/to/script"
          main(ac, av)
              char **av;
          {
              execv(REAL_PATH, av);
          }
Avatar billede mfalck Praktikant
13. maj 2003 - 23:28 #19
hmm .. jeg kan se fra mine eksperimenter at det så skal være et perl-script fremfor et shellscript der kører sammen med wrapper-scriptet, så virker det.
Noget ala:

#!/usr/bin/perl
$ENV{PATH}='/bin:/usr/bin';
$ENV{BASH_ENV}='/home/<bruger>/.bashrc';

exec 'cd', '/bla/bla';
exec 'chown', '<brugernavn>', '*';
Avatar billede mfalck Praktikant
13. maj 2003 - 23:29 #20
det skal måske lige siges at de to $ENV var fordi perl-fortolkeren kom og brokkede sig over at de to miliø-variable var "usikre" så de skulle defineres inde i perlscriptet.
Avatar billede pham Nybegynder
12. november 2003 - 09:06 #21
lukker
Avatar billede mfalck Praktikant
12. november 2003 - 09:10 #22
kom det til at virke ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester