LINUX - tworzenie konta uzytkownika z poziomu PHP |
LINUX - tworzenie konta uzytkownika z poziomu PHP |
26.08.2003, 11:26:11
Post
#1
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 29.07.2003 Skąd: skąd-inąd. Ostrzeżenie: (0%) |
czy mozna utworzyc konto uzytkownika z poziomu php ?
polecenia linuxowe mozna wywolywac przez funkcje system(). polecenia typu system("ls /home") dzialaja prawidlo, jednak system("adduser nowy_uzytkownik") nie dziala jak powinno. na pewno chodzi o uprawnienia do tworzenia nowych kont. czy istnieje jakis inny sposob zeby przez skrypt php utworzyc konto uzytkownika pod linuxem (bedac rootem) ? |
|
|
26.08.2003, 12:46:33
Post
#2
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) |
Cytat czy istnieje jakis inny sposob zeby przez skrypt php
utworzyc konto uzytkownika pod linuxem (bedac rootem) ? Po pierwsze zobacz w shellu czy napewno uruchomienie polecenia adduser nowy_uzytkownik zadziała prawidłowo. Nie na każdym linuksie musi być akurat taka komenda i w takiej składni (mogą być np. wymaganae jakieś parametry). Po drugie sprawdź z prawami jakiego użytkownika uruchamiane są skrypty php. Najczęściej serwer www nie jest uruchamiany z prawami roota. Wtedy musisz użyć jakiegoś wrappera, chociaż odradzałbym takie rozwiązanie na rzecz umieszczania przez php zleceń w bazie i asynchronicznego wykonywania ich przez jakiś skrypt. |
|
|
26.08.2003, 12:55:03
Post
#3
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 29.07.2003 Skąd: skąd-inąd. Ostrzeżenie: (0%) |
adduser nazwa_uzytkownika dziala prawidlowo na moim linuxie.
ale nie mam pojecia o wrapperach,wiec jesli mozesz to napisz mi jak ty bys to rozwiazal... |
|
|
26.08.2003, 13:11:42
Post
#4
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 2.03.2003 Skąd: Tarnów Ostrzeżenie: (0%) |
Innym rozwiazaniem jest to aby trzymac cala zawartosc o uzytkownikach systemu w bazie sql zamaist w pliku /etc/passwd. Widzialem gdzies jzu chwile temu opisy konfiguracji takiego systemu wiec musial bys sobie poszukac o tym na google
-------------------- Pozdrawiam
Piotr P. 'g0blin' |
|
|
26.08.2003, 13:20:22
Post
#5
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 0 Dołączył: 29.04.2002 Skąd: jesteś? Ostrzeżenie: (0%) |
jeszcze innym rozwiazaniem jest tworzenie pliku txt, w ktorym sa zawarte informacje o nowych kontach, a cron wykonuje polecenia zalozenia konta
skrypt php, pobiera dane, sprawdza bezpieczenstwo (konta juz istnieja, znaki w nazwie, itp, itd) tworzy plik txt i tyle. -------------------- |
|
|
26.08.2003, 13:26:08
Post
#6
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) |
Cytat adduser nazwa_uzytkownika dziala prawidlowo na moim linuxie.
ale nie mam pojecia o wrapperach,wiec jesli mozesz to napisz mi jak ty bys to rozwiazal... Ja bym założył bazę do której bym wrzucał w phpie żądania założenia konta, a w jakimś asynchornicznym skrypcie odpalanym np. z crona co minute wyciągał je i rezlizował. Format bazy mógłby być np. taki: [sql:1:b7099ddeaf]create table users (nazwa char(20), haslo char(50), opis char(100))[/sql:1:b7099ddeaf] Ten skrypt zakładający musiałby pracować z prawmi roota oczywiście. |
|
|
26.08.2003, 19:52:33
Post
#7
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 29.07.2003 Skąd: skąd-inąd. Ostrzeżenie: (0%) |
z cronem to dobry pomysl.
dzieki ! |
|
|
26.08.2003, 21:20:06
Post
#8
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 29.07.2003 Skąd: skąd-inąd. Ostrzeżenie: (0%) |
ale jest jeszcze problem z haslem.
w takim skrypcie ktory odpala sie z crona byloby na przyklad: adduser nazwa_uzytkownika; passwd nazwa_uzytkownika; ... ale nie moge ustawic hasla. echo "haslo"|passwd nazwa_uzytkownika; nie dziala,haslo ma byc wpisywane z klawiatury wiec jak to obejsc i zautomatyzowac dzialanie skryptu ? |
|
|
26.08.2003, 22:06:29
Post
#9
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) |
Cytat adduser nazwa_uzytkownika;
passwd nazwa_uzytkownika; ... ale nie moge ustawic hasla. echo "haslo"|passwd nazwa_uzytkownika; Zgadza się. passwd zawsze pobiera hasło z terminala. Cytat nie dziala,haslo ma byc wpisywane z klawiatury wiec
jak to obejsc i zautomatyzowac dzialanie skryptu ? Zainteresuj się programem chpasswd. Powinien być w jednej paczce z passwdem. On przyjmuje uzytkownika i hasło ze stdina. |
|
|
27.08.2003, 11:17:11
Post
#10
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 29.07.2003 Skąd: skąd-inąd. Ostrzeżenie: (0%) |
chpasswd to dobry pomysl.
ale jest jeszcze taka sprawa ze: po zapisaniu hasla do pliku ,z ktorego skrypt odpalany co godzine bedzie pobieral dane do zakladania nowego konta bedzie odkodowane.i kazdy bedzie mogl sobie przejrzec ten plik. czy dalo by sie przed zapisaniem do pliku haslo kodowac ,a przez chmod zmieniac nowemu uzytkownikowi haslo podajac te juz zakodowane (z pliku). to bylaby juz o wiele bezpieczniejsza wersja... |
|
|
27.08.2003, 12:23:08
Post
#11
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) |
Cytat chpasswd to dobry pomysl.
ale jest jeszcze taka sprawa ze: po zapisaniu hasla do pliku ,z ktorego skrypt odpalany co godzine bedzie pobieral dane do zakladania nowego konta bedzie odkodowane.i kazdy bedzie mogl sobie przejrzec ten plik. czy dalo by sie przed zapisaniem do pliku haslo kodowac ,a przez chmod zmieniac nowemu uzytkownikowi haslo podajac te juz zakodowane (z pliku). to bylaby juz o wiele bezpieczniejsza wersja... A musisz to robić na plikach? W bazie byłoby to o wiele prostsze. Zakładasz dwóch użytkowników, jeden ma prawo tylko do wkładania danych do bazy (bez możliwości wyciągania i kasowania) i jego używa skrypt php, a drugi ma prawo do wyciągania i kasowania (ew. zmieniania) i jego używa skrypt z crona. Jeśli chcesz koniecznie robić to na plikach (co odradzam) to możesz zapisywać od razu zaszyfrowane crypt()'em hasła bo chpasswd potrafi je przyjąć w takiej postaci. |
|
|
27.08.2003, 12:47:58
Post
#12
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 29.07.2003 Skąd: skąd-inąd. Ostrzeżenie: (0%) |
taka komenta dziala poprawnie i zmienia haslo,dla podanego
uzytkownika. echo "nazwa_uzytkownika:nowe_haslo"|chpasswd wedlug manuala zeby podac zakodowane haslo nalezaloby wykonac operacje: echo "nazwa_uzytkownika:zakodowane_haslo"|chpasswd -e zakodowane haslo w systemie wyglada taK: $1$Jd6.FfMf$.aB8Ge.8RpQBu3DNGTI9I0 ,wiec sa to chasla zakodowne w trybie MD5. php: funkcja crypt() koduje hasla i tez w tym trybie,wiec to jest ok,ale po wykonaniu echo "nazwa_uzytkownika:zakodowane_haslo"|chpasswd -e haslo sie nie zgadza,a jak sprawdzam w pliku shadow to po uzyciu chpasswd -e jest szyfrowane jeszcze raz. i tu juz sie dzieja krzaki. co z tym kodowaniem zrobic ? ps. w jakim jezyku z poziomu skryptow w shellu moglbym korzystac zeby obslugiwac baze mySQL ? |
|
|
27.08.2003, 12:51:02
Post
#13
|
|
Grupa: Zarejestrowani Postów: 384 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Chorzow Ostrzeżenie: (0%) |
$1$Jd6.FfMf$.aB8Ge.8RpQBu3DNGTI9I0 dla shela nie oznacza $1$Jd6.FfMf$.aB8Ge.8RpQBu3DNGTI9I0 tylko ciag zmiennych. musisz zaescapowac wszystkie znaki specjalne.
|
|
|
27.08.2003, 14:30:32
Post
#14
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 21.02.2003 Ostrzeżenie: (0%) |
Cytat echo "nazwa_uzytkownika:nowe_haslo"|chpasswd
Wszystko pieknie ale to oznacza ze: - masz suida na chpasswd - kazdy uzytkownik systemu moze odpalic suidowane pliki To naprawde dosyc powazne zagrozenie dla bezpieczenstwa systemu. Wystarczy jakis bug w twoim skrypcie php, apachu albo chpasswd aby narobic strasznej kaszany w systemie lub zdobyc uprawnienia root'a. Aby to mialo rece i nogi zrobil bym miedzy php a chpasswd jakiegos wrappera ktory mial by suida na jakiegos uzytkownika i dopiero ten uzytkownik moglby odpalac chpasswd z suidem jako jedyny w systemie. Skompilowal bym tez skrypt php aby utrudnic analize kodu osobie ktorej udalo by sie wylistowac zawartosc twoich skryptow php byc chociaz troche utrudnic jej wlamanie. |
|
|
27.08.2003, 15:33:39
Post
#15
|
|
Grupa: Zarejestrowani Postów: 196 Pomógł: 0 Dołączył: 29.04.2002 Skąd: jesteś? Ostrzeżenie: (0%) |
adduser wymaga z klawiatury, ale useradd juz chyba nie?
ja wiem ze na swoim systemie mialem to zrobione tak, ze calosc robilo sie z lini polecen. i nie trzeba bylo hasla wpisywac z konsoli (terminala) dodatkowo mozna rowniez haslo i dane usera zapisac w bazie, co jest dobre, gdy chcesz mu pomoc w odzyskaniu zapomnianego hasla (ale to sie wiaze dodatkowo z lepszymi zabezpieczeniami, aby nikt niepowolany nie "przypomnial" sobie obcego hasla. -------------------- |
|
|
27.08.2003, 20:39:18
Post
#16
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) |
Cytat Wszystko pieknie ale to oznacza ze:
- masz suida na chpasswd - kazdy uzytkownik systemu moze odpalic suidowane pliki To naprawde dosyc powazne zagrozenie dla bezpieczenstwa systemu. Wcale tego nie oznacza. Właśnie o tym była mowa, że chpasswd jest uruchamiany ze skryptu puszczanego z rootowego crona, który czyta zlecenia z bazy. Skrypt w php wszada do tej bazy tylko zlecenia. Nikt tu nie mówi o odpalaniu chpasswda bezpośrdenio z phpa, a tym bardziej o zakładaniu na nim suida. |
|
|
27.08.2003, 22:22:15
Post
#17
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 29.07.2003 Skąd: skąd-inąd. Ostrzeżenie: (0%) |
oka, to jest dobry pomysl.
tylko w jakim jezyku napisac skrypt shellowy,ktory te dane z bazy pobierze. jak dotad mySQL uzywalem tylko z php... wiem ze C ma takie mozliwosci,ale czy jakis inny jezyk tez ? a jesli tak to czy ktos wie gdzie w necie jest opis obslugi mySQL przez ten jezyk/jezyki ... ? |
|
|
27.08.2003, 23:24:25
Post
#18
|
|
Grupa: Zarejestrowani Postów: 691 Pomógł: 0 Dołączył: 6.08.2003 Ostrzeżenie: (0%) |
Cytat tylko w jakim jezyku napisac skrypt shellowy,
Skrypt shellowy to chyba w shellu, nie? Cytat jak dotad mySQL uzywalem tylko z php...
wiem ze C ma takie mozliwosci,ale czy jakis inny jezyk tez ? a jesli tak to czy ktos wie gdzie w necie jest opis obslugi mySQL przez ten jezyk/jezyki ... Ale możesz go napisać w phpie. Generalnie lepiej napisać w języku który się zna nawet jeśli będzie to skrypt niż w C, którego się nie zna, bo można tylko głupich błędów narobić. Zrób go jako normalny skrypt phpowy tylko uruchamiany z interpretera w postaci binarki a nie z modułu w serwerze www. |
|
|
28.08.2003, 06:00:26
Post
#19
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 29.07.2003 Skąd: skąd-inąd. Ostrzeżenie: (0%) |
faktycznie ,uzycie php w skrypcie shellowym to dobry pomysl.
niestety mam jakiegos wybrakowanek linuksa (mandrake 9.1) ,bo jak wpisuje 'php' to wyskakuje ze zle polecenie... i w ogole po insalacji linuksa nie moglem sie laczyc z mysql'em ani uzywac funckji do obslugi pop3 bo nie bylo pliku php.ini ,musialem go sobie sam recznie przekopiowac i skonfigurowac. musze skompilowac sobie od nowa php ? jak tak to czeka tez to mnie na serwerze ktory bede robil, bo na nim tez nie mozna uzywac 'php' . prosze o jakies rady co do tego bo pomysl uzywania php do pisania skryptow w shellu jest dobry i...jakos mi to wczesniej do glowy nie przyszlo |
|
|
28.08.2003, 07:12:58
Post
#20
|
|
Grupa: Zarejestrowani Postów: 118 Pomógł: 0 Dołączył: 29.07.2003 Skąd: skąd-inąd. Ostrzeżenie: (0%) |
POWYZSZE PYTANIE JEST JUZ NIEAKTUALNE,ale nie caly temat...
sciagnelem sobie php-4.3.3 ,bisona,flexa i zainstalowalo sie bez wiekszych problemow. skrypty mozna juz odpalac z powloki. |
|
|
Wersja Lo-Fi | Aktualny czas: 23.05.2024 - 17:08 |