タグ

bashに関するpeketaminのブックマーク (30)

  • 原理原則で理解するbashの仕組み - Qiita

    はじめに 以前書いたエントリー、重大な脆弱性(CVE-2017-5932)で少し話題になったbash4.4の補完機能の便利な点で、bash4.4からでないとタブの補完機能のソート処理が制御できないという問題について、ソースコードレベルで調べた結果をまとめていたのですが、bashの実装そのものを深く掘り下げ過ぎてしまい、内容が膨大になったので、何回かに分けて書こうと思います。 今回はbashが起動されてからインタラクティブモードでキーボードの入力を待ち受けるまでのお話です。普段使っているbashがどのような処理を行っているのか一緒に覗いてみませんか? 検証ソースコード Bash version 4.1.0(1) release GNU bashの生誕 bashのプロセスが起動されるのはOSへのログイン時にユーザーのログインシェルがbashに設定されている場合、あるいはログイン後に明示的にba

    原理原則で理解するbashの仕組み - Qiita
  • bashのブレース展開についてまとめ - Qiita

    bashのブレース展開についてまとめていきます。 ※今回はBash 4 の環境を利用して検証しています。 4 より前の環境では再現できない場合があります。 ブレース展開って何? Linuxのシェルである、bashの機能の一つです。 ブレース展開は任意の文字列を生成するために使用されます。 指定された文字列は、その文字列と、展開の前後に付けた、追記を有する全ての可能な組み合わせを生成するために使用されます。 超簡単に言うと複数の文字列に任意の文字列を加えたり、指定した文字数字を展開できる機能です。 と、書いてもよくわからないですね。 語彙力がなさすぎるのでこればっかりはどうしようもないです。 以下、使用例を交えて解説していきます。 基的な書式 {文字列1,文字列2,...,文字列N} {<始まり>..<終わり>} {<始まり>..<終わり>..<インクリメントしたい数>} (Bash 4

    bashのブレース展開についてまとめ - Qiita
  • 技術/shell/".bash_profile"と".bashrc"の使い分け - Glamenv-Septzen.net

    id: 383 所有者: msakamoto-sf 作成日: 2009-05-09 02:53:07 カテゴリ: シェルスクリプト [ Prev ] [ Next ] [ 技術 ] bash_profile, bashrcの基的な知識のメモ。bashの日語manページより抜粋&まとめ。 "~/.bash_profile"を読み込む場合 bashが対話的なログインシェルとして起動されるか、 --login オプション付きの非対話的シェルとして起動されると、/etc/profile からコマンドを読み込んで実行した後、以下の順番でファイルを探し、最初に見つかった読み込み可能なファイルからコマンドを実行する。 ~/.bash_profile ~/.bash_login ~/.profile "~/.bashrc"を読み込む場合 ログインシェルでない対話的シェルとして起動されると、~/.bas

  • bashで素晴らしく生産性を上げるための10のテクニック | Yakst

    よく使うコマンドの組み合わせを関数として.bashrcに書いておく事で、色々な操作が簡単になる。筆者の.bashrcとそこに書かれた実用的な関数のサンプル、使用例。 (訳者注) 原文タイトルが「Ten tips for wonderful bash productivity」なので、10のテクニックというタイトルにしていますが、実際には9つしかありません。原文筆者に指摘したところ人も自覚されていなかった模様?です。悪しからず。 私はいつも自分のbashの環境をいじったり直したりしています。同じような問題に何度も遭遇しては、その度に解決策を探さねばなりません。うんざりして座り込んでしまうまでそれは続きます。お前いつも座って仕事してるだろって? ええ、でももう皆さんお分かりでしょう。そういう場合は、カスタム関数を作って、それを.bashrcに書き込んで、ログインする可能性のあるマシン全部に入

    bashで素晴らしく生産性を上げるための10のテクニック | Yakst
  • cdの引数を絶対パスにしてコマンドヒストリに残す - ももいろテクノロジー

    cdの引数が相対パスのままコマンドヒストリに残って便利な例が思いつかないので、絶対パスでコマンドヒストリに残すようにする。 具体的には、以下のシェル関数を.bashrcに書く。 if [[ -n "$PS1" ]]; then cd() { command cd "$@" local s=$? if [[ ($s -eq 0) && (${#FUNCNAME[*]} -eq 1) ]]; then history -s cd $(printf "%q" "$PWD") fi return $s } fi いくつかの重要なポイントを以下に記す。 cdの定義を上書きしているが、このような場合中で普通にcdを呼ぶと再帰してしまうためcommand組み込みコマンドを使う。 "$@"の代わりに"$1"を使うことはできない。cdを引数なしで呼んだときホームディレクトリに移動しなくなってしまう。 cdの

    cdの引数を絶対パスにしてコマンドヒストリに残す - ももいろテクノロジー
    peketamin
    peketamin 2014/12/11
    どうなんだろ。別コマンドの方がいいような気もしなくもない
  • if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス

    if 文と test コマンド if 文とは? if 文とは、与えられた条件式が真のときのみ処理を行い、それ以外の場合は処理をスキップする、などといった場合に使用される条件分岐処理である。 条件式には一般的に test コマンドを用いるが、ls コマンドや grep コマンド等の他のコマンドを用いても構わない。 if 文は条件式に指定されたコマンドの終了ステータスを判定し分岐を行う。終了ステータスが「0」の場合は真、その他の場合は偽となる。 if 文 タイプ 1

    if 文と test コマンド | UNIX & Linux コマンド・シェルスクリプト リファレンス
    peketamin
    peketamin 2014/12/01
  • シェルスクリプトを簡単にチェックできるShellCheck, Vimでも使える

    B! 119 0 0 0 前から気になってた ShellCheck を使ってシェルスクリプトや.bashrc等直してみました。 ShellCheck コマンドライン版 日語を含んだファイル Vimでは ShellCheck ShellCheck はシェルスクリプトの文法をチェックしてくれるオンラインサービスです。 ShellCheckのページに行って 試したいスクリプトを書き込むと文法をチェックして エラーや注意を表示してくれます。 指摘してくれるものとしては、明らかな文法違反な物は勿論、 実際にスクリプトを回して毎回エラーになるものでなくても、 変数が空の場合に""で囲ってないとエラーになる場合なども チェックしてくれるので思わぬ事故も防いでくれます。 コマンドライン版 ShellCheckのソースコードはGitHubで公開されていて、 さらにコマンドライン版のshellcheckを使

    シェルスクリプトを簡単にチェックできるShellCheck, Vimでも使える
  • インフラエンジニアとしてよく使うコマンド集 - Qiita

    私がよく使うコマンド集となります。 参考に頂けたら幸いです。 随時更新するかと思います。 コマンドを打つ前に覚えておく事 ①サーバに負荷がかかるコマンドを打つ場合、下記をコマンドの先頭に付けましょう $ ionice -c 2 -n 7 nice -n 19 # -c 2:ディスクI/Oの実行優先度をベストエフォートで実行 # -n 7:さらにこのコマンドの優先度を低くする # -n 19:プロセスの実行優先度を一番低くする

    インフラエンジニアとしてよく使うコマンド集 - Qiita
  • DNSを悪用して脆弱性「Shellshock」を攻撃する手法発見 - Full Disclosure

    bashのセキュリティ脆弱性(通称:Shellshock)の影響はいまだとどまることなく、さらに広がりを見せている。この脆弱性を攻撃する手法としてすでにHTTPやDHCPが知られているが、新たにDNSの逆引きを利用する方法が発見された。さまざまなメディアで報道されているが、例えばFull Disclosureに掲載された「Full Disclosure: CVE-2014-3671: DNS Reverse Lookup as a vector for the Bash vulnerability (CVE-2014-6271 et.al.)」などが興味深い。スレッドで、この問題について詳しく解説されている。 DNSの逆引きの結果として「() { :;}; echo CVE-2014-6271, CVE-201407169, RDNS」といったShellshockを悪用する文字列を返すよう

    peketamin
    peketamin 2014/10/16
    "DNSの逆引きの結果として「() { :;}; echo CVE-2014-6271, CVE-201407169, RDNS」といったShellshockを悪用する文字列を返すようにDNSサーバを設定した場合"
  • 第4回 わずか1週間程度でBashが大幅な進化を遂げた ~Shellshock大暴れ~ | gihyo.jp

    10月に入り、9月までに起こったことをざっと振り返るというお題がどこかから聞こえてきたので、「⁠じゃあ……」という感じで振り返ってみることとします。 わずか1週間程度でBashが大幅な進化を遂げた ~Shellshock大暴れ~ まだ現在進行形の事案ではありますが、9月下旬に発覚したBashの脆弱性に起因して、10月上旬までまだ収束していないShellshock。 Bash 4.3の例で説明すると、Patchlevel 25~30までは以下のような軌跡をたどっています。 9月24日にPatchlevel 25 9月26日にPatchlevel 26 9月27日にPatchlevel 27 10月1日にPatchlevel 28 10月2日にPatchlevel 29 10月5日にPatchlevel 30 この間に発見、修正された脆弱性は、CVE-2014-6271、CVE-2014-71

    第4回 わずか1週間程度でBashが大幅な進化を遂げた ~Shellshock大暴れ~ | gihyo.jp
  • 30 Handy Bash Shell Aliases For Linux / Unix / MacOS

    nixCraft → Tutorials → Linux → Awesome bash aliases for Linux and Unix users to increase productivity An bash shell alias is nothing but the shortcut to commands. The alias command allows the user to launch any command or group of commands (including options and filenames) by entering a single word. Use alias command to display a list of all defined aliases. You can add user-defined aliases to ~/.

    30 Handy Bash Shell Aliases For Linux / Unix / MacOS
  • Linuxアプライアンス類もBash脆弱性対策を - .@sknn's tumblr.

    [NEW] 2014/09/30: アプライアンスの対応状況まとめを随時更新中 CVE-2014-6271及びCVE-2014-7169ねた(Bash脆弱性)。 世間では、外部公開サーバー(特にWebサーバー)への対処が着々と進められています。Webサーバーだけでなく、メールサーバーへの攻撃パターンも早期に見付かっています。外部公開サーバーに対する総合的な点検が近いうちに進んでいくものと思われます。 bash Shellshock through MAIL .forward / qmail-alias piping (ML program etc.) CVE-2014-6271 http://t.co/QPbSE8dppM http://t.co/AFuHudkCdh September 26, 2014しかし、一般的なサーバー類だけでなく主にファイアウォールの内部に設置されているアプライ

    Linuxアプライアンス類もBash脆弱性対策を - .@sknn's tumblr.
  • with Ansible and apt, how do I update bash to for the remotely exploitable security vulnerability CVE-2014-6271?

    peketamin
    peketamin 2014/09/25
    "with Ansible and apt, how do I update bash to for the remotely exploitable security vulnerability CVE-2014-6271?"
  • CVE-2014-6271のbashの脆弱性に対応する方法 - Qiita

    Macの場合は、HomebrewやMacPortでも修正版である4.3.25が配布されています。したがって、以下のコマンドで対応できます。 Homebrew

    CVE-2014-6271のbashの脆弱性に対応する方法 - Qiita
  • bashの脆弱性(CVE-2014-6271) #ShellShock の関連リンクをまとめてみた - piyolog

    bashに脆弱性が確認されたとして騒ぎになっています。ここではCVE-2014-6271に関する情報をまとめます。 #記載内容について、誤っている、追記した方がいい等情報がございましたら@piyokangoまでご連絡お願いします。 脆弱性情報 脆弱性の愛称 ShellShock Bashbug CVE番号 Bash周りで発行されているCVEは6つ。その内詳細が不明なのが2つ。(CVE-2014-6277,CVE-2014-6278) CVE 発見者 想定脅威 特記 CVE-2014-6271 Stephane Chazelas氏 任意のコード実行 ShellShockの発端となったバグ。 CVE-2014-7169 Tavis Ormandy氏 任意のコード実行 CVE-2014-6271修正漏れによる脆弱性 CVE-2014-7186 Redhat DoS メモリ破壊(Out-of-Bo

    bashの脆弱性(CVE-2014-6271) #ShellShock の関連リンクをまとめてみた - piyolog
  • OS XのBashで脆弱性CVE-2014-6271を修正する方法。

    Bashの脆弱性CVE-2014-6271をOS X で修正する方法です。詳細は以下から。 昨日明らかになったBashの脆弱性「環境変数に仕込まれたコードを実行してしまうBASHの脆弱性」は既にUbuntuなどでは修正されていますが、OS X ではまだ”command line tools“にアップデートがかからないので、self updateする方法をまとめました。 チェック方法 ターミナル.appを起動して以下の一行を実行 env x='() { :;}; echo vulnerable' bash -c "echo hello" この状態で vulnerable hello と脆弱”vulnerable”と出れば脆弱性が存在します。 HomebrewやMacPorts HomebrewやMacPortsを使用している場合、既にアップデートされているのでそちらをお使い下さい。Homeb

    OS XのBashで脆弱性CVE-2014-6271を修正する方法。
  • Bash 脆弱性(2) CVE-2014-6271 / CVE-2014-7169 は何が危険で問題なのかを検証してみました。 – CLARA ONLINE techblog

    こんにちは、グローバルソリューション事業部で運用等を行っている宇野と申します。 先に投稿された「Bash 脆弱性(1) CVE-2014-6271 / CVE-2014-7169 絶賛対応中です」の続きとして 何が危険なのかを検証してみましたので、ご参照ください。 はじめに まず、今回の問題点や危険な点を簡単に挙げると、、 ・リモートで任意のコマンドが実行できてしまう可能性がある。 ・Bash は linux 等のシステムで必ずインストールされているパッケージなので、影響が大きい。 ということでしょうか。その内容を紐解いています。 まずは、数ある情報元からの例です(以下は Redhat のセキュリティブログ ) ・Bash specially-crafted environment variables code injection attack とあるコードを環境変数に組み込むと、任意の

  • 「bash」シェルに重大な脆弱性、主要Linuxでパッチが公開

    脆弱性は多くの一般的な設定でネットワークを介して悪用できるとされ、特にbashがシステムシェルとして設定されている場合は危険が大きい。 LinuxなどのUNIX系OSで標準的に使われているシェル「bash」に極めて重大な脆弱性が見つかり、9月24日に修正パッチが公開された。攻撃者がbashにコマンドを送って任意のコードを実行できる可能性が指摘されており、米セキュリティ機関のSANS Internet Storm Centerなどはパッチ適用を急ぐよう呼び掛けている。 関係各社のアドバイザリーによると、bashで特定の細工を施した環境変数を処理する方法に脆弱性が存在する。悪用された場合、攻撃者が環境制限をかわしてシェルコマンドを実行できてしまう恐れがあり、特定のサービスやアプリケーションでは、リモートの攻撃者が認証を経ることなく環境変数を提供することも可能になる。 この脆弱性は、多くの一般的

    「bash」シェルに重大な脆弱性、主要Linuxでパッチが公開
  • shellshock - What does env x='() { :;}; command' bash do and why is it insecure? - Unix & Linux Stack Exchange

    There is apparently a vulnerability (CVE-2014-6271) in bash: Bash specially crafted environment variables code injection attack I am trying to figure out what is happening, but I'm not entirely sure I understand it. How can the echo be executed as it is in single quotes? $ env x='() { :;}; echo vulnerable' bash -c "echo this is a test" vulnerable this is a test EDIT 1: A patched system looks like

    shellshock - What does env x='() { :;}; command' bash do and why is it insecure? - Unix & Linux Stack Exchange
  • 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スクリプトにアレさせてみました
    peketamin
    peketamin 2014/09/25
    system()系関数がCGIプログラムに入っていたらアウトらしい→訂正:環境変数が変更可能かどうかなので必ずしもではないらしい