Nowe posty

xx Dystrybucja pod HP Omen (6)
Wczoraj o 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
Wczoraj o 21:08:23
lamp Problem z Linux Lite po instalacji (0)
Wczoraj o 19:50:30
xx Ile pingwinów? (1)
Wczoraj o 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

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

Offline 1709

  • Users
  • Guru
  • *****
  • Wiadomości: 2763
  • 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 »
PS: Brak polskiej czcionki, nie jest to brak lenistwa, a jej brak w systemie i brak czasu na reczne poprawki.