IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Script v linuxu

Aktivity
Avatar
Neaktivní uživatel:24.12.2015 15:11

Pěkný vánoční den přeji!
Chtěla bych se zeptat, jestli je možné nějak uživateli omezit heslo? Konkrétně na nečíselné vstupy a pak i co se týče délky. Na netu jsem našla akorát toto:

${#passwd}

etc.. Což mi nefunguje

Děkuji za odpověď :)

Odpovědět
24.12.2015 15:11
Neaktivní uživatelský účet
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Jindřich Máca:24.12.2015 15:28

Ahoj, tak passwd sám osobě nic podobného neumí. Já bych tedy doporučoval napsat si na to vlastní příkaz / skript, který nejdřív zadané heslo ověří proti regulárnímu výrazu, splňujícímu dané podmínky, a pokud projde, pošle ho na passwd a pokud ne, udělá třeba něco jiného. :) Problém pak je, že při vyplňování hesla do passwd, nejsou vidět znaky, což se ale dá v rámci skriptu také zařídit. ;)

Editováno 24.12.2015 15:28
 
Nahoru Odpovědět
24.12.2015 15:28
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:24.12.2015 15:31

Zkus se podívat na PAM.

Nahoru Odpovědět
24.12.2015 15:31
Neaktivní uživatelský účet
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Jindřich Máca
Jindřich Máca:24.12.2015 15:34

Další problém bude to přeposlání hesla, protože passwd funguje jako interaktivní konzole, takže to nepůjde řešit klasickou pipou. :D Když nad tím tak přemýšlím, bude to asi muset být skript, protože na příkaz už je to moc komplexní... :-S

 
Nahoru Odpovědět
24.12.2015 15:34
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:24.12.2015 15:35

Ohledně PAM, jednoduchý příklad by byla editace souboru /etc/pam.d/common-password.
Příklad :

password required pam_cracklib.so minlen=6

kromě minlen můžeš nastavit i počet jednotlivých druhů znaků, a to konkrétně pomocí lcredit (malé písmena), ucredit (velké písmena), dcredit (čísla) a ocredit (ostatní).
Takže příklad číslo 2 :

password required pam_cracklib.so minlength=6 dcredit=0

Toto by mělo udělat, co potřebuješ

Nahoru Odpovědět
24.12.2015 15:35
Neaktivní uživatelský účet
Avatar
Odpovídá na Jindřich Máca
Neaktivní uživatel:24.12.2015 15:39

Jsem asi natvrdlá, ale když ho neukládám do žádné proměnné? Tvořím to heslo totiž přes zip.

Nahoru Odpovědět
24.12.2015 15:39
Neaktivní uživatelský účet
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Jindřich Máca:24.12.2015 15:52

Takhle, pokud to šifruješ přes příkaz

zip --encrypt ...

tak ten Ti opět nedává možnost nějak to heslo validovat. Tam vidím jako nejlepší možnost celé to obalit do vlastního skriptu, kde pouze zadávané heslo podrobíš validaci a ostatní přepošleš na zip. Pro tu validaci, pak klidně můžeš použít ten PAM. Každopádně napsat takový skript není úplně snadné...

 
Nahoru Odpovědět
24.12.2015 15:52
Avatar
Odpovídá na Jindřich Máca
Neaktivní uživatel:24.12.2015 16:00

Aha, o to mi právě šlo, používám přesně ten příkaz :( No mám to do školy a chtěla jsem tam ošetřit některé ty případy, protože v zadání mám pouze číselné heslo, ale jak to tak vidím... :D Zkusím na to mrknout a pak dám vědět. Děkuji zatím! :)

Nahoru Odpovědět
24.12.2015 16:00
Neaktivní uživatelský účet
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:24.12.2015 16:18

A nestačilo by použít něco v tomto smyslu?

#!/usr/bin/env bash
echo "Enter the password : "
read -s password
# Tady si to zvaliduj jak potřebuješ
zip -P "$password" # Ostatní argumenty

Samozřejmě není to vůbec bezpečné. Ostatní uživatelé by přes ps mohli vidět heslo, které bylo poskytnuto.

Nahoru Odpovědět
24.12.2015 16:18
Neaktivní uživatelský účet
Avatar
Jindřich Máca
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Jindřich Máca:24.12.2015 16:24

No, něco podobného jsem měl na mysli, ale z hlediska bezpečnosti a předávání těch ostatních argumentů to právě nebude tak jednoduché. :)

 
Nahoru Odpovědět
24.12.2015 16:24
Avatar
Odpovídá na Jindřich Máca
Neaktivní uživatel:24.12.2015 17:16

Tak maximálně použít python, ale to nesplňuje zadání.

Nahoru Odpovědět
24.12.2015 17:16
Neaktivní uživatelský účet
Avatar
mkub
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
mkub:24.12.2015 18:56

v bashi simyslim, ze sa to ani neda urobit uplne bezpecne, ale to asi nebude predmetom zadania..

a aj ja som myslel na to tvoje riesenie, lebo problem bol akurat v tom, ze chybali tam prikazy na pracu s konzolou, preto jej vypisalo tu chybku

 
Nahoru Odpovědět
24.12.2015 18:56
Avatar
Odpovídá na Neaktivní uživatel
Neaktivní uživatel:25.12.2015 1:07

Vůbec mi to přes

read -s password

neprojde, hlásí mi to neplatný vstup..

Python používat nemůžu, to by ten úkol pak docela ztratil význam :)

Nahoru Odpovědět
25.12.2015 1:07
Neaktivní uživatelský účet
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 13 zpráv z 13.