
Ubuntu日本語フォーラム
ログインしていません。
https://forums.ubuntulinux.jp/viewtopic.php?pid=32225#p32225
の経緯で、Ubuntu Tips向けに実行ファイルを作成してみようと思ったのですが、
https://forums.ubuntulinux.jp/post.php?tid=4977&qid=32241
とのご指摘を頂きました。
これを踏まえて、Ubuntu Tips向けに実行ファイルを配布するにはどうするのが望ましいのか、数点お伺いしたく存じます。
(続きます)
オフライン
(続きです)
お伺いしたいのは以下の点です。
まとまらない箇条書き崩れになってしまう事をご容赦下さい。
【当方の考えた事】
・MBR,PBRのバックアップツールを、UbuntuやLinux、Unixに固有の知識を持たない人、PCそのものにあまり明るくない人向けに提供してみたい
・具体的な状況は、LiveCD起動後、インストールを始める前にこれを使ってバックアップを取る。
・MBR,PBRの件はUbuntuフォーラムで頻出するので、Ubuntu Wikiに載せて見た。
【バイナリ実行ファイルの信頼性を担保するには?】
・Ubuntu Wiki の添付ファイル の形式で可能な事か否か
・添付ファイル以外の形式で実行ファイルを配布するには?
【Ubuntu Wiki での配布ファイルの信頼性を担保するには?】
・そもそもバイナリだとダメだが実行可能テキストなら添付ファイル形式でも良いのかどうかと、その理由 ※これをダウンロードする人はシェルスクリプトやプログラムの知識がない前提
【当方の考えた事2】
・Ubuntu向けに個人がアプリをファイルを配布するものとしてPPAがあるが、PPAリポジトリを使うための手順は複雑すぎるので、やろうと考えている事に適さない。
・PPAのウェブサイトに載っている.debをリポジトリ登録なくダウンロードする、のは問題ないのか?
・そもそもバイナリの改竄を防ぐにはどんな条件を満たせばいいのか
・結局どうするのが良いのか
・正しい手順はどこで学べばよいのか
・こういう話はどこで相談すればよいのか※個人的にIRCは同時刻に臨場する必要がある(と認識してる)ので難しい
・そもそも素人が調子に乗って出張るな、という話なのか
まとまりませんが、よろしくお願い申し上げます。
オフライン
配備側の問題さえなければ、
・PPAにアップロードして、https://launchpad.net/~USER/+archive/ppaを開き、.debを直接クリックでダウンロードしてもらう。
がベターだと思います。
少なくとも、
・HTTPSで、適切な証明書が用意されている経路からダウンロードすることで、外部からの改ざんは防止できる。
・HTTPSを利用できる環境として、PPAの当該ページ(リポジトリに足す場合は別途公開鍵の登録等があるのでHTTPSではない)・Wikiがありえる。
・Wiki関連は誰でもファイルをさしかえることが可能なので良くない。
ということで、PPAがもっともラクであろうと思われます。
なお、ちょっとだけヒドいことを言うと、
・そうしたことを自力で考慮できない作者や利用者こそが「最も弱い鎖」になるので、配布手順をいくら考えてもムダ。
という側面もあるにはあります。
オフライン
お返事ありがとうございます。
諸々承知致しました。
ひとまず現段階で当該Wikiページ存在するのは問題がありそうだったので、削除致しました。
debパッケージの作り方やPPAの使い方を学習してこようと思います。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
kiyoshiさんへ:
経緯により当該Wikiページの速やかな削除が必要と思い、ページを消してしまったため、
こちらに誘導したくせにリンク先がない、という状態になっており申し訳ございません。
以下にコードを貼ります。
#!/bin/sh # 確認 zenity --question --no-wrap --title="ブートセクタの保存ツール" --text="これからブートセクタ(MBR,PBR)のバックアップを行います。\n今、Ubuntuで起動している場合には、OKを押してください。" if [ $? != "0" ]; then zenity --info --title="ブートセクタの保存ツール" --text="キャンセルされました。\nブートセクタの保存ツールを終了します。" exit 1 fi # 保存先チェック if [ -e $HOME/bootsect ]; then zenity --question --no-wrap --title="ブートセクタの保存ツール" --text="$HOME/bootsect ディレクトリが既に存在します。\n\nこのディレクトリの中の、以前のブートセクタのバックアップファイルやログファイル(list.txt)を\n削除(上書き)しても良いですか?\n\n良ければ、OKを押してください。" if [ $? != "0" ]; then zenity --info --no-wrap --title="ブートセクタの保存ツール" --text="$HOME/bootsect ディレクトリの\n名前を変更してから再度このツールを実行してください。\n\nブートセクタの保存ツールを終了します。" exit 2 fi else mkdir $HOME/bootsect fi # 確認 zenity --info --no-wrap --title="ブートセクタの保存ツール" --text="$HOME/bootsect ディレクトリの中にブートセクタを保存します。" # 管理者権限取得 gksudo -m "ディスクの情報を集めるのに管理者権限が必要となります。ご自身のパスワードを入力して下さい。" echo > /dev/null # MBR取得 DEVICELIST=$(sudo fdisk -l | grep /dev/sd | grep ディスク | cut -d" " -f2 | cut -d: -f1) for a in $DEVICELIST do DISKID1=$(sudo fdisk -l | grep -A 3 "ディスク $a" | tail -n 1 | tr -d " ") NAME1=$(echo $a | cut -d/ -f3) sudo dd if=$a of=$HOME/bootsect/${NAME1}mbr bs=512 count=1 2> /dev/null && zenity --info --no-wrap --title="ブートセクタの保存ツール" --text="\nディスク ${a}:${DISKID1} のMBRが\n${NAME1}mbr にバックアップされました。" && echo "${DISKID1} ${NAME1}mbr" > $HOME/bootsect/list.txt done # 管理者権限取得 gksudo -m "ディスクの情報を集めるのに管理者権限が必要となります。ご自身のパスワードを入力して下さい。" echo > /dev/null # PBR取得 DEVICELIST=$(sudo fdisk -l | grep /dev/sd | grep -v ディスク | cut -d" " -f1) for a in $DEVICELIST do NAME1=$(echo $a | cut -d\/ -f3) FILESYSTEMTYPE=$(sudo fdisk -l | grep $a | grep -v ディスク | tr -d \* | tr -s " " | cut -d" " -f5) if [ $FILESYSTEMTYPE != 82 ] && [ $FILESYSTEMTYPE != 5 ]; then UUID1=$(sudo vol_id --export $a | grep ID_FS_UUID= | cut -c12-) sudo dd if=$a of=$HOME/bootsect/${NAME1}pbr bs=512 count=1 2>/dev/null && zenity --info --no-wrap --title="ブートセクタの保存ツール" --text="\nパーティション ${a}:UUID=${UUID1} のPBRが\n${NAME1}pbr にバックアップされました。"; echo "$UUID1 ${NAME1}pbr" >> $HOME/bootsect/list.txt fi done # 終了 zenity --info --no-wrap --title="ブートセクタの保存ツール" --text="作業記録が bootsect ディレクトリ(フォルダ)の list.txt に保存されました。\n\nCDからの起動の場合、システムを終了すると bootsect ディレクトリごと、\nその中に保存されたブートセクタのバックアップは無くなってしまい、危険です。\n\n$HOME ディレクトリを表示しますので\nbootsect ディレクトリを内蔵ハードディスクやUSBメディアなどにコピーしておいて下さい。\n\nOKを押すと、ブートセクタの保存ツールを終了します。お疲れさまでした。" # ホームを開く nautilus $HOME exit 0
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン
※規約違反により追放されたユーザの投稿は、ログインユーザにのみ表示されます。
オフライン