web-dev-qa-db-ja.com

ここでターミナルを開き、ルート(OS X)として

「OpenTerminalHere」( http://www.entropy.ch/software/applescript/ )と呼ばれる非常に素晴らしいアップルスクリプトがあります。これをFinderのツールバーに追加して、起動するときにクリックすることができます。そのディレクトリに設定されているターミナルコンソール。

時々私はrootになる必要があるので、ターミナルを起動してSudo -iのようなことをしてから、変更する必要があります 前のディレクトリに戻る Sudoコマンドが/ var/rootに私を着陸させているからです。

エイリアスやbashプロファイルなどをロードするのが好きなので、Sudo-iを使用しています。

スクリプトはapplescriptであり、これがその仕組みの重要な部分です。

 ... 
 cmdを "cd"に設定&the_pathの引用形式& "&& echo $ '\\ ec'" 
 ... 
アプリケーションに通知"Terminal" 
 activate 
コマンドcmd 
でスクリプトを実行します

これをrootとしてロードするにはどうすればよいですか?

2
cwd

実際、理解するのは非常に複雑でしたが、結局これを/etc/profileファイルに追加しました。

 directory = `pbpaste` 
 if [-d" $ directory "];次に
 cd "$ directory" 
 fi 

その後、 "Open Terminal Here"スクリプト を使用し、ターミナルを起動する前に現在のパスをクリップボードにコピーするように変更しました。

アプリケーション「Finder」にクリップボードをthe_path 
に設定するように指示します。

次に、ターミナルをアクティブ化するコードにSudo -i部分を追加しました。

 cmdを "cd"に設定&the_pathの引用形式& "&& echo $ '\\ ec' && Sudo -i" 
 
アプリケーション "Terminal" [.____に通知します。 ]

したがって、パスがクリップボードにコピーされ、アイコンを使用してAppleScriptを起動し、プロファイルが(ルート用に)ロードされると、ディレクトリに変更されます。

1
cwd

アクセスしようとしているディレクトリは何ですか?ホームエイリアス(「〜」)はルートとして機能しないため、絶対パスを使用する必要がある場合があります。

AppleScriptを使用してターミナルをrootとして起動するには、次のようなことを行うことができます(テストされていません!)。

tell application "Terminal"
    activate
    tell application "System Events" to keystroke "Sudo -i" & return
    do script with command cmd

これにより、開いているFinderディレクトリに変更するコードを実行する前に管理者権限が付与されます。実行しているスクリプトに注意しないと、かなり危険です。

より一般的には、AppleScriptに次のようなコードでSudoコマンドを実行させることができます。

set shellOutput to do Shell script cmd with administrator privileges
display dialog shellOutput

ここで、「cmd」は実行するコマンドです。 (これにより、コード結果のポップアップも表示されます。)

0
speedofmac