Witaj na Forum Linuxiarzy
Zanim zalogujesz się, by pisać na naszym forum zapoznaj się z kilkoma zasadami savoir-vivre'u w wątku Administracja-> Przywitaj się. Wątki z problemami zamieszczone w dziale "Przywitaj się" będą usuwane.

Autor Wątek: Skrypt tworzący nowego użytkownika linux  (Przeczytany 2173 razy)

Offline gorus1

  • Newbie
  • *
  • Wiadomości: 26
Skrypt tworzący nowego użytkownika linux
« dnia: Styczeń 09, 2019, 09:02:34 pm »
Dzień Dobry,
nie jestem zbyt doświadczonym użytkownikiem linux w związku z tym chciałbym prosić o pomoc w napisaniu (dla niektórych zapewne prostego) skryptu.
Otóż posiadam serwer NAS zyxela nsa310 i chciałbym na niego wysyłać automatycznie kopie poprzez ssh.
Na tym zyxelu jest dystrubucja Linux nas 2.6.31.8 i obsługuje komenda adduser itp., ale niestety po restarcie jakiekolwiek zmiany są usuwane.
W związku z tym potrzebuję stworzyć skrypt autostartu, który automatycznie zakładałby użytkownika i definiowałby mu dostęp ssh tylko do jednego wybranego katalogu.
Chodzi o to, że podając dane do mojego prywatnego NAS komuś z zewnątrz, kto wysyłałby po SSH backupy chcę mieć pewność, że ten ktoś nie będzie miał nieuprawnionego dostępu do innych katalogów.
Czy mógłbym liczyć na pomoc?

Offline arecki

  • Jr. Member
  • **
  • Wiadomości: 58
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #1 dnia: Styczeń 10, 2019, 08:00:50 pm »
Lepiej się zastanowić dlaczego te konta się kasują.
Odpowiedź zapewne znajdziesz w dokumentacji.
Debian testing.

Offline gorus1

  • Newbie
  • *
  • Wiadomości: 26
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #2 dnia: Styczeń 11, 2019, 02:01:45 am »
Kasuje się ponieważ system jest tak skompilowany, że domyślnie katalog domowy użytkownika "root" jest ustawiony na /home , który znajduje się w wewnętrznej pamięci flash. Ta pamięć jest usuwana przy każdym ponownym uruchomieniu urządzenia. Jednak udało mi się poradzić z tym problemem dzięki tym http://dp.nonoo.hu/installing-ffp-on-zyxel-nsa325/ tutkom.
Natomiast dzięki metodzie autoryzacji SSH kluczem publicznym rozwiązał się mój problem z obawą udostępnienia hasła root gdyż rsync działa dwukierunkowo i mogłem go skonfigurować na swoim domowym NAS, który pobiera pliki ze zdalnego VPS.
Ponadto dzięki drugiej metodzie z powyższego linku dotyczącą crontaba mogę zaplanować te zadania.
W zasadzie to by było wszystko ale chciałbym Was podpytać jak użyć rsync w taki sposób, aby jedną komendą pobrał wszystkie katalogi o nazwie "public_html" z katalogu /home/NAZWAUŻYTKOWNIKA/domains/NAZWADOMENY/public_html
?
pomoże ktoś?

Offline lesio

  • Hero Member
  • *****
  • Wiadomości: 576
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #3 dnia: Styczeń 11, 2019, 04:59:29 pm »
Ja używam rsync w takiej postaci:
rsync -arvtHAX --delete -e "ssh -p 1234" root@NAZWA_HOSTA:/home/user/domena/public_html .

Oczywiście zarówno port (tutaj 1234) jak i opcje polecenia rsync można dobrać stosownie do potrzeb.
W poleceniu katalogiem docelowym jest katlog bieżący "." - może być oczywiście dowolny inny.
Dla portu standardowego dla ssh nie trzeba żadnej opcji dla portu, czyli po prostu stosuje się samo "ssh".
Jest tylko jeden katalog public_html - nie rozumiem, co oznacza "wszystkie katalogi o nazwie public_html"?

Offline gorus1

  • Newbie
  • *
  • Wiadomości: 26
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #4 dnia: Styczeń 14, 2019, 02:30:33 am »
Ja chcę pobierać z innego serwera więc rsync powinienem użyć w takiej postaci
rsync -chavzP --stats -e "ssh -p 1111 -i /sciezka/do/kluczaSSH" root@111.22.33.44:/home/domains/public_html/ /katalog/z/backupemjednak to polecenie kopiuje tylko jeden wybrany katalog, a ja chciałbym kopiować wszystkie katalogi o nazwie public_html - każdy z użytkowników taki posiada, a ścieżka do niego wygląda tak:
/home/NAZWAUŻYTKOWNIKA/domains/NAZWADOMENY/public_html
chciałbym jedną komendą rsync robić backup tj. pobierać katalogi "public_html z wszystkich domen każdego użytkownika.
Ponadto chciałbym, aby kopie były archiwizowane oraz wykonywane codziennie, a każda następna nadpisuje ostatnią tak aby było dostępnych 7 ostatnich dni.
Jest to możliwe do wykonania?

Online TataPingu

  • Hero Member
  • *****
  • Wiadomości: 1069
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #5 dnia: Styczeń 14, 2019, 08:28:37 am »
Jest to możliwe do wykonania?

Spróbuj z tym algorytmem (oczywiście, "źródło" i "cel" odpowiednio dopasować):


ZRODLO=/home/domains/public_*

CEL=/katalog/z/backupem

rsync -r -t -p -o -g -v --progress --delete --modify-window=1 -l -H "${ZRODLO}" "${CEL}"


Offline gorus1

  • Newbie
  • *
  • Wiadomości: 26
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #6 dnia: Styczeń 14, 2019, 10:24:57 am »
Coś jest nie tak - pojawia się komunikat o złej składni a używam dokładnie takiej:
rsync -r -t -p -o -g -v --progress --delete --modify-window=1 -l -H -e "ssh -p 11223 -i /ffp/home/root/.ssh/keypair" root@111.22.33.44 "${/home/domains/public_*}" "${/i-data/beadda5d/backupy}"natomiast u ścieżka źródła wygląda zawsze tak:
/home/NAZWAUŻYTKOWNIKA/domains/NAZWADOMENY/public_htmlczyli zmiennymi w ścieżkach są zawsze nazwa użytkownika i nazwa domeny.

Online TataPingu

  • Hero Member
  • *****
  • Wiadomości: 1069
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #7 dnia: Styczeń 14, 2019, 11:03:53 am »
No oczywiście, że musisz to odpowiednio rozbudować...
- ja podałem Ci tylko sposób stworzenia takiego skryptu, bo samym rsync raczej tego nie wykonasz...

Offline gorus1

  • Newbie
  • *
  • Wiadomości: 26
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #8 dnia: Styczeń 15, 2019, 02:20:45 pm »
Czy jest tu na forum, aby jakaś sekcja "zlecenia", albo "praca", bo nie widzę, a zleciłbym komuś napisanie takiego skryptu jak powyżej.

Online TataPingu

  • Hero Member
  • *****
  • Wiadomości: 1069
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #9 dnia: Styczeń 15, 2019, 02:54:48 pm »
Otóż posiadam serwer NAS zyxela nsa310 i chciałbym na niego wysyłać automatycznie kopie poprzez ssh.
Na tym zyxelu jest dystrubucja Linux nas 2.6.31.8 i obsługuje komenda adduser itp., ale niestety po restarcie jakiekolwiek zmiany są usuwane.

Kolego, nawet, gdyby człowiek chciał Ci pomóc, to określasz zadania i cele mało precyzyjnie...

"Posiadasz zyxela" i chciałbyś "wysyłać"...
-ale CO na CO ?
Czy chcesz regularnie przesyłać dane z różnych stacji(komputerów) na NASa ?

A jeśli tak, to w sieci lokalnej, czy z poza niej (z zewnątrz)?

Poza tym, co tutaj ma do rzeczy jaki system jest na NASie?, po co Ci tworzenie usera, czy jakichś skryptów ?

Chodzi o to, że podając dane do mojego prywatnego NAS komuś z zewnątrz, kto wysyłałby po SSH backupy chcę mieć pewność, że ten ktoś nie będzie miał nieuprawnionego dostępu do innych katalogów.

Tego to już zupełnie nie rozumiem ?
- Kolego, określ precyzyjnie i po kolei CO CHCESZ OSIąGNąć (ROBIć), to dopiero wówczas możemy Ci pomóc...

Offline gorus1

  • Newbie
  • *
  • Wiadomości: 26
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #10 dnia: Styczeń 15, 2019, 04:54:13 pm »
Kolego, doczytaj do końca wszystkie posty w tym temacie, bo mam wrażenie, że przecztałeś dwa pierwsze wersy pierwszego postu i dwa ostatnie ostatniego i nic dziwnego, że nie rozumiesz.
Jakbyś doczytał do końca to byś zauważył, że sam sobie poradziłem z problemem z pierwszego postu dając odpowiedź w drugim (zacytuję sam siebie)
Cytuj
Kasuje się ponieważ system jest tak skompilowany, że domyślnie katalog domowy użytkownika "root" jest ustawiony na /home , który znajduje się w wewnętrznej pamięci flash. Ta pamięć jest usuwana przy każdym ponownym uruchomieniu urządzenia. Jednak udało mi się poradzić z tym problemem dzięki tym
Natomiast z czego na co chciałbym wysłać jak wół napisane jest również w drugim moim poście
Cytuj
...rsync działa dwukierunkowo i mogłem go skonfigurować na swoim domowym NAS, który pobiera pliki ze zdalnego VPS
a to czy w sieci lokalnej czy nie to nie ma żadnego znaczenia dla skryptu choć jakbyś uważnie czytał to byś zapewne zauważył to co zacytowałem powyżej tj. "ze zdalnego VPS" i nie błaźniłbyś się pytaniem czy w sieci lokalnej.
A to jaki system jest na NAS ma do rzeczy tyle, że takie dystrybucje są zazwyczaj okrojone i chciałem z góry to wyszczególnić gdyż mogą nie mieć jakiegoś pakietu, który mógłby być zasugerowany jako rozwiązanie.
Kolego, jak chcesz pomóc to przeczytaj uważnie wszystkie posty, bo mam wrażenie, że Twoje odpowiedzi służą jedynie do nabijania żółtego potencjometru przy Twoim nickname.

Online TataPingu

  • Hero Member
  • *****
  • Wiadomości: 1069
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #11 dnia: Styczeń 15, 2019, 09:55:28 pm »
Kolego, doczytaj do końca wszystkie posty w tym temacie

Kolego, abstrachując od inwektyw, którymi mnie obsypujesz, powiem Ci jedno, tak, czytałem...
- i zrozumiałem na tyle, że mogę powiedzieć, że gadasz farmazony !
Możliwe, że coś Ci się tam udało zmajstrować na tym Twoim NASie, ale w sumie to chyba nawet dokładnie nie wiesz, jak to działa...

Co wkońcu chcesz na tego NASa przesyłać (a jakim sposobem, to mało istotne), jakieś "kopie" ? i skąd ?
- za chwilę piszesz, że udostępniasz NASa na zewnątz ?

"Chodzi o to, że podając dane do mojego prywatnego NAS komuś z zewnątrz, kto wysyłałby po SSH backupy chcę mieć pewność, że ten ktoś nie będzie miał nieuprawnionego dostępu do innych katalogów."

- przecież to Twoje słowa !

Oczywiście, wisi mi to, co Ty tam kombinujesz, jednak z moich mglistych domysłów wnioskuję, że próbujesz publicznie udostępniać NASa, jako czegoś w rodzaju "chmurki"...
Jeśli faktycznie jest tak, jak się domyślam, to dlaczego nie zrobisz np serwera FTP z prawdziwego zdarzenia?

I właśnie o to mi chodziło...
- sprecyzuj dokładnie zadania NASa, to wówczas można coś doradzić...

Ty jednak postępujesz, jakbyś był płacącym "PANEM" w jakiejś podrzędnej knajpce...
- no nic, życzę powodzenia w rozwoju...

Offline gorus1

  • Newbie
  • *
  • Wiadomości: 26
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #12 dnia: Styczeń 15, 2019, 11:31:47 pm »
Cytuj
Chodzi o to, że podając dane do mojego prywatnego NAS komuś z zewnątrz, kto wysyłałby po SSH backupy chcę mieć pewność, że ten ktoś nie będzie miał nieuprawnionego dostępu do innych katalogów.
tak to moje słowa gdyż pierwotnie chciałem wysyłać rsync-iem kopie ze Z D A L N E G O VPS do mojego domowego NAS zyxel i szukałem metody (skryptu) która z tego powodu:
Cytuj
domyślnie katalog domowy użytkownika "root" jest ustawiony na /home , który znajduje się w wewnętrznej pamięci flash. Ta pamięć jest usuwana przy każdym ponownym uruchomieniu urządzenia
będzie przy każdym restarcie mojego domowego NAS zakładał użytkownika z dostępem SSH, ale tylko do jednego katalogu przeznaczonego na backupy gdyż jak wynika z pierwszego cytatu - dostęp do zdalnego VPS posiadam nie tylko ja i nie chciałbym, aby ktoś miał dostęp do innych danych na moim prywatnym NAS.
Jednak w międzyczasie odkryłem (o czym już pisałem) to:
http://dp.nonoo.hu/installing-ffp-on-zyxel-nsa325/
dzięki czemu mogłem zainstalować na moim NAS FFPstick co z kolei umożliwiło mi skonfigurowanie SSH pubkey authentication oraz Crontab w taki sposób, aby "wyjąć" te pakiety z pamięci flash.
Mając możliwość autoryzacji kluczem na NAS dalej doczytałem, że mogę właśnie na NAS zainstalować rsync i automatycznie pobierać kopie zamiast wysyłać z VPSa, natomiast crontab umożliwia, że harmonogram z ewentualnymi skryptami mogę skonfigurować w NAS zyxel.
Reasumując
doszedłem do momentu w którym takie polecenie:
rsync -chavzP --stats -e "ssh -p 1111 -i /sciezka/do/kluczaSSH" root@111.22.33.44:/home/user/domains/nazwa_domeny/public_html/ /katalog/z/backupempobiera ze Z D A L N E G O VPSa taki katalog /home/user/domains/nazwa_domeny/public_html/
natomiast na tym VPS ie jest więcej użytkowników, którzy mają domeny, a w każdej z tych domen jest katalog "public_html"
Interesuje mnie zawartość wyłącznie katalogów "public_html" wszystkich domen każdego użytkownika i dlatego potrzebuję skryptu.
Czy to takie ciężkie było do zrozumienia? Przecież to wynikało z następnych postów.
« Ostatnia zmiana: Styczeń 15, 2019, 11:44:42 pm wysłana przez gorus1 »

Online TataPingu

  • Hero Member
  • *****
  • Wiadomości: 1069
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #13 dnia: Styczeń 16, 2019, 11:58:12 am »
Piszesz
tak to moje słowa gdyż pierwotnie chciałem wysyłać rsync-iem kopie ze Z D A L N E G O VPS do mojego domowego NAS zyxel i szukałem metody (skryptu)

W innym miejscu, że chcesz "pobierać z VPS", jeszcze w innym, "że znalazłeś rozwiązanie problemu" (dzięki http://dp.nonoo.hu/installing-ffp-on-zyxel-nsa325/ - czy myślisz, że ktoś z nas będzie to również "studiować" ?)  itp...
Raz tak, raz owak, totalny "misz-masz" i "groch z kapustą" (w każdym bądź razie, ja to tak odebrałem)...

Teraz wreszcie zrozumiałem o co Ci dokładnie chodzi....
- ty chciałbyś użyć rsynca do:

--------------------------------------------------------------------
zdalnyVPS(/home/..itd/public_html/)----backup---->(rsync)ZYXEL
--------------------------------------------------------------------

Zauważ, że w początkowej wersji miało być tak:

zdalnyVPS(/home/..itd/public_html/)(rsync)----backup---->ZYXEL

a są to dwie różne konstelacje!

I dopiero w tym punkcie planowania powinno się zastanowić, jak spreparować ZYXELA do tego zadania...

Na pewno nie trzeba tutaj nic manipulować z userami, rootami, czy samym OSem (zobacz moje: "Poza tym, co tutaj ma do rzeczy jaki system jest na NASie?, po co Ci tworzenie usera, czy jakichś (dodatkowych) skryptów ?)

A co do samego skryptu, to OK, widzę, że podpowiedziałem do zupełnie innej konstelacji.
Oczywiście, można to określić w jednej linii, ja osobiście jednak wolę wpierw określać zmienne, a dopiero potem prawidłowy algorytm (posłużyłem się już Twoim, działającym algorytmem), np.:

ZRODLO=root@111.22.33.44:/home/user/domains/nazwa_domeny/public_html/
CEL=/katalog/z/backupem

rsync -chavzP --stats -e "ssh -p 1111 -i /sciezka/do/kluczaSSH" "${ZRODLO}" "${CEL}"


Funkcjonujący "rdzeń" już masz, teraz wszystko zależy od NASa, t.j. co można na nim zrobić.
Przypuszczam, że niewiele więcej, jak spreparować tak crontaba, że uruchamiać będzie po kolei kolejne "skrypty-rdzenie" do każdej domeny z osobna.

Ale do tego, jak widzę sam doszedłeś, więc o jakie "skrypty", czy "pomoc" Ci chodzi ?

Twoja wypowiedź do której się odniosłem:
"Czy jest tu na forum, aby jakaś sekcja "zlecenia", albo "praca", bo nie widzę, a zleciłbym komuś napisanie takiego skryptu jak powyżej."
« Ostatnia zmiana: Styczeń 16, 2019, 12:07:08 pm wysłana przez TataPingu »

Offline gorus1

  • Newbie
  • *
  • Wiadomości: 26
Odp: Skrypt tworzący nowego użytkownika linux
« Odpowiedź #14 dnia: Styczeń 16, 2019, 04:04:18 pm »
Cytuj
czy myślisz, że ktoś z nas będzie to również "studiować
dziękuję Ci, że w przeciwieństwie do innych akurat Tobie zechciało się to studiować.
Natomiast zauważ, że zmiana moich oczekiwać i definicja problemu nastąpiła dlatego, że w międzyczasie znalazłem w sieci pewne rozwiązanie, które uświadomiło mi, że zamiast konfigurować skrypty backupu na zdalnym VPS (udostępniając jednocześnie dane dostępowe do mojego domowego NAS) - mogę zrobić odwrotnie tj. wygenerować klucz SSH na domowym NAS, zaimplementować go na VPS i "pobierać" backup ze zdalnego VPSa.
Teraz, kiedy to NAS zyxel (do którego mam dostęp wyłącznie ja) pobiera dane/backup, a nie zdany VPS (do którego mają dostęp również inni) wysyła poprzez rsync to faktycznie nie jest potrzebne zakładanie żadnych użytkowników z okrojonym dostępem itp.
Jednak gdyby było odwrotnie to w jaki inny sposób można by było zablokować dostęp do innych zasobów na NAS zyxel niż poprzez stworzenie użytkownika z "okrojonym" dostępem?
Cieszę się jednak, że udało się to jakoś przedstawić i jak już pisałem - doszedłem do takiej działającej konfiguracji:
rsync -chavzP --stats -e "ssh -p 1111 -i /sciezka/do/kluczaSSH" root@111.22.33.44:/home/user/domains/nazwa_domeny/public_html/ /katalog/z/backupem
do tego momentu wszystko zdaje się dobrze udało mi się opisać jednak jedno muszę doprecyzować tj. napisałeś:
Cytuj
... uruchamiać będzie po kolei kolejne "skrypty-rdzenie" do każdej domeny z osobna.
otóż gdyby ilość domen i użytkowników była niezmienna to zapewne próbowałbym sam napisać taki skrypt, albo najprawdopodobniej kilka skryptów.
Jednak użytkownicy  dodają domeny i je usuwają jak również sami użytkownicy są dodawani i usuwani w związku z tym liczba tych katalogów "public_html" w poszczególnych domenach będzie się zmieniać i dlatego potrzebuję takiego skryptu, który to wszystko uwzględni.
« Ostatnia zmiana: Styczeń 16, 2019, 04:15:00 pm wysłana przez gorus1 »