GNU/Linux >> Znalost Linux >  >> Linux

Jak spustit Keychain způsobem, který má pouze první výzvu Shell pro klíče při spuštění?

Když spustím KDE, otevřu několik záložek prostředí a právě jsem přidal keychain na můj ~/.shellrc problém je v tom, že všechny karty po přihlášení vyžadují klíčová hesla. Dělat to je docela nepříjemné. Existuje na to nějaké dobré řešení, aby se všechny karty jednoduše spustily, a jakmile se přihlásím na jednu kartu, všechny budou mít načtené klíče?

Přijatá odpověď:

Zde jsou dvě metody:

Můžete zajistit, aby se klíčenka otevřela pouze na jedné kartě, jako je tato:

if mkdir /tmp/keychain.lock; then
  eval `keychain --eval --agents ssh id_dsa`
  rm -r /tmp/keychain.lock
fi

Ale nemusí to být na první kartě, na kterou se dostanete – možná ji budete muset hledat, což může být stejně nepříjemné. Funguje to, protože mkdir je atomická operace – pouze jeden skript bude úspěšný a ten zobrazí výzvu.

Jiný způsob zobrazí výzvu na všech kartách, ale zavře je, jakmile na kteroukoli z nich odpovíte. Můžete vyzpovídat soubor nebo použít inotify-tools takto:

file=/tmp/keychain-wait
touch $file
inotifywait -e delete_self $file |\
while read file event; do 
 if [ "$event" = "DELETE_SELF" ]; then
   pkill keychain
 fi
done &

keychain
rm $file

Tento představuje výzvu, ale nejprve spustí hlídač, aby zjistil, zda je soubor odstraněn. Poté, co je výzva splněna, je soubor odstraněn a sledující ukončí všechny další čekající výzvy. inotifywait pochází z inotify-tools; inotify je linuxové API. Na jiných Unices může být podobné API, ale pokud ne, potřebujete pouze smyčku, která se dotazuje, zda je soubor smazán.


Linux
  1. Rozdíl mezi vestavěným příkazem a příkazem, který není?

  2. Jak nastavit správné monitorování služeb automatizovaným způsobem? Takže, když se jeden pád automaticky restartuje?

  3. Příkaz „java“ nespustí JVM, který byl nainstalován

  1. Jak spustit skript shellu při spuštění

  2. Jak hledat přesné slovo, pokud má řetězec v sobě tečku

  3. Jak spustit příkaz Vim z shellu?

  1. Jak potlačit výstup z Grepu, aby vrátil pouze stav ukončení?

  2. Jak odstranit prvních N řádků souboru Ascii pomocí příkazů Shell?

  3. Jak přemapovat klíče pod Linuxem pouze pro konkrétní klávesnici