Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Linux+PHP] Skrypt dodajacy konto w systemie !
Yacho
post
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 0
Dołączył: 16.06.2003

Ostrzeżenie: (0%)
-----


Dostalem ostatnio zadanie napisania skryptu zakladajacego nowego uzytkownika w systemie (linux debian)
utworzylem sobie grupe z takimi prawami jakie ma miec nowy user utworzylem skel ale nadal nie wiem jak koncepcyjnie to rozwiazac...
komenda adduser prosi uzytkownika o podanie kilku danych z klwiatury - nie wszystkie mozna podac z linii komend - wiec jak rozwiazc etn problem na poziomie php (da sie wogole?)

ogolnie jestem tez w polu jesli chodzi o zabezpieczenia - nie zabardzo rozsadne wydaje sie nadanie praw roota skryptowi !

Kesetm zupelnie w lesie i nie mam pomyslu - z linuxem mam kontakt od tyogdnia i wydaje mi sie calkiem fajny - z php nieco dluzej ale jak to ze soba polaczyc nie wiem wogole....

Prosze was o wskazanie jakiejs drogi - na pomoc w r4ealizacji przyjdzie czas pozniej (choc oby nie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

thx z gory (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
adwol
post
Post #2





Grupa: Zarejestrowani
Postów: 691
Pomógł: 0
Dołączył: 6.08.2003

Ostrzeżenie: (0%)
-----


Uruchamianie z WWW programu suidowego nie jest najlepszym pomysłem, ale są lepsze rozwiązania. I znów kłania się tu technologia bottom halves. Załóż sobie w jakimś SQLu najprostszą bazę z jedną tabelą z polami id, login, hasło, opis, status (plus ew. inne jeśli Ci są potrzebne). W skrypcie na WWW wsadzaj do bazy dane usera do założenia. Drugi skrypt uruchamiaj z rootowego crona np. co godzinę, wyciagaj w nim dane z bazy, sprawdzaj czy są poprawne i zakładaj userów (szkielet rozwiązania dla MySQLa):
[php:1:49dd6832ef]<?php
$res = mysql_query("select id, login, haslo, opis from uzytkownicy where status=0");
while ($row = mysql_fetch_array($res))
{
# tutaj sprawdzanie poprawnosci danych
$login = escapeshellarg($row['login']);
$haslo = escapeshellarg($row['haslo']);
$opis = escapeshellarg($row['opis']);
system("/usr/sbin/useradd -p $haslo -m -c $opis $login", $ret);
$status = ($ret == 0) ? 1 : 2;
mysql_query("update uzytkownicy set status='$status' where id='" . $row['id'] . "'");
}
?>[/php:1:49dd6832ef]
Jak to jest debian to jest tam takie narzędzie jak useradd (jak w większości linuksów). Działa ono wsadowo (jak to już zauważył Volt3r) i nie wymaga interakcji użytkownika. Poczytaj manual od niego to dowiesz się więcej.
Pole status jest po to byś później mógł sprawdzić którzy uzytkownicy zostali założeni poprawnie, a którzy nie.
W miejscu sprawdzania danych możesz sprawdzać np. czy opis nie jest za długi, albo czy nazwa użytkownika nie zawiera nieprawidłowych znaków, ale powinien to za Ciebie już zrobić useradd.
Możliwości jest mnóstwo. (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post

Posty w temacie
- Yacho   [Linux+PHP] Skrypt dodajacy konto w systemie !   11.11.2003, 03:06:05
- - Bakus   Straszliwie zamieszałeś (literówki), ale ja bym za...   11.11.2003, 05:03:41
- - Volt3r   Za duzo ci nie pomoge, bo slabo znam php ale tylko...   11.11.2003, 12:58:14
- - Bakus   Na linuxie się zbytnio nieznam, ale chyba można ut...   11.11.2003, 13:22:54
- - Yacho   Volt3r : dzieki - to ulatwi duzo bo juz myslalem z...   11.11.2003, 16:08:57
- - adwol   Uruchamianie z WWW programu suidowego nie jest naj...   12.11.2003, 02:06:09
- - Yacho   adwol: wlasnie myslalem o czyms takim z tym ze my...   12.11.2003, 02:37:43
- - adwol   Cytattylko czy odpalanie tego skryptu ktory by dod...   12.11.2003, 02:44:44
- - Bakus   Do całokształtu można jeszcze dorzucić jakiś syste...   12.11.2003, 04:49:51
- - Yacho   Bakus : Co do tego to nie ma problemu zupelnie Sk...   12.11.2003, 20:57:52
- - Bakus   Nie bądź taki skromny Apropo UID - nie zmienia to...   12.11.2003, 21:24:28
- - Yacho   dlatego rzeczy typu postmaster admin da sie do ban...   18.11.2003, 04:36:41
- - spenalzo   A ja odświeże temat bo mam za zadanie zrobić zakła...   28.11.2003, 13:32:41
- - rachwal   Cytat<?php $res = mysql_query("select id, login...   28.11.2003, 16:34:55
- - adwol   CytatOstatnio takze mialem podobny problem -- obaw...   28.11.2003, 17:22:47
- - adwol   Cytat1. rozumiem, że hasło nie może być zakodowane...   28.11.2003, 17:32:46
- - spenalzo   CytatCytat1. rozumiem, że hasło nie może być zakod...   28.11.2003, 20:27:04
- - adwol   CytatDane są trzymane w bazie mysql, konto to ma b...   28.11.2003, 22:09:33
- - spenalzo   CytatNo to założenie konta jest równe zrobieniu wp...   28.11.2003, 22:49:53
- - adwol   CytatTo znaczy o co mam zapytać administratora - c...   29.11.2003, 00:17:43
- - spenalzo   Przepraszam :oops: , już pisze: 1. jest sobie por...   29.11.2003, 00:29:06


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 15:36