コンテンツにスキップ

「Pbpst」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
Pkg/AUR テンプレートの更新
アーカイブに移動
タグ: 新規リダイレクト
 
1行目: 1行目:
#REDIRECT [[ArchWiki:アーカイブ]]
[[Category:インターネットアプリケーション]]
[[Category:アーカイブ]]
[[en:Pbpst]]
{{Related articles start}}
{{Related|Pastebin クライアント}}
{{Related articles end}}
pbpst は pb インスタンス (例: [https://ptpb.pw ptpb.pw]) と対話するためのコマンドラインツールです。

== インストール ==
公式リポジトリから {{AUR|pbpst}} をインストールしてください。もしくは、[[AUR]] から [[Git]] 版をインストールすることもできます: {{aur|pbpst-git}}。

== 設定 ==
基本的に ''ptpb.pw'' を使用する分には特別な設定は必要ありません。

== 使用方法 ==
{{ic|pbpst}} はターミナルから実行するコマンドラインツールです。

pb インスタンスに {{ic|command}} の出力を送るには、以下のコマンドを使用します:
$ command | pbpst -S
{{Warning|上記のコマンドは公のペーストサービスにデータを無差別に送信するので注意してください。詳しくは [[#セキュリティとプライバシー]] を参照。}}

ペーストするテキストを手動で入力したい場合、他のコマンドからのリダイレクトを指定しないで {{ic|pbpst}} を起動します:
$ pbpst -S
The data to be sent. Line 1.
Line 2.
And other lines!
.
.
.
入力を終了するには、Ctrl+D を押してストリームを終わらせてください。

{{Pkg|xclip}} を使うことでクリップボードの中身を出力することができます:
$ xclip -o | pbpst -S
デフォルトでは {{ic|xclip}} は {{ic|PRIMARY}} [[クリップボード#予備知識|セレクション]]を使用し、セレクションが空だった場合、{{ic|SECONDARY}} あるいは {{ic|CLIPBOARD}} を使用します。使用するセレクションを指定したい場合、適当な {{ic|-selection}} オプションを {{ic|xclip}} に付けてください。

ファイルを送信するには:
$ pbpst -Sf path_to_file

上記のコマンドはどれも応答として URL が返ってきます:
{{hc|$ echo 'ArchLinux: livin’ on the edge!' <nowiki>|</nowiki> pbpst -S|
<nowiki>https://ptpb.pw/qJrv</nowiki>
}}
この場合、[https://ptpb.pw/qJrv https://ptpb.pw/qJrv] がペーストしたテキストを閲覧できる URL になります。

最後に、pb プロトコルにはペーストをアップロードするための HTML フォームがあります。pb サービスのディレクトリにおける {{ic|/f}} というページにフォームが常に存在します。''ptpb.pw'' の場合、[https://ptpb.pw/f https://ptpb.pw/f] がそれです。

=== ペーストの管理 ===
ペーストを管理するときは、UUID が必要になります。UUID は {{ic|[[en:XDG Base Directory support|$XDG_CONFIG_HOME]]/pbpst/db.json}} にあるローカルデータベースに保存されています。データベースを手動で検索するのは不便なので、ペーストに分かりやすいメッセージを付与して、コマンドラインから検索します。以下の例ではランダムな文章が入ったペーストを作成・削除しています ({{ic|-R}} オプション):
$ thePaste="$(cat /dev/urandom | tr -cd [:print:] | head -c 32)"
$ echo "$thePaste"
kzx['{}uOd6olc`(AZXJc*&q\^TH(plx
$ echo "$thePaste" | pbpst -S -m 'A random test message'
<nowiki>https://ptpb.pw/scrubbed</nowiki>
$ curl '<nowiki>https://ptpb.pw/scrubbed</nowiki>'
kzx['{}uOd6olc`(AZXJc*&q\^TH(plx
$ pbpst -Dq test
deadbeef-dead-beef-dead-000000000000 <nowiki>https://ptpb.pw/scrubbed</nowiki> A random test message N/A
$ pbpst -Ru deadbeef-dead-beef-dead-000000000000
Paste deleted
$ curl '<nowiki>https://ptpb.pw/scrubbed</nowiki>'
status: not found
$ pbpst -Dq test

ペーストはローカルデータベースからも削除されるため、{{ic|-Dq}} で検索することはできなくなります。

UUID が存在しないペーストを管理することはできません。作成時に、既存のペーストと一致する場合など、管理ができなくなります。

{{Tip|特定の URL のペーストを検索したい場合、現在、{{ic|pbpst}} で直接 URL を使ってペーストを検索することはできません。ただし、アドレスの識別子を使ってデータベースを検索することはできます。例えば <nowiki>https://ptpb.pw/</nowiki>'''RAs8''' という URL の場合、太字になっている部分 ({{ic|RAs8}}) が識別子です。この識別子を {{ic|-Dq}} で指定することで一致するエントリを検索できます:
$ pbpst -Dq RAs8
3bac4f7b-79dd-4eb4-b0d0-42b72f1c681e <nowiki>https://ptpb.pw/AFUImP5F76wX_ZrottbtWiOfRAs8</nowiki> - N/A
}}

=== 有効期限 ===
デフォルトでは、作成されるペーストに有効期限は設定されません。サービスのオペレーターが維持している限り永遠に保存されます。{{ic|-x}} オプションを使うことでペーストを削除する秒数を設定することが可能です:
$ thePaste="$(cat /dev/urandom | tr -cd [:print:] | head -c 32)"
$ echo "$thePaste"
cnf[HiC%Ybe't]4aSeIruw5hkB.h~i^B
$ echo "$thePaste" | pbpst -S -m 'A test message that expires after 60s' -x 60
<nowiki>https://ptpb.pw/scrubbed</nowiki>
$ date; curl '<nowiki>https://ptpb.pw/scrubbed</nowiki>'
Tue Apr 12 19:11:41 CEST 2016
cnf[HiC%Ybe't]4aSeIruw5hkB.h~i^B
$ date; curl '<nowiki>https://ptpb.pw/scrubbed</nowiki>'
Tue Apr 12 19:13:06 CEST 2016
status: not found

期限切れのペーストは、リモートサーバーからアクセスすることはできなくなりますが、ローカルデータベースには依然として残ります:
$ pbpst -Dq expires
deadbeef-dead-beef-dead-1111111111 <nowiki>https://ptpb.pw/scrubbed</nowiki> A test message that expires after 60s 1460481140

期限切れのペーストを削除したいときは {{ic|-Dy}} を使ってください:
$ pbpst -Dy
$ pbpst -Dq expires

=== URL の短縮化 ===

{{ic|-s}} オプション (''小文字''の {{ic|-s}}) を使うことで短縮 URL を作成できます:
$ pbpst -s '<nowiki>https://www.archlinux.org/</nowiki>'
<nowiki>https://ptpb.pw/HnSO</nowiki>

== セキュリティとプライバシー ==
pb プロトコルを使用して、個人情報あるいは機密情報を送信してはいけません。

全てのペーストは公に公開されます。{{ic|pbpst}} の {{ic|-p}} オプションを使うことで複雑な識別子を使うことはできますが、だからといってセキュリティやプライバシーが確保されるわけではありません。

サービスのオペレーター、あるいはサーバーにアクセスすることができれば誰でもペーストの中身を全て閲覧できてしまいます。

pb サービスで使われる唯一の認証は UUID です。UUID を失った場合、ペーストを管理する手段は消え失せます。UUID を知ることさえできれば、ペーストは如何様にもできます。

pb プロトコルは誰がペーストを作成したのか受取人が確認する手段を用意していません。

=== GnuPG を使ってペーストに署名 ===
GnuPG の設定と使用方法の詳細は [[GnuPG]] のページを見てください。

コマンドの出力にクリア署名を付けるには:
$ command | gpg2 --clearsign | pbpst -S
gpg: using "FFFFFFFF" as default secret key for signing
<nowiki>https://ptpb.pw/scrubbed</nowiki>
$ curl '<nowiki>https://ptpb.pw/scrubbed</nowiki>'
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
A signed message
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQEcBAEBCAAGBQJXDaNCAAoJEGEa8/dBnOWlUe4H/iviaH5Y4lx78ch5IyNSkRbp
Wzbk4aJsLYMj4idmE82Ligg4d7lZPK1q+65QZIygSeXm7Vo5/YzP7kztenHzxA0G
SvGuvML3RFwBtFb0AWqLE7Mt9zfq7PLSzhF6Qh87TklMSaluN86f5WSZmXca4SZG
BL6eRJtjy7TEWa7/hJc0b1pn851KTBqjYcX6T79UcyR3eE5KLUrqICrY5lVbq1Qm
UpstZWwgfPcchnoU2DfK3auxVRo37oHDT7N6VjEZyLP5ipbp6YPTLiCJhtjxhbLb
x+nNqFYS1USy8EFo/ftudrQSLfhMRVYuQYFalrNGK3r5dw9dAXv5gdiXIz5rsPI=
=FvyE
-----END PGP SIGNATURE-----

{{ic|gpg2}} では署名したいメッセージを入力することが可能であるため、以下のコマンドを使うことで送信したいデータを手動で入力することができます:
$ gpg2 --clearsign | pbpst -S

クリア署名の欠点は不可逆だということです: GnuPG に署名を削除するためのツールは存在しません。また、署名によって最後の行の文字列が変わってしまう可能性があります。クリア署名を使わない方法として {{ic|--sign --armour}} を使用する方法も存在します:
$ command | gpg2 --sign --armour | pbpst -S
または:
$ gpg2 --sign --armour | pbpst -S

上記のコマンドで作成された署名は {{ic|--decrypt}} で検証あるいは削除することができます:
$ echo 'A signed message' | gpg2 --sign --armour | pbpst -S
gpg: using "FFFFFFFF" as default secret key for signing
<nowiki>https://ptpb.pw/scrubbed</nowiki>
$ curl '<nowiki>https://ptpb.pw/scrubbed</nowiki>' | gpg2 --decrypt
A signed message
gpg: Signature made Wed 13 Apr 2016 04:02:57 AM CEST using RSA key ID FFFFFFFF
gpg: Good signature from "-"

2021年7月3日 (土) 09:02時点における最新版