Nowe posty

xx Debian 9 Stretch, linuxcnc i restart przy uruchamianiu (2)
Wczoraj o 21:54:36
xx Zakup sprzętu bez preinstalowanego windowsa (8)
2019-10-17, 16:50:51
xx Problem z pocztą Dovecot+Postfix+MySQL (3)
2019-10-16, 14:43:41
xx Instalacja Debian10 problem z instalacją GRUBa na RAID5 (5)
2019-10-15, 17:58:57
xx AMD Ryzen 5 3500U (11)
2019-10-14, 18:29:46
xx Konfiguracja directadmina (0)
2019-10-13, 03:18:36
xx Problem z instalacją sterowników TL-WN821N (4)
2019-10-11, 23:15:00
xx Sprzet z Linuxem (1)
2019-10-11, 10:06:24
xx nadpisanie partycji domowej (6)
2019-10-03, 03:27:28
xx Screen flickering Deepin (4)
2019-10-02, 20:32:56

Autor Wątek: Pisanie bezpiecznych skryptow.  (Przeczytany 3724 razy)

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2211
  • 1709
    • Zobacz profil
Pisanie bezpiecznych skryptow.
« dnia: 2019-10-01, 19:42:01 »
Czy ktoś ma pomysły / porady / poradniki / linki jak pisać skrypty bash ?

Gdzieś wyczytałem w poradnikach ze
gdy z poziomu uzytkownika wykonuje skrypt lub jakas komende w systemie jako root
( loguje sie na konto root aby wykonac komende) , to
zmieniając np. $PATH mogę podmienić dowolna komendę i za pomocą jej dostać się na konto root.
Polecili pisać komendy z ich ścieżkami.

Chcialem tego uniknac, czyli zmienna $PATH musialby zawierac tylko " /bin:/usr/bin:/sbin:/usr/sbin "
Poradniki polecaja takie opcje jak
bash --login --noprofile --norc
http://www.linux.pl/man/index.php?command=bash
env --ignore-environment
http://www.linux.pl/man/index.php?command=env

Tylko jak to wdrozyc w zycie?
Zwykle na poczatku pliku jest
#!/bin/bash
Czy da sie zrobic będzie działać ?
#!/bin/bash --login --noprofile --norc
albo
#!/usr/bin/env --ignore-environment bash


Edytowanne 2.10.2019
W kazdym razie mi to nie dziala.
Probowalem jeszcze gdzies indziej pytac i mam nadal metlik w glowie.

Raz mi ktos na pisal ze moge dodac jeden argument do "shebang", a inna osoba ze nie moge.
Tutaj https://pl.wikipedia.org/wiki/Shebang
mozna przeczytac ze
Cytuj
Cytuj
W niektórych wariantach Uniksa możliwe jest też podawanie parametrów, np.:

#!/usr/bin/python -i
No to teraz jak ja mam naprawic swojego Linuxa zeby to bylo mozliwe dla bash?  :(

Ja sobie jakos poradze
- Usuwajac niebezpieczne ustawienia, zmienne i zabezpieczajac plik
chattr +i /home/uzytkownik/.bash_profile  
oraz inne pliki ( .bash_logout .bash_profile  .bashrc ) . Ale nie jest to wygodne. Zwlaszcza gdybym chcial sie podzielic skryptem.
- Uzywanie tylko " #!/bin/bash " i podmienianie zmiennej $PATH w skrypcie, ale to nie gwarantuje bezpieczenstwa. :/
I gdy bede chcial sie podzielic skryptem to nie moge zagwarantowac ze bedzie on odporny na zlosliwe zmienne srodowiskowe.

Taki przyklad "zlosliwych zmiennych" / zlosliwego basha mozna zobaczyc tutaj https://stackoverflow.com/questions/16365130/what-is-the-difference-between-usr-bin-env-bash-and-usr-bin-bash/55927235#55927235
« Ostatnia zmiana: 2019-10-02, 14:44:31 wysłana przez 1709 »
Pochwal się swoją kartą graficzną w tym wątku-->
http://forum.linux.pl/index.php/topic,19841.msg121122.html#msg121122