Portál AbcLinuxu, 8. května 2025 04:24

Dotaz: spuštění programu s nutností zadat heslo

7.4.2018 14:20 honza
spuštění programu s nutností zadat heslo
Přečteno: 759×
Odpovědět | Admin
Ahoj.

Jak je možné zajistit, aby určitý program vyžadoval zadání (předvoleného) hesla pro jeho spuštění? Je možné, aby při předem definované nečinnosti program vyžadoval heslo opět?

Idea: kliknu na ikonu, zobrazí se dialogové okno s výzvou k zadání hesla. Nejlépe pouhým přidáním parametru v nastavení ikony. Pokud nestisknu klávesu, nepohybuji s myší nějakou dobu, program bude vyžadovat heslo znovu.

Vše ostatní musí být funkční, takto se bude chovat pouze jeden určitý program (nejlépe jedna instance programu)

Díky

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

7.4.2018 16:35 NN
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jasne, jak si to naprogramujes tak to bude fungovat.
8.4.2018 13:02 jejda
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Odpovědět | | Sbalit | Link | Blokovat | Admin
#!/bin/sh
heslo=1234
program=/usr/bin/yes
timeout=10000 # v milisekundách

read -p "Zadej heslo: " password
if [ "$heslo" = "$password" ]; then
	exec $program > /dev/null &
	else
	echo "špatné heslo!"
	exit 0
fi

ask() {
	password=""
	read -p "Zadej heslo: " password
	if [ "$heslo" = "$password" ]; then
	pkill -18 -f $program
	fi
}

while true; do
	if [ $(xprintidle) -gt $timeout ]; then
		pkill -19 -f $program
		ask
	elif [ "$heslo" != "$password" ]; then
		ask
	fi
	sleep 1
done
Nesměj se, je to hnusný já vím :) no minimálně nasměrovat by tě to mohlo. Musíš mít nainstalovaný program xprintidle (arch a debian to má v repo) abys měl jak detekovat onu nečinnost. Testoval sem to na programu yes. Jak deset sekund nepohneš myší nebo se nedotkneš klávesnice tak se program zapauzuje a otravuje dokud nezadáš správný heslo. Drsnější způsob by asi byl vytvořit speciálního uživatele, všem ostatním odebrat práva na spouštění a volat ten program přes sudo? Neumím si teda moc představit k čemu by takový masochismus mohl být v praxi dobrý. S gui a klikáním na ikony netuším vůbec.
8.4.2018 14:05 NN
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Pan by si ale pral vykouzlit GUI wrapper. Mozna ze kdyby prozradil o co se konkretne jedna dalo by se to vyresit uplne jinak.
8.4.2018 14:58 MadCatX
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
To řešení výše stejně nebude fungovat, uživateli, který by tuhle ochranu chtěl obejít se stačí podívat do seznamu procesů a poslat SIGCONT ručně. Mám dojem, že bez podpory tohoto chování v konkrétní aplikaci se toho nedá moc dělat.
8.4.2018 15:03 honza
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Díky. Hnusný to není, funguje to, gui a ikona v podstatě vyřešena. spouštěč : terminator --execute tvuj_skript. Vyjede konzole a chce heslo, po zadání se spustí program. Ovšem nefunguje pauza programu. Heslo to sice vyžaduje po nastavené době, ale program je pořád přístupný i bez jeho zadání. Chci takto zajistit jeden prohlížeč webu, protože rodina je mimořádně nedisciplinovaná a pořád je někdo přihlášený, má tam svoje nastavení a naučit je se chovat jinak je naprosto nemožné. Nejde o nějaké extra zabezpečení soukromí, pouze o znepohodlnění obsluhy tak, aby prostě klikli vedle a tam ten svůj bordel klidně měli...
8.4.2018 15:13 NN
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Chci takto zajistit jeden prohlížeč webu, protože rodina je mimořádně nedisciplinovaná a pořád je někdo přihlášený, má tam svoje nastavení a naučit je se chovat jinak je naprosto nemožné. Nejde o nějaké extra zabezpečení soukromí, pouze o znepohodlnění obsluhy tak, aby prostě klikli vedle a tam ten svůj bordel klidně měli...
No vidis a mysto vymysleni zaheslovani prohlizece a podobnych nesmyslu by stacilo pouzivat uzivatelske profily.
8.4.2018 15:24 honza
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Bohužel nestačilo. To třeba odběhneš na 20 minut, někdo přijde a nakliká zázrak v tvém profilu, pokud dáš např. více spouštěčů, každý s jiným profilem, myslíš, že je donutíš klikat na ten svůj? Jasně že ne!
8.4.2018 15:58 n
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Tak clenum rodiny proste udelej vlastni uzivatelske ucty, tak je to cele uz pomerne hodne desetileti vymyslene, ze kazdy uzivatel ma svuj ucet. Zaheslovat screensaver a automaticky ho zapnout po nastavitelne dlouhem timeoutu umi asi vsechny soucasne desktopy, takze se proste budou muset prepnout na sveho uzivatele, coz splni tu edukativni funkci. To co se snazis vymyslet je tak trochu hloupost.
8.4.2018 16:16 honza
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Ano, tak by to mělo být. To ovšem nikdy neprošlo. Cituji: "Já se nechci přihlašovat, nechci pořád zadávat heslo, je to (něco,data...) někde u tebe, kde to mám, dřív to bylo jinak..."

Ale oni v podstatě nechtějí škodit i když to dělají. Takže nyní je tam openbox s tint2 a na liště jsou programy, které se používají. Nic přenastavit nemohou (ani nechtějí) a problém je v podstatě vyřešen až na chlív v prohlížeči internetu a to se nyní snad také odbourá.
pepe_ avatar 8.4.2018 17:33 pepe_ | skóre: 48
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo

"nechci pořád zadávat heslo"

tomu chceš zamezit zadáváním hesla ?

8.4.2018 17:51 Honza
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Ano. Jeden prohlížeč půjde spouštět normálně, druhý bude vyžadovat heslo. Spustí si pouze ten nezaheslovany.
Řešení 1× (Queria Sa-Tas)
8.4.2018 18:13 MadCatX | skóre: 28 | blog: dev_urandom
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
A nestačil by teda jeden obecný účet bez hesla a klidně s autologinem a účet druhý, chráněný helsem, ke kterému bys měl přístup jenom ty?
8.4.2018 19:53 NN
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
+1 presne.
8.4.2018 22:46 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
+1 Přesně tak. Třeba tak s tím, že se zařadíš do jejich skupiny a tak budeš mít přístup (možnost nahrát data) i k nim pod běžným účtem.
9.4.2018 07:06 2017
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
ja jsem pochopil, ze oni mu do toho lezou jak do samosky. a login/logout je tak trochu opruz. proste je to takovej elektrickej ohradnik. parada!
Řešení 1× (Queria Sa-Tas)
k3dAR avatar 9.4.2018 08:39 k3dAR | skóre: 63
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
misto login/logout je preci moznost switch-user ;-)
porad nemam telo, ale uz mam hlavu... nobody
9.4.2018 12:25 MadCatX | skóre: 28 | blog: dev_urandom
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Přesně. Odcházím od počítače, zamknu obrazovku, druhý uživatel na lockscreenu klikne na "Switch user", udělá si, co chce a já se po návratu zase přihlásím ke svému účtu. Je to určitě bezpečnější než různé zamykání aplikací způsoby, které mají sloužit k úplně jinému účelu.
8.4.2018 18:06 jejda
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
To sem nevěděl že veliké gui programy typu webový prohlížeč atd si po spuštění začnou žít svojim vlastním životem a jsou immuní na SIGSTOP a SIGCONT. Leda to zkusit přepsat tak že jak vyprší timeout tak prohlížeč načisto zabít a po zadání hesla ho znovu spustit? Vyhodit pryč tu funkci a while smyčku ořezat na
while true; do
	if [ $(xprintidle) -gt $timeout ]; then
		pkill -9 -f $program
	fi
	sleep 5
done
To mi přijde jako docela prasečina, přerušily by se tím downloady a vůbec všecko co prohlížeč dělá na pozadí. Když takovým brutálním stylem zavraždíš třeba firefox, tak ten si při dalším spuštění myslí že spadl a začne nabízet safe mode. To taky nechceme ..žejo. Na normální ukončení SIGTERM (pkill -15) zas některé prohlížeče reagujou tak, že zobrazujou potvrzovací dialog jestli ses náhodou neukliknul. Co třeba nějaký autozamykací addon přímo pro prohlížeč, není? Já to mám třeba nastavený tak, že pokaždé jak zvednu prdel od klávesnice tak zmáčknu win+l a spustí se program xtrlock . Náhodný kolemjdoucí takto může pozorovat co se na obrazovce děje ale nemůže do toho zasahovat. Ideální třeba pro děcka na pohádky :) .Rozpoznávání obličejů je taky zatím docela scifi takže pokud potřebujou s počítačem pracovat a jsou to nedisciplinovaní bordeláři, jsou ty oddělené profily nutnost. Takto je jenom otázka času než někdo někomu zničí něco důležitýho.
8.4.2018 18:27 Honza
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Oddělené profily nebudou v případě 2 různých prohlížečů potřeba, popř. Je možné spouštět s parametrem profilu. A že přes nabídku či terminál půjde program spouštět normálně nevadí, protože to nikdo dělat nebude.
8.4.2018 23:54 jejda
Rozbalit Rozbalit vše Re: spuštění programu s nutností zadat heslo
Napadlo mě ještě, že by se browser nemusel znásilňovat signálama (který stejně nefungujou) ale stačilo by kdyby window manager jenom skryl okno. Není to nic neprůstřelnýho ale proti náhodným kolemjdoucím nenechavým navšeckoklikačům by to mělo stačit. Používam icewm ten skrývat okna umí a počítám že ostatní wm by to mohly zvládat taky. Vivaldi jako prohlížeč. Trochu jsem ten script předělal no budeš si ho ale muset upravit podle sebe.
#!/bin/sh
heslo=1234
program=vivaldi-stable
timeout=60000 # v milisekundách
cmd_hide="icesh -class $program setState Hidden 16"
cmd_unhide="icesh -class $program setState Hidden 12"

ask() {
	password=""
	read -p "Zadej heslo: " password
	if [ "$heslo" = "$password" ]; then
	$cmd_unhide
	fi
}

if pgrep -u "$(whoami)" -x "vivaldi-bin" > /dev/null; then
	ask
	else
	read -p "Zadej heslo: " password
	if [ "$heslo" = "$password" ]; then
		exec $program 2> /dev/null &
	else
		echo "špatné heslo!"
		exit 0
	fi
fi

while true; do
	if [ $(xprintidle) -gt $timeout ]; then
		$cmd_hide
		ask
	elif [ "$heslo" != "$password" ]; then
		echo "$(date +%H:%M:%S) špatné heslo!"
		ask
	fi
	sleep 1
done
Trochu napytel je, že mi takto spuštěný vivaldi startuje minimalizovaný to se dá přežít, horší je že když ten script típnu (ctrl+c) tak chcípne i prohlížeč. Kurnik pět a půl řádku to má a už takových bugů, ze mě programátor nikdy nebude xD.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.