スクリプトが起動時にmacchanger経由でMACアドレスを変更しないのはなぜですか?Ubuntuベース

スクリプトが起動時にmacchanger経由でMACアドレスを変更しないのはなぜですか?Ubuntuベース

私は最近、bash に関する限られた知識を使って、次の 2 つのことを実行するスクリプトを作成しました。

  1. ホスト名を変更するはずです
  2. そして、MACアドレスを変更します。

指示を/etc/rc.localBacktrack 5 r3 マシンに直接入力しましたが、MAC アドレスを変更できないようです。macchanger はすでにインストールされています。ホスト名は問題なく変更されますが、MAC アドレスは変更されないようです。マシンが仮想ボックスで実行されているからでしょうか?

私が入れたものは次のとおりです/etc/rc.local:

dhclient -r && rm -f /var/lib/dhcp3/dhclient* && sed "s=$(hostname)=REPLACEME=g" -i /etc/hosts && hostname "$(echo $RANDOM | md5sum | cut -c 1-7 | tr a-z A-Z)" && sed "s=REPLACEME=$(hostname)=g" -i /etc/hosts && macchanger -e eth0 && macchanger -e wlan0 && dhclient

私は && 演算子を使ってこのように試しました。また、各行にコマンドを入れても試しました。ホスト名は毎回変わりますが、MAC アドレスは変わりません。

ご協力いただければ幸いです。

答え1

macchanger -e eth0との結果をmacchanger -e wlan0ファイルに書き込んでみてください。そして、 の起動時にその名前のデバイスが存在するかどうかを確認しますifconfig。たとえば、これを に入力します/etc/rc.local:

macchanger -e eth0 &> /tmp/devices.txt
macchanger -e wlan0 &>> /tmp/devices.txt
ifconfig &>> /tmp/devices.txt

説明:
&> /tmp/devices.txt標準出力と標準エラー出力を /tmp/devices ファイルに書き込みます。マシンを起動した後、このファイルを調べて、そこからヒントを得ることができます。

答え2

頼りにしてくれてありがとう。すでに試してみましたが、うまくいきませんでした。どうやら「startx」と入力する前に macchanger が実行できないようにする何かがあるようです。上位リングでしか実行できないのでしょうか? コマンドを別のファイルに入れ、そのファイルに対して chmod +x コマンドと「sudo /etc/init.d myfile defaults」も実行しました。これで、rc1.local から rc5.local まですべてにファイルが追加されたことがわかりました。最終的に、GUI のスタートアップ プログラムにファイル パスを入力したところ、startx を実行した後に MAC アドレスが変更されました。

編集: うわっ、Gmail アカウントが間違っていました。正しいアカウントで再投稿します。

関連情報