Automator uygulamasına şifre aktarma


9

Sistemimde bir FTP bağlantısı açmak için aşağıdaki kabuk komut dosyasıyla bir Automator uygulaması yazdım:

sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
osascript -e 'tell app "Finder" to display alert "SFTP Opened"'

Bu sudo komutunun bir parola gerektirmesi dışında tam olarak beklendiği gibi çalışır . Aynı komut Terminal'de çalıştırıldığında, bir parola ister, ancak Automator uygulaması olarak çalıştırıldığında, herhangi bir giriş istemez. Automator betiği içinde şifreyi bu sudo'ya programlı olarak iletmek için yine de var mı? Bunun güvenli bir uygulama olmadığını biliyorum, ancak yine de yapmak istiyorum, çünkü sistemim benden başka biri tarafından makul derecede güvenli ve el değmemiş.

Bir "kabuk betiği ... yönetici ayrıcalıklarıyla" yöntemi aşağıdaki hatayı veriyor:

resim açıklamasını buraya girin

Yanıtlar:


10

AppleScript bunu kullanarak şunları yapmanıza izin vermelidir with administrator privileges:

osascript -e 'do shell script "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges'

Bu parolayı geçmez, ancak standart bir OS X istemi ister:

Bunu, Automator iş akışınızda aşağıdaki iki yoldan biriyle kullanabilirsiniz:


1
@Asascript bash içindir :) AppleScript Automator eyleminde saf AppleScript istiyorsanız, osascript'i şu şekilde kaldırın: do shell script "sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist" with administrator privileges( Bu resimden aşağıdakilerden birini yapın )
grg

1
Evet, bu cazibe gibi çalıştı! Sabrınız için teşekkürler ... aptal bana!
Öğrenci

2

beklemek

Bunun yerine , etkileşimi komut dosyası oluşturmak için bekle gibi bir araç kullanabilirsiniz sudo. expectbu durum için tasarlanmıştır.

bekleme - etkileşimli programlarla programlı diyalog

Aşağıdaki komut dosyası iki komutunuz için yeterli olabilir:

#!/usr/bin/expect -f
spawn sudo -s launchctl load -w /System/Library/LaunchDaemons/ftp.plist
send "my-secret-password\n"

AppleScript ve yönetici ayrıcalıklarına sahip

Alternatif bir yaklaşım, AppleScript'in do shell script komutunu kullanmaktır. Komut, yönetici ayrıcalıkları olan bir seçenek sunar. Apple'ın Teknik Not 2065 kapakları kabuk betiğini ayrıntılı olarak yapar.

Eko

Bu soruna diğer yaygın yaklaşımlar echoparolayı sudobir kanalla geçirmeyi içerir . Bu StackOverflow cevabı, bu ve diğer ilgili yaklaşımları tartışır, bash'de bir komut isteyen bir komuta şifre nasıl verilir?

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.