タグ

OSとshに関するraimon49のブックマーク (8)

  • シェルスクリプトとの対比で理解するPythonのsubprocess - 朝日ネット 技術者ブログ

    はじめに 開発部の ikasat です。 皆さんは git, ssh, rsync のような外部コマンドを呼び出すスクリプトを書きたくなったことはありますか? 個人的にこの類のスクリプトは最初はシェルスクリプトとして書くのですが、改修を重ねるうちに肥大化して処理も複雑になり、 後から Python のような汎用プログラミング言語で書き直すことがよくあります。 外部コマンド呼び出しを書き直す際に、Git 操作のために pygit2、 SSH 接続のために paramiko のようなライブラリをわざわざ使うのは大がかりだったり、 rsync に相当するようなこなれたライブラリが存在しなかったりする場合があります。 そのような時は標準ライブラリの subprocess モジュールを利用し、Python から外部コマンドを呼び出すことになるでしょう。 しかしながら、Python のチュートリアルペ

    シェルスクリプトとの対比で理解するPythonのsubprocess - 朝日ネット 技術者ブログ
    raimon49
    raimon49 2023/10/16
    シェルスクリプトとの比較わかり易い。
  • 20分で分かるDirty Pipe(CVE-2022-0847) - knqyf263's blog

    極限まで詳細を省けば何とか20分で雰囲気だけでも伝えられるんじゃないかと思って書きました。書き終えてから見返したら多分無理なので誇大広告となったことを深くお詫び申し上げます。 背景 概要 脆弱性の影響 ページキャッシュやsplice パイプ マージの可否 下準備 攻撃手順 まとめ 背景 先日Dirty PipeというLinuxカーネルの脆弱性が公表されました。 dirtypipe.cm4all.com Linuxのパイプに関する脆弱性なのですが、仕組みは意外とシンプルでぎりぎりブログでも伝わるかもしれないと思ったので自分の理解を書きました。あといつも細かく書きすぎて長くなるので、今回は雰囲気だけでも伝わるようにとにかく説明を簡略化し、ふわっとした概要だけでも理解してもらえるように頑張りました。その結果、若干正確性に欠ける部分があるかもしれませんがお許しください。細かい部分はまた別の記事でま

    20分で分かるDirty Pipe(CVE-2022-0847) - knqyf263's blog
  • PHPにはエスケープ関数が何種類もあるけど、できればエスケープしない方法が良い理由

    このエントリは、PHP Advent Calendar 2021 の20日目のエントリです。19日目は @takoba さんによる PHPプロジェクトのComposerパッケージをRenovateで定期アップデートする でした。 SQLインジェクションやクロスサイトスクリプティング(XSS)の対策を行う際には「エスケープ処理」をしましょうと言われますが、その割にPHP以外の言語ではあまりエスケープ処理の関数が用意されていなかったりします。それに比べてPHPはエスケープ処理の関数が非常に豊富です。これだけ見ても、PHPはなんてセキュアなんだ! と早とちりする人がいるかもしれませんが、しかし、他言語でエスケープ処理関数があまりないのはちゃんと理由があると思うのです。 稿では、PHPのエスケープ処理用の関数を紹介しながら、その利用目的と、その関数を使わないで済ませる方法を説明します。 SQL

    raimon49
    raimon49 2021/12/21
    そもそもエスケープ関数の使い方を意識しなければならない状況を避ける、という話。たしかに。
  • Mac を買ったら必ずやっておきたい初期設定を、全て自動化してみた

    成果物 https://github.com/ulwlu/dotfiles/blob/master/system/macos.sh このスクリプトに全ての設定と、設定可能なオプションをコメントで記載しています。誰でもこのスクリプトのコメントを外したり任意の値を入れる事で使用可能です。 世界中のいくつかのdotfilesにはmacos.shが存在し、ある程度のMacOSの設定自動化を実現しています。しかし何百と見た中で、全設定と設定可能なオプションを全て網羅して記載しているのは恐らく初です。 これらの設定は破壊的なものではなく、いつかアプデによりキーが有効でなくなっても壊れる事はありません。壊れるのは~/ApplicationSupport/Dockディレクトリ配下のファイルを移動したり、sqlite群に無効な値をいれた時のみです(後述)。 この記事は何か dotfiles Advent C

    Mac を買ったら必ずやっておきたい初期設定を、全て自動化してみた
  • シェルを経由しないOSコマンド呼び出しがPHP7.4で実装された

    この記事はPHP Advent Calendar 2019の5日目の記事です。 はじめに 私は6年前に、PHP Advent Calendar 2013として「PHPだってシェル経由でないコマンド呼び出し機能が欲しい」という記事を書きました。その中で、OSコマンドインジェクション対策の根的かつ安全な対策は「シェルを経由しないコマンド呼び出し」であることを指摘した上で、末尾に以下のように書きました。 PHPコミッタのみなさま、PHP5.6の新機能として、シェルを経由しないコマンド呼び出しの機能を追加できませんか? 現実には当時からPCNTL関数にてシェルを経由しないコマンド呼び出しはできたのですが、当関数の使用が難しいことと、CLI版あるいはCGI版(FastCGIは可)のPHPでないとサポートされていないなどの制限があり、popenやproc_openなど使いやすいコマンド呼び出し関数に

  • How I could add dir to $PATH in Makefile?

    I want to write a Makefile which would run tests. Test are in a directory './tests' and executable files to be tested are in the directory './bin'. When I run the tests, they don't see the exec files, as the directory ./bin is not in the $PATH. When I do something like this: EXPORT PATH=bin:$PATH make test everything works. However I need to change the $PATH in the Makefile. Simple Makefile conten

    How I could add dir to $PATH in Makefile?
  • pip.confファイルをUnix系OS/macOSどちらでも同じ場所に置く - Steel Dragon 14106

    pip.confファイルをUnix系OS/macOSどちらでも同じ場所に置く By raimon, 2017-07-24(月), in category Python pip 9.xからpip listコマンドに警告が出る pip 9.x以降に更新すると pip list コマンドで警告が出るようになる。 これを抑止するには、システムワイドまたはユーザー毎に pip.conf ファイルを置いてlist formatを指定することで解決する。 pip 9 系にしたら pip list で警告出るようになったので止めたい しかし、ユーザー毎の設定は、Unix系OSとmacOSとで、それぞれファイルを置く場所が異なるため、管理が煩雑になり面倒である。 Unix系OS: $HOME/.config/pip/pip.conf macOS: $HOME/Library/Application Supp

  • どさにっき - #!/usr/bin/env

    2006年6月21日(水) ■ DomainKeys _ えーと、DomainKeys ってのは要するに電子署名なので、署名された後でヘッダや文が改変されると検証に失敗する。DomainKeys はメーリングリストに弱いと言われる理由のひとつですな。 _ 自宅 postfix に milter を導入したので、DomainKeys を検証できるようにしてこのあたりの動作を注意深く観察してるのだが、このまえはじまった DNSOPS.JPのメーリングリストからのメール。 Authentication-Results: mx.maya.st sender=ロボットによる収集回避@dnsops.jp; domainkeys=pass なんで pass しとんねん。ML が Subject をいじってるんだから fail になるはずなんだが。Subject をいじらないメーリングリストとか、いじっ

    raimon49
    raimon49 2012/01/28
    OSによってはenvの場所さえ異なる, 引数がどう渡されるかは環境依存、といったデメリットの指摘。
  • 1