タグ

linuxとcに関するt2y-1979のブックマーク (3)

  • Big Sky :: sudo の特権昇格バグはなぜ起こったのか

    « Microsoft Word を Markdown に変換するコマンド「docx2md」を作った。 | Main | VimConf 2019 を終えて » Linuxsudo に root 権限を奪取できるバグが見つかった。 Linuxの「sudo」コマンドにroot権限奪取の脆弱性。ユーザーID処理のバグで制限無効化 - Engadget 日版 この脆弱性は、sudoコマンドのユーザーIDに-1もしくは4294967295を指定すると、誤って0(ゼロ)と認識して処理してしまうというもの。0(ゼロ)はrootのユーザーIDであるため、攻撃者は完全なrootとしてコマンドを実行できることになります。 https://japanese.engadget.com/2019/10/14/linux-sudo-root-id/ 既に Ubuntu 等にはパッチが配布され始めているらしい

    Big Sky :: sudo の特権昇格バグはなぜ起こったのか
  • LD_PRELOADを使ったテスト(C言語編)

    困難なテスト 一般に、テストを自動化する場合、テスト対象のプログラムやコードに対するインプットとアウトプットを制御する必要があります。 コードが綺麗に抽象化され、テストデータを外部から入力しやすいインターフェースが用意されていれば、ユニットテストのコードを書くことができますが、そうではないケースも多いのではないでしょうか。 その場合、テストコードを書けるようにリファクタリングを行うことになるのでしょうが、テストコードなしでのリファクタリングが必要になり、一般に困難な作業になります。 ここでは、共有ライブラリとLD_PRELOADという環境変数を使うことで、コードに手を加えることなく外部から対象のプログラムの挙動を制御する方法を紹介します。 dateコマンド それでは例として、dateコマンドで表示される日時を制御することを考えてみましょう。 まず、dateコマンドを実行すると次のように日時

  • ls -f で返ってくるリストは何の順か? - ablog

    ls のソースを読んでプログラマになりました - ablog というエントリを書いたが、「ls -f で返ってくるリストは何の順なんだろう?」と思った。ls -f を実行するとライブラリ関数 readdir(3) が呼ばれ、さらに getdents() システムコールが呼ばれ、dirent 構造体が返される。dirent 構造体は連結リストになっていて、次の dirent 構造体へのポインタを辿って行くことになると思われる。ディレクトリにエントリが追加されるたびにディレクトリエントリ(dirent 構造体)が繋がっていくので、たぶんエントリが追加されるときのロジックで決まるんだろうなと想像していた。DBエンジニアには自然な発想だと思う。 Linux や UNIX 関連の書籍はそこそこ揃っていると思っていたが、自宅にあるには書かれていなかった。屋でふと、このなら書いてるかもと思って、

    ls -f で返ってくるリストは何の順か? - ablog
  • 1