私は現在いくつかのスクリプトを更新しており、他の人が使用できるようにいくつかの便利なスクリプトをリリースする予定です。そのため、さまざまなコンピュータでクラッシュや損傷なしに動作する必要があります。
そのうちの1人は、Fedoraシステムにchromiumpepflashプラグインといくつかの他のものを追加しました。私は元のスクリプトを次のように作成しました。ロシアフェドラに関することそうすることは当時は信頼できなかったようで、迷惑な依存関係がたくさん必要で、時には昔ながらでした。私のスクリプトは私が思うように動作するはずです。Ubuntuスクリプト実際には - Chromeパッケージを使用してプラグインを抽出して正当に再配布できます。
何をしているのかを理解したら、次のようなコピーコマンドを使用してChromeインストールなどにコンテンツをコピーする必要があります(私のFedora 21システムではうまく機能します)。
sudo cp -riv ${tmpdir}/* ${location}/
${tmpdir}
/tmp/tmp.IOfylQBAHT
などがある可能性${location}
がある場所/usr/lib64/chromium-browser/
は、どちらもスクリプトが実行される設定と使用されるオプションによって異なります。通常、2 つまたは 3 つのコピーコマンドが必要です。
私の質問は、すべてのシステムがそれを使用するわけではないと思います(一部のシステムは使用する必要がありsudo
ます)。su
sudo
インストールされていませんまたは設定、一部のシステムでは、ユーザーにroot権限がまったくない可能性があります)。
- それを使っ
sudo
て頑張ってください timeout 2 sudo -v > /dev/null 2>&1
ユーザーがsudoをrootとして使用してタスクを実行できることを確認するなど、奇妙なタスクを使用してください。$?
これらのメッセージを表示して終了できない場合は、To finish installation, please run 'cp -riv ${tmpdir}/* ${location}/' as root
可能であれば続行してください。(テストコマンドは、ユーザーがsudoを使用しようとすると、一部のシステムで悪名高い「このイベントが報告されます」という問題を引き起こす可能性があります。また、ユーザーのタイムアウトなどが延長される可能性があります。源泉)- 終了し、しばらくしてメッセージを表示します。
echo
(参考に編集され、${tmpdir}
適切な位置などに置き換えられる予定です。) ユーザーが root でスクリプトを実行していることを確認します。たとえば、次のようになります。
if [ "$(whoami)" != "root" ]; then echo -e "\e[31mERROR: This needs to be run as root\e[0m"; exit 1 ; fi
- その他:)
答え1
私は個人的にスクリプトsudo
を置くのが悪い考えであるかのように、それについて何も仮定しません。sudo
IMHO、4番目の提案(スクリプトがrootとして実行されていることを確認)が最高です。私は名前の代わりに有効なユーザーIDを確認することを好みます。
[ -n "$EUID" ] && [ $EUID -eq 0 ] || <not root, exit>
これにより、スクリプトの実行に使用するスーパーユーザーツールをユーザーが選択できます。