sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #99258
chmod 4760 og 3<&0
Man kan kun køre /usr/bin/checkpassword som root. Det vil jeg gerne lave
lidt om på, så jeg har lavet et wrapper script, som jeg har givet følgende
rettigheder:
server:/home/dbj# ls -la chkpw.sh
-rwsr-x--- 1 root dbj 38 2009-09-26 19:23 chkpw.sh
Bemærk s'et. Først ser vi, at det virker som root:
server:/home/dbj# printf "%s\0%s\0%s\0" dbj password Y123456 |
/home/dbj/chkpw.sh id 3<&0
uid=1002(dbj) gid=1002(dbj) groups=1002(dbj)
Hvis nogen kan forklare denne redirection af standard input til 3, og hvad
formålet med det er, så bliver jeg glad.
Nu laver vi
server:/home/dbj# su dbj
dbj@server:~$ printf "%s\0%s\0%s\0" dbj password Y123456 |
/home/dbj/chkpw.sh id 3<&0
dbj@server:~$
Nu fejler det. Hvorfor?
Skyldes det at bash fortolkeren altid kører som user og ignorer s'et sat for
scriptet? Jeg tror det, men hvordan omgår man det? Jeg har lavet en kopi af
programmet, som jeg har givet de fornødne rettigheder, men hvad gør man med
et script?
Follow ups