miras 0 Zgłoś post Napisano Maj 9, 2012 Witam, mam następujący problem, potrzebuję napisać skrypt, dodający do vpsa/dedyka katalog np, w /home/$nazwakatalogu, to wiem, z tym, że ten katalog musi mieć swoje oddzielne od wszystkich zabezpieczenie ftp. coś ala udostępniania użytkownikowi miejsca na serwerze, coś takiego np. Ja dodam panu kowalskiemu katalog /home/kowalski i pan kowalski może połączyć się z tym katalogiem przez ftp podając np. dane host; 1.2.3.4 user; kowalski; haslo; kowalski11 Najlepiej, żebyście mi podali jakieś inne sposoby od adduser ( o ile są ) Proszę o pomoc i jakieś małe wytłumaczenie - dzięki z góry! Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotrek Mazurkiewicz 19 Zgłoś post Napisano Maj 9, 2012 Jeśli masz ProFTPD to wklep "nano /etc/proftpd/proftpd.conf" i usuń sobie "#" przed "# DefaultRoot ~". Zrestartuj ftp i teraz każdy użytkownik którego dodasz, będzie zablokowany w swoim folderze w /home/nazwausera/ i nie będzie Ci poza niego wychodził. Udostępnij ten post Link to postu Udostępnij na innych stronach
miras 0 Zgłoś post Napisano Maj 9, 2012 tak to wiem, ale mi chodzi o coś zupełnie innego - jak za pomocą php dodać katalog + hasła ftp do tego katalogu.. Udostępnij ten post Link to postu Udostępnij na innych stronach
ArabSmall 118 Zgłoś post Napisano Maj 9, 2012 Czyli chcesz poprzez php dodać usera tak jak byś dodawał poprzez konsole? To użyj komendy useradd Udostępnij ten post Link to postu Udostępnij na innych stronach
miras 0 Zgłoś post Napisano Maj 9, 2012 A nie da się jakoś inaczej dodać po prostu katalogu, do którego będą hasła ftp ? Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotrek Mazurkiewicz 19 Zgłoś post Napisano Maj 9, 2012 Może ProFTPD + użytkownicy w MySQL? http://www.debuntu.org/how-to-ftp-virtual-host-with-proftpd-mysql Udostępnij ten post Link to postu Udostępnij na innych stronach
miras 0 Zgłoś post Napisano Maj 9, 2012 Niee, też nie to będzie coś ala wydzierżawianie miejsca na dysku użytkownikom, no chyba nie ma innego wyjścia niż useradd, tylko jak ja przez php wpiszę hasła do tego usera... Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotrek Mazurkiewicz 19 Zgłoś post Napisano Maj 9, 2012 Nie rozumiem czemu nie założysz tych kont przez ten ftp+mysql. Dobrze będzie Ci się współpracowało z kontami przez ftp, możesz od razu ustawić hasło, katalog domowy (który niczym się nie różni od zrobionego w innym miejscu) a w dodatku użytkownicy nie będą Ci się próbować logować przez ssh do ich konta. Udostępnij ten post Link to postu Udostępnij na innych stronach
ArabSmall 118 Zgłoś post Napisano Maj 9, 2012 Niee, też nie to będzie coś ala wydzierżawianie miejsca na dysku użytkownikom, no chyba nie ma innego wyjścia niż useradd, tylko jak ja przez php wpiszę hasła do tego usera... To może; SSH2 + PHP + useradd + mcrypt? W skrypcie PHP wpiszesz hasło i login i już Dodanie użytkownika będzie wyglądać mniej więcej tak (pewnie ktoś zna lepszy sposób) useradd -m $user -p $pass w $pass masz już zakodowane hasło. Ja sobie zrobiłem skrypt bash i wygląda tak #!/bin/bash clear echo "Podaj nazwe użytkownika : " read user read -s -p "Podaj hasło : " password pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) useradd -m $user -p $pass echo -e "\nDodano użytkownika\nHasło to: $password" i tak samo możesz w PHP zrobić Udostępnij ten post Link to postu Udostępnij na innych stronach
miras 0 Zgłoś post Napisano Maj 9, 2012 A tego polecenie tak: system(useradd -m $user -p $pass); nie da się wykonać, bo w sumie tylko to jest mi potrzebne przy utworzeniu usera automatycznie w /home/$user utworzy mi się katalog - skonfiguruję odpowiednio proftp i powinno być ok, zapomniałem jeszcze napisać, że każdy ten katalog ma być ograniczony ilością miejsca na dysku... Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotrek Mazurkiewicz 19 Zgłoś post Napisano Maj 9, 2012 Raczej nie dodasz "-p $pass", bo $pass to hasło już w postaci zaszyfrowanej. Weź skorzystaj z tego ftp + mysql + quota. Masz WSZYSTKO czego potrzebujesz i możesz sobie super tym zarządzać przez phpmyadmin bądź z poziomu php. http://www.howtoforge.com/virtual-hosting-with-proftpd-and-mysql-debian-lenny Udostępnij ten post Link to postu Udostępnij na innych stronach
miras 0 Zgłoś post Napisano Maj 9, 2012 Ok, dzięki, jak coś to będę walił na pw ;> Udostępnij ten post Link to postu Udostępnij na innych stronach
Misiek08 285 Zgłoś post Napisano Maj 9, 2012 http://stackoverflow.com/questions/5294241/useradd-not-working-with-p-option czyli można useradd -m -p. Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotrek Mazurkiewicz 19 Zgłoś post Napisano Maj 9, 2012 Tak, można, ale dopiero po crypcie: "$password = crypt('Pass123!');" (pisałem o tym konkretnym przypadku suchego $pass) Udostępnij ten post Link to postu Udostępnij na innych stronach
miras 0 Zgłoś post Napisano Maj 10, 2012 (edytowany) No właśnie chodziło mi o coś takiego: <?php $user="user"; $pass=crypt('haslo12'); $polecenie = system("sudo useradd $user -p $pass -s, $result); $polecenie; echo $result; ?> $result wyświetla 1 Ale nie dodaje użytkownika i nie tworzy katalogu w /home - co jest nie tak ? Edytowano Maj 10, 2012 przez miras (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Maj 10, 2012 (edytowany) Po pierwsze zadbaj o składnię, bo brakuje Ci ", ponadto dajesz parametr -s ale nie wpisujesz jakiej powłoki ma używać. Poza tym masz samą nazwę zmiennej która nic nie robi. Powinien generalnie wyjść z tego błąd parsowania. $polecenie = system("sudo useradd $user -p $pass -s, $result); $polecenie; Po drugiew $result nie masz outputu wydrukowanego z programu, tylko to, co program zwraca. Jeżeli masz tam jeden, to wychodzi na to że polecenie wykonuje (program się uruchamia i kończy poprawnie działanie, ale niekoniecznie musi zrobić to co chciałeś). Z pewnością będzie Ci łatwiej, jak poczytasz jakieś podstawowe kursy PHP oraz z obsługi linuxa, bo teraz to bardziej czarujesz niż piszesz kod. Edytowano Maj 10, 2012 przez xorg (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotrek Mazurkiewicz 19 Zgłoś post Napisano Maj 10, 2012 (edytowany) Dodaj powłokę dla użytkownika "-s /bin/false/" "-s /bin/sh" czy jaką tam inną zamierzasz. Ale nie dodaje użytkownika i nie tworzy katalogu w /home - co jest nie tak ? Wydaje mi się, że standardowo useradd może być wykonywany tylko przez root'a a Apache (załóżmy), nie ma uprawnień do zapisywania choćby w /etc/passwd.. Sudo nie potrzebuje być wykonywane bezpośrednio z tty? Edytowano Maj 10, 2012 przez Piotrek Mazurkiewicz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Maj 10, 2012 Wydaje mi się, że standardowo useradd może być wykonywany tylko przez root'a a Apache (załóżmy), nie ma uprawnień do zapisywania choćby w /etc/passwd.. sudo useradd Udostępnij ten post Link to postu Udostępnij na innych stronach
Piotrek Mazurkiewicz 19 Zgłoś post Napisano Maj 10, 2012 (edytowany) No tak, ale zauważ błąd: "sudo: sorry, you must have a tty to run sudo" W ogóle, to robota bez sensu. Nie dość, że z tym useradd jest zamieszanie, to jeszcze będziesz miał przeprawę z ustawieniem quoty, która chcesz. Edytowano Maj 10, 2012 przez Piotrek Mazurkiewicz (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach
xorg 693 Zgłoś post Napisano Maj 10, 2012 (edytowany) No tak, ale zauważ błąd: "sudo: sorry, you must have a tty to run sudo" Błąd błędem, przecież wiadomo że domyślnie ze względów bezpieczeństwa nie będzie mógł każdy user używać uprawnień superusera. Jednak zarazem nie widzę problemu w eliminacji tego "błędu" Ale wszystko i tak zależy od środowiska w jakim używane to ma być. Edytowano Maj 10, 2012 przez xorg (zobacz historię edycji) Udostępnij ten post Link to postu Udostępnij na innych stronach