Skocz do zawartości
Zaloguj się, aby obserwować  
miras

[VPS] - dodawanie katalogu zabezpieczonego hasłem ftp.

Polecane posty

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

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

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

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

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

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

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ż smile.png 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

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

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

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 przez miras (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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 przez xorg (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

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 przez Piotrek Mazurkiewicz (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
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

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 przez Piotrek Mazurkiewicz (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
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" wink.png

 

Ale wszystko i tak zależy od środowiska w jakim używane to ma być.

Edytowano przez xorg (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się

Zaloguj się, aby obserwować  

×