Programowanie > Bash, skrypty powłoki

Pisanie bezpiecznych skryptow.

(1/1)

1709:
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

--- Kod: ---
bash --login --noprofile --norc
--- Koniec kodu ---
http://www.linux.pl/man/index.php?command=bash

--- Kod: ---
env --ignore-environment
--- Koniec kodu ---
http://www.linux.pl/man/index.php?command=env

Tylko jak to wdrozyc w zycie?
Zwykle na poczatku pliku jest

--- Kod: ---
#!/bin/bash
--- Koniec kodu ---
Czy da sie zrobic będzie działać ?

--- Kod: ---
#!/bin/bash --login --noprofile --norc
--- Koniec kodu ---
albo

--- Kod: ---
#!/usr/bin/env --ignore-environment bash
--- Koniec kodu ---


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.:


--- Kod: ---
#!/usr/bin/python -i
--- Koniec kodu ---

--- Koniec cytatu ---

--- Koniec cytatu ---
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

--- Kod: ---
chattr +i /home/uzytkownik/.bash_profile 
--- Koniec kodu ---
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

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej