[bash]Generacja haseł

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
17piotrek

[bash]Generacja haseł

Post autor: 17piotrek »

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
gril
Sędziwy Jeż
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ł

Post autor: gril »

echo $RANDOM
Awatar użytkownika
valdi74
Wytworny Kaczor
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ł

Post autor: valdi74 »

Zmienna $RANDOM daje liczby z zakresu 0 - 32767, zatem jeśli chcesz mieć liczbę z zakresu 0-9999 to zrób:

Kod: Zaznacz cały

$(($RANDOM*9999/32767))
Przy okazji:
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
dawidgarus
Wytworny Kaczor
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ł

Post autor: dawidgarus »

osobiście wydaje mi się, że użycie operatora reszty z dzielenia jest bardziej eleganckie:

Kod: Zaznacz cały

echo $(printf "%04d" $[RANDOM%10000])
dodatkowo, dzięki printf, w przypadku liczby <1000 dodawane jest 0 na początku.
Awatar użytkownika
valdi74
Wytworny Kaczor
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ł

Post autor: valdi74 »

Rzeczywiście bardziej eleganckie, ale delikatnie bardziej promuje liczby <= 2767 :-)
Qui vit sans folie, n'est pas si sage qu'on croit
17piotrek

Odp: [bash]Generacja haseł

Post autor: 17piotrek »

Zmieniam zdanie. Jak mam to zapisac?

Kod: Zaznacz cały

pass=$RANDOM
useradd [opcje] -p $pass user
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:

Kod: Zaznacz cały

pass=$RANDOM
pass=crypt($pass)
Wyskakuje blad:

Kod: Zaznacz cały

./Uzytkownik: 18: Syntax error: "(" unexpected
Awatar użytkownika
el.pescado
Zakręcona Traszka
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ł

Post autor: el.pescado »

Strzelam:

Kod: Zaznacz cały

man mkpasswd
17piotrek

Odp: [bash]Generacja haseł

Post autor: 17piotrek »

No dobrze. Zalozmy ze

Kod: Zaznacz cały

mkpasswd haslo 11
zwraca mi haselko zakodowane juz z saltem. Ale w momencie, kiedy chce to dodac do skryptu w postaci

Kod: Zaznacz cały

pass="mkpasswd haslo 11"
to w efekcie dostaje cos takiego:

Kod: Zaznacz cały

pass="mkpasswd haslo 11"
echo $pass
mkpasswd haslo 11
czyli nie to o co mi chodzi - cytat z tego co wpisalem. Ktos moglby?:)
Awatar użytkownika
el.pescado
Zakręcona Traszka
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ł

Post autor: el.pescado »

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`
Szala
Piegowaty Guziec
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ł

Post autor: Szala »

Ja to kiedyś rozwiązałem mniej więcej tak:

Kod: Zaznacz cały

#Tworzenie hasla dla useradd
haslo=$(openssl passwd -1 $haslo)
#Tworzenie uzytkownika
useradd -p $haslo $login
Działało bez większych problemów. :)

---

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) )) 
2) Ewentualnie jak chcesz stworzyć sobie jakieś fajne hasełko (złożone nie tylko z liczb):

Kod: Zaznacz cały

n=4
echo -e "Twoje haslo to:"
head -c "$n" /dev/random | mimencode | head -c "$n"
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? :D
17piotrek

Odp: [bash]Generacja haseł

Post autor: 17piotrek »

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?
Awatar użytkownika
el.pescado
Zakręcona Traszka
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ł

Post autor: el.pescado »

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
Jak dla mnie wszystko jasne.
17piotrek

Odp: [bash]Generacja haseł

Post autor: 17piotrek »

No dobra, dzięki, działa:)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 11 gości