主な質問:
root、管理者、デスクトップユーザー、または非特権ユーザーがログインしていても、ubuntuのデスクトップが表示されたときにスクリプトの1つを「完全に」実行する方法はありますか?
スクリプトは何をしますか?
スクリプトはパーティションをマウントし、そのパーティション内でファイルを探し、最後にそのファイルに基づいて、パーティションを別のパーティションにコピーするという決定を下します。そのコピーは
dd if=/dev/sda2 of=/dev/sda5
スクリプトはいつ正常に実行されますか?
ターミナルからスクリプトを実行すると、スクリプトがスムーズに実行されます
sudo ./my_copying_script
このコマンドは、現在ログインしているユーザーのパスワードを尋ねます。パスワードを入力すると、スクリプトが機能し始めます。
スクリプトがうまく実行されないのはいつですか?
起動時にスクリプトを実行したい。Ubuntuのスタートアップアプリケーションユーティリティを使用して、スタートアッププログラムを設定しました。スクリプトは起動時に実行されましたが、次のエラーを取得するddコマンドで終了しました。
dd: opening '/dev/sda2': Permission denied
上EDKの提案私は、rootとしてmy_copying_scriptの所有者を設定し、SUIDを設定します。これで、my_copying_scriptの権限は(-rwsr-sr-x)です。edkの観点では、suidを設定すると、スタートアッププログラムはその所有者の許可で実行されます。私はそれをしましたが、同じ/ dev / sda2許可拒否エラーが発生しました。
次に、下記のようにddの前にsudoを付けました
sudo dd if=/dev/sda2 of=/dev/sda5
しかし、これは次のエラーを返しました:
sudo: no tty present and no askpass program specified