[bash]Generacja haseł
[bash]Generacja haseł
Witam
Chciałbym zrobić w bashu coś takiego, żeby stworzyć hasło składające się z 4 losowych cyfr. Jest taka możliwość? Chodzi mi o samą metodę, z dodaniem do skryptu jako hasło nowego usera już sobie poradzę:D
Chciałbym zrobić w bashu coś takiego, żeby stworzyć hasło składające się z 4 losowych cyfr. Jest taka możliwość? Chodzi mi o samą metodę, z dodaniem do skryptu jako hasło nowego usera już sobie poradzę:D
-
- Sędziwy Jeż
- Posty: 39
- Rejestracja: 09 lis 2008, 00:47
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
Odp: [bash]Generacja haseł
echo $RANDOM
- valdi74
- Wytworny Kaczor
- Posty: 441
- Rejestracja: 01 maja 2007, 12:58
- Płeć: Mężczyzna
- Wersja Ubuntu: 24.04
- Środowisko graficzne: KDE Plasma
- Architektura: x86_64
- Lokalizacja: Poznań
Odp: [bash]Generacja haseł
Zmienna $RANDOM daje liczby z zakresu 0 - 32767, zatem jeśli chcesz mieć liczbę z zakresu 0-9999 to zrób:
Przy okazji:
http://sjp.pwn.pl/haslo.php?id=2461208
http://sjp.pwn.pl/haslo.php?id=2559057
Kod: Zaznacz cały
$(($RANDOM*9999/32767))
http://sjp.pwn.pl/haslo.php?id=2461208
http://sjp.pwn.pl/haslo.php?id=2559057
Qui vit sans folie, n'est pas si sage qu'on croit
-
- Wytworny Kaczor
- Posty: 418
- Rejestracja: 09 lut 2007, 23:17
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.10
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [bash]Generacja haseł
osobiście wydaje mi się, że użycie operatora reszty z dzielenia jest bardziej eleganckie:
dodatkowo, dzięki printf, w przypadku liczby <1000 dodawane jest 0 na początku.
Kod: Zaznacz cały
echo $(printf "%04d" $[RANDOM%10000])
- valdi74
- Wytworny Kaczor
- Posty: 441
- Rejestracja: 01 maja 2007, 12:58
- Płeć: Mężczyzna
- Wersja Ubuntu: 24.04
- Środowisko graficzne: KDE Plasma
- Architektura: x86_64
- Lokalizacja: Poznań
Odp: [bash]Generacja haseł
Rzeczywiście bardziej eleganckie, ale delikatnie bardziej promuje liczby <= 2767 

Qui vit sans folie, n'est pas si sage qu'on croit
Odp: [bash]Generacja haseł
Zmieniam zdanie. Jak mam to zapisac?
Bo w ten sposob nie dziala. I doczytalem cos ze trzeba podawac w tym miejscu haslo przetworzone przez funkcje crypt. Ale jak ja mam go uzyc? Cos takiego:
Wyskakuje blad:
Kod: Zaznacz cały
pass=$RANDOM
useradd [opcje] -p $pass user
Kod: Zaznacz cały
pass=$RANDOM
pass=crypt($pass)
Kod: Zaznacz cały
./Uzytkownik: 18: Syntax error: "(" unexpected
- el.pescado
- Zakręcona Traszka
- Posty: 734
- Rejestracja: 26 maja 2005, 11:43
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [bash]Generacja haseł
Strzelam:
Kod: Zaznacz cały
man mkpasswd
Odp: [bash]Generacja haseł
No dobrze. Zalozmy ze zwraca mi haselko zakodowane juz z saltem. Ale w momencie, kiedy chce to dodac do skryptu w postaci to w efekcie dostaje cos takiego: czyli nie to o co mi chodzi - cytat z tego co wpisalem. Ktos moglby?:)
Kod: Zaznacz cały
mkpasswd haslo 11
Kod: Zaznacz cały
pass="mkpasswd haslo 11"
Kod: Zaznacz cały
pass="mkpasswd haslo 11"
echo $pass
mkpasswd haslo 11
- el.pescado
- Zakręcona Traszka
- Posty: 734
- Rejestracja: 26 maja 2005, 11:43
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [bash]Generacja haseł
Podwójne cudzysłowy oznaczają napis traktowany dosłownie. Powinieneś użyć operatora ` (na klawiaturze znajduje się na lewo od 1), który uruchamia podane polecenie, i zwraca tekst, który normalnie byłby wypisany na ekranie przez to polecenie:
Kod: Zaznacz cały
pass=`mkpasswd haslo 11`
-
- Piegowaty Guziec
- Posty: 14
- Rejestracja: 05 gru 2008, 13:12
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.04
- Środowisko graficzne: Unity
- Architektura: x86_64
- Kontakt:
Odp: [bash]Generacja haseł
Ja to kiedyś rozwiązałem mniej więcej tak:
Działało bez większych problemów. 
---
1) Co do generowania hasła to możesz skorzystać z czegoś takiego:
2) Ewentualnie jak chcesz stworzyć sobie jakieś fajne hasełko (złożone nie tylko z liczb):
Gdzie n to liczba znaków (w Twoim wypadku 4) z ilu ma składać się hasło.
BTW. Jeśli można spytać, to co tworzysz?
Kod: Zaznacz cały
#Tworzenie hasla dla useradd
haslo=$(openssl passwd -1 $haslo)
#Tworzenie uzytkownika
useradd -p $haslo $login

---
1) Co do generowania hasła to możesz skorzystać z czegoś takiego:
Kod: Zaznacz cały
echo $(( 1000+(`od -An -N2 -i /dev/random` )%(10000-1000+1) ))
Kod: Zaznacz cały
n=4
echo -e "Twoje haslo to:"
head -c "$n" /dev/random | mimencode | head -c "$n"
BTW. Jeśli można spytać, to co tworzysz?

Odp: [bash]Generacja haseł
Szala, mimencode mi nie działa, co mam zrobić? Bo to nie jest jakieś polecenie, którego mój bash nie rozpoznaje. Chcę napisać skrypt, który tworzy użytkownika z jakimiś tam różnymi bajerkami, a co?
- el.pescado
- Zakręcona Traszka
- Posty: 734
- Rejestracja: 26 maja 2005, 11:43
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [bash]Generacja haseł
Szala, mimencode mi nie działa, co mam zrobić?
Kod: Zaznacz cały
$ mimencode
Program mimencode nie jest obecnie zainstalowany. Można go zainstalować wpisując:
sudo apt-get install metamail
Odp: [bash]Generacja haseł
No dobra, dzięki, działa:)
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości