UI の背後でログイン時に毎回実行される単純なプログラムを作成したいと考えています。私のapplescriptでは、管理者認証を必要とするsudoコマンドを実行しています。実行するたびに認証の必要性を上書きする方法はありますか? ログイン後にこのスクリプトを実行するたびに、ユーザー名とパスワードを入力する必要はありません。助けはありますか?(そして、私は初心者なので、非常に簡単に言えば。) どうもありがとう!
3 に答える
ユーザー名とパスワードをapplescriptコマンドに入力して、それらの資格情報を要求しないようにすることができます. ただし、これらの項目は AppleScript 内にプレーン テキストとして保存されるため、他のユーザーがそれらを見る可能性があることに注意してください。安全ではありませんが、安全かどうかを判断するのはあなた次第です。注: コマンドに「sudo」は不要になりました。
do shell script "whatever" user name "username" password "password" with administrator privileges
パスワードをキーチェーンに保存し、applescript から取得して安全にする方法があります。それを行いたい場合は、次のようにパスワード項目を作成します。
Keychain Access アプリケーションを開き、左側の列でキーチェーンを選択します。次に、[ファイル] > [新しいパスワード項目...] をクリックし、名前を付けて、アカウントの短い名前をアカウントに入力し、パスワードを入力します。パスワードリストでそれを強調表示し、それに関する情報を取得します。[属性] ボタンの下に、その種類を汎用キーとして入力します。これが選択されたのは、それらの数が少なく、検索がはるかに高速であるためです。どんな名前を付けても、下のコードの「パスワード名」に入力する必要があります。
これでapplescriptから次のように使用できます...
set myPass to getPW()
do shell script "whatever" user name "username" password myPass with administrator privileges
on getPW()
do shell script "security 2>&1 >/dev/null find-generic-password -gl \"Your Password Name\" | awk '{print $2}'"
return (text 2 thru -2 of result)
end getPW
幸運を!
別の解決策は、
etc/sudoers
構成ファイル。
そのファイルの設定により、特定のユーザーがスーパーユーザーとして特定のコマンドを(...はい...特定のパラメーターを使用して)実行できるようになります。
コマンド自体に問題はなく、コード内でパスワードが公開されている場合は、これが解決策になる可能性があります。
スーパーユーザーとしてコマンドvisudoを実行して、sudoresファイルを編集する必要があります。
sudoers の改ざんを開始する前に、visudo と sudoers 構文の基本的な知識を取得することを強くお勧めします。そのファイルをいじると、システムに重大な問題が発生する可能性があるためです。
ご存知のように、何行か追加するだけです。
情報については、Google またはここから開始してください http://www.sudo.ws/sudoers.man.html
すべての管理者アカウントがパスワードを入力せずに sudo コマンドを使用できるようにするには、次の手順を実行します。
/private/etc/sudoers ファイルの以下の行を次のように変更します。
%admin ALL=(ALL) ALL
に
%admin ALL=(ALL) NOPASSWD: ALL
この編集は、Terminal および TextEdit アプリケーションを使用して行うことができます。ターミナル アプリケーションを開き、次のコマンドを入力します。
cd ~/desktop
sudo cp -n /etc/sudoers /etc/sudoers.orignal
sudo cp /etc/sudoers sudoers.txt
sudo chmod ug+w sudoers.txt
open sudoers.txt
visudo -c -f sudoers.txt
sudo cp -X sudoers.txt /etc/sudoers
完了したら、デスクトップ上の sudoers.txt ファイルをゴミ箱に入れることができます。
変更を元に戻すには、次のコマンドを使用します。
sudo cp /etc/sudoers.original /etc/sudoers
これは、OS X 10.10.1 を使用してテストされました
単一のユーザーに対して同じことを行いたい場合は、http: //hints.macworld.com/article.php ?story=20021202054815892 を参照してください。
以下は、各コマンドの機能の簡単な説明です。
cd ~/desktop
これにより、デスクトップ フォルダから作業していることを確認できます。
sudo cp -n /etc/sudoers /etc/sudoers.original
これにより、sudoers ファイルがバックアップされます。バックアップを使用して、変更を元に戻すことができます。-n オプションは、既存の sudoers.original ファイルが上書きされないことを保証します。
sudo cp /etc/sudoers sudoers.txt
sudoers ファイルをデスクトップにコピーします。OS X がこれがテキスト ファイルであることを認識できるように、.txt 拡張子が追加されます。
sudo chmod ug+w sudoers.txt
ファイルのパーミッションを変更して、書き込みアクセスを許可します。
open sudoers.txt
TextEdit アプリケーションでファイルを開きます。ファイルを編集して変更を保存する必要があります。
visudo -c -f sudoers.txt
編集したファイルの構文エラーをチェックします。出力は になりますsudoers.txt: parsed OK
。
sudo cp -X sudoers.txt /etc/sudoers
ファイルを /etc ディレクトリにコピーして戻します。