MacOS Sierra'da çalışıyor: Ruby programım var - setup.rb
- Yeni bir Mac'te bir geliştirme ortamı oluşturmak için.
Kullanarak programı başlatmam gerekiyor sudo ruby setup.rb
Çünkü gerektiren bazı şeyler yapar sudo
.
Program, tembel bir programcının başka bir şey yapmak istemesi için yeterince uzun, belki bir fincan kahveyi tokatlamak için yeterince uzun olan (yaklaşık 2 dakika) oldukça uzun süren görevlerle başlar.
İşte benim bilmecem: 2 dakikalık görevden sonra kullanmam gerekiyor security
Anahtarlıkla etkileşime giren komut. Bu komut benden anahtarlığın şifresini isteyecek, bu nedenle giriş beklediğinden dolayı yakut programını durduracak.
Anahtarlık parolasını şifreye geçirebileceğimi biliyorum security
komutunu kullanarak -p <PASSWORD>
bayrağı.
Çoğu (tümü?) Anahtarlık, macOS giriş bilgileriyle aynı şifreyi kullanacak şekilde ayarlandığı için (en azından benim makine paylaşımım ...), Kullanıcının başlamak için girdiği şifreyi iletmek istiyorum. setup.rb
-e security
Komut. Mümkün mü?
Hem çirkin hem de çirkin bir çözüm emniyetsiz doğrudan sudo şifresiyle kullanıcıyı doğrudan yönlendirmek, ancak kendi istemi kullanarak, şifreyi bir değişkende saklamak ve sonra security
komutunu kullanarak -p
bayrağı. Güvenli olmasının dışında, kullanıcının şifreyi iki kez kullandığı anlamına gelir. Fakat bu işi yapacak çünkü kullanıcı bilgisayardan bir fincan kahve içebilir setup.rb
Tüm girişini istemeden işlerini yapabilir.
Elbette daha iyisini yapabiliriz?
security
Komut.
security
önce bir kilit dosyasına dokunun, uzun ilk betiğin arkaplanı ve güvenlik kodunun geri kalanına devam etmeden önce ilk komut dosyasının kilit dosyasını kaldırmasını bekleyin.
sudo script
betiğin içinden ("olabilir" çünküsudo
yapılandırma, kullanıcıdan bir parola bile istenmeyebilir). Belki taşıyabilirsinsecurity
Komut dosyanızın başına komutunu verin ve sonucu daha sonra kullanmak üzere saklayın. Veya arka planda uzun koşucuları çalıştırmak&
?