Strona 2 z 2
: 20 października 2011, 22:59
autor: Bastian
Dodawać apache do grupy z rozszerzonymi uprawnieniami, i określone skrypty też w tej grupie, i nadać im prawa dostępu 750, albo zrobić dowiązanie z /usr/sbin do np. /usr/bin z odpowiednimi prawami i będzie można określone polecenia wykonywać jako użytkownik. Jednak aby nie mieszać z grupami i uprawnieniami, to ja bym chyba optował za skryptem, który będzie wykonywał przez crona te polecenia np.: co 30 sekund.
: 21 października 2011, 11:01
autor: buker999
Nie ma takiego podręcznika systemowego jak su-to-root.
A w podręczniku systemowym su nie ma nic na temat.
: 22 października 2011, 02:00
autor: fnmirk
Kod: Zaznacz cały
whereis su-to-root
su-to-root: /usr/bin/su-to-root /usr/sbin/su-to-root /usr/share/man/man1/su-to-root.1.gz
: 23 października 2011, 23:55
autor: buker999
Może inaczej podejdę do sprawy. Piszę Panel administracyjny pod Linuksem. Coś podobnego do Webmina. Będę potrzebował wykonywać polecenia, które może wykonywać tylko root. Cron odpada do poleceń takich jak restart apache lun systemu. Lipa by była jak co minutę by się wykonywały.
: 24 października 2011, 09:57
autor: Bastian
Stworzyć specjalną grupę tylko dla serwera apache i użytkownika root. Nadać uprawnienia konkretnym plikom, na których chcesz pracować, prawa wykonywalności dla grupy. Teraz od Ciebie będzie zależało (od porządności twoich skryptów, ale też zabezpieczenia całego serwera apache) na ile jest to bezpieczne rozwiązanie. Można też posilić się ALC.
: 27 października 2011, 12:13
autor: buker999
Dzieki wszystkim za pomoc. Rozwiazaniem jest:
Skrypty sa wywoływane przez program w c++. Program jest wlasnoscia roota i ma znaczniki SGID/SUID. Bez problemu mozna wykonac go z poziomu www
: 28 października 2011, 09:39
autor: Bastian
Z ciekawości: jak wywołujesz ten program w kodzie php?
: 28 października 2011, 12:08
autor: buker999
Kod: Zaznacz cały
<?php
shell_exec('cd /home/buker/programy && ./program');
$output = shell_exec('ls -l /home/buker/');
echo "<pre>$output</pre>";
?>
Przechodzę do lokalizacji z programem i go go uruchamiam. Nie wiem czemu nie działało uruchomienie bezpośrednie po podaniu lokalizacji. Teraz muszę się dowiedzieć, jak przekazać parametry z php do programu c++. (ls tylko ma sprawdzać, czy skrypt się wykonał) żebym tego ręcznie nie robił
.
: 28 października 2011, 12:22
autor: Bastian
: 28 października 2011, 12:57
autor: buker999
To co tutaj pokazuję to były testy uruchamiania programu przez www. Będę potrzebował na przykład napisać program, który wykonuje polecenie:
A więc, php przekazuje do programu c++ nazwę użytkownika, a potem on przekazuje do php pytanie o hasło. Można to zrobić przez parametry (nazwę użytkownika). Ale nie do końca wiem jak?
Kod: Zaznacz cały
-rwsrwsrwt 1 root root 4979 Oct 25 17:25 ./program
Prawa do pliku jeszcze będę zmieniał, pewnie na bardziej restrykcyjne np.: 7755.