タグ

Linuxに関するkirakkingのブックマーク (135)

  • たのしく学ぶLinuxカーネル開発(第一回): `rm -rf /`実行時にカーネルパニックさせる - Qiita

    はじめに Linuxカーネル開発を学ぶためにhello worldモジュールからはじめて少しづつ強化する記事を過去にいくつか書きました。これはちゃんとやれば身に付くことは身に付くのですが、非常に地味なので、よほどカーネルに興味を持っている人以外には退屈でしょう。そこで、目的をもって特定の機能をカーネルならではの方法で実現する記事を書けば面白いのでは…となったのでここに初回を書くことにしました。 対象読者はCライクなプログラミング言語での開発経験がある人です。Cのポインタがわかればなおよし。もしできればOSカーネルについての基的な知識も欲しいです。 背景 UNIXが誕生してから現在に至るまでrm -rf /によって全ファイルをぶっ飛ばす事件が後をたちません。GNUのcoreutilsに入っているrmではルートディレクトリ("/")への操作を特別扱いして容易に悲劇を起こさなくするpreser

    たのしく学ぶLinuxカーネル開発(第一回): `rm -rf /`実行時にカーネルパニックさせる - Qiita
  • 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 ファイルをわせることで、任意コードの実行ができてしまう。数ある脆弱性の中でもとくにヤバいやつだ。どこが穴なのかというと、タイトルにもあるとおり算術式なのだが、し

  • 世の中のエンジニアのalias設定 - Qiita

    先日、同僚と「世の中のエンジニアはターミナルにどんなalias設定をしているんだろう?」という談義になったので、GitHub上の1000リポジトリのコードから調査してみました。 2019/04/10 コメントを元に微修正しました。コメントくださった方々、ありがとうございます。 2019/04/11 こんなのも書いてみました。 よく使われているvimrcの設定ランキング 2019/04/15 プラグイン版も書きました。よく使われているvimのプラグイン top20 aliasとは wikipediaより UNIXなどにおいてコマンドを別名で登録したもの。別名を登録するコマンド名。 長いコマンドやいつも利用するオプションを毎回入力するのは手間ですよね? ターミナルの設定ファイルにaliasを記述することで、別名として定義することが可能というわけです。 調査方法 GitHub APIを利用 do

    世の中のエンジニアのalias設定 - Qiita
  • 投票で決める「好きなLinuxターミナルアプリ」第1位は?

    Opensource.comは2019年3月7日(米国時間)、「What's your favorite Linux terminal emulator?|Opensource.com」において、Linuxで動作するターミナルアプリケーションを紹介するとともに、好きなターミナルアプリケーションに対して投票するように呼びかけた。投票すると結果が閲覧できる仕組みになっており、稿執筆時点ではGnomeターミナルが多くの票を集めている。 投票の候補に挙げられているターミナルアプリケーションは次のとおり。 Alakritty Black Screen cool-retro-term Eterm Gnome-terminal Guake Hyper Kitty Konsole LilyTerm LXTerminal QTerminal ROXTerm RUMBA rxvt rxvt-unicode

    投票で決める「好きなLinuxターミナルアプリ」第1位は?
    kirakking
    kirakking 2019/03/11
    基本GNOME + tmux とプルダウンのGuakeで十分。それよりシェルの方をいじりたい。
  • fish 3.0がやってきた - Qiita

    とうとうこの時がやってきましたね。 fish 3.0がリリースされました!! すごい。いいぞ。 fish 2.0がリリースされたのが2013年とからしいので、実に5年ぶりのメジャーアップグレードとなります。 fishってなによ the friendly interactive shell です。 カスタマイズなしで高機能な補完が効くなど、とにかくユーザーに優しく便利なシェルです。 とりあえず試す 以下よりどうぞ。 GitHub: https://github.com/fish-shell/fish-shell Ubuntuであれば以下のコマンドでインストールできます。 sudo apt-add-repository ppa:fish-shell/release-3 sudo apt-get update sudo apt-get install fish 注目の変更点など waitコマンド

    fish 3.0がやってきた - Qiita
    kirakking
    kirakking 2018/12/31
    やった。
  • Magic SysRq key - Wikipedia

    This article is written like a manual or guide. Please help rewrite this article and remove advice or instruction. (June 2012) The SysRq key The magic SysRq key is a key combination understood by the Linux kernel, which allows the user to perform various low-level commands regardless of the system's state. It is often used to recover from freezes, or to reboot a computer without corrupting the fil

    Magic SysRq key - Wikipedia
    kirakking
    kirakking 2018/12/11
    “/etc/sysctl.d/10-magic-sysrq.conf” Ubuntu 18 だとこれが kernel.sysrq の値を決定。値が 176 になっていたのは、16+32+128 を有効にしていたため。デフォルトでは oom-killer は無効。
  • 妻のパソコンを Windows 7 から Windows 10 にアップグレードしたら使いにくいとキレられたので Linux にした件 | IIJ Engineers Blog

    IIJ ネットワーク部アプリケーションサービス部・(兼)社長室所属。 メールサービスの運用業務に従事し、日々世界の悪と戦う一児の父親。社内 Power Automate エバンジェリスト(自称)。M3AAWG member / openSUSE Users / WIDE Project メンバー。趣味は大喜利。はがき職人。 【IIJ 2018 TECHアドベントカレンダー 12/5(水) の記事です】 「ねぇ、パパ。インターネットに繋がらないんだけど。早くなんとかして。」 このように、世のパパさんたちは、自宅情シス管理者をしている(させられている)方も多いのではないでしょうか。以下のお話は 2016〜2017年に起こった、ある日のできごとです。(ノンフィクション) 登場人物 私 世界の悪と戦う一児の父親。 Windows 歴は Windows 95 → 98 → 2000。 ダイヤルアッ

    妻のパソコンを Windows 7 から Windows 10 にアップグレードしたら使いにくいとキレられたので Linux にした件 | IIJ Engineers Blog
    kirakking
    kirakking 2018/12/06
    うちの実家もXPからLubuntuにして5年以上だけど、ほぼメール、ブラウザ、Shotwellしか使わないから不満は無いみたい。いざとなったらVPNでログインすりゃいいかと思ってる。
  • 実行してはいけないLinuxコマンド(6) Ubuntu Serverで『Fork爆弾』を実行 | マイナビニュース

    Fork爆弾『 :(){ :|:& };:』とは? Linuxに限らず、UNIX系のオペレーティングシステムで実行してはならないとされるコマンドや処理に「Fork爆弾」がある。これはひたすらプロセスをfork(2)する処理を行うことで、処理のほとんどをプロセスの生成やコンテキストスイッチに費やさせたり、新しいプロセスの生成を困難にさせたりして、システムを正常に利用できない状況にすることを指す。サービス妨害攻撃(Denial-of-service attack)の一種とも言える。 Fork爆弾は実行が簡単なことでも知られており、Bashであれば「:(){ :|:& };:」と入力するだけで実行できる。今回はこのコマンドを実行してみる。 Ubuntu Serverで『:(){ :|:& };:』を実行 では、早速Ubuntu Server 18.04 LTSで『:(){ :|:& };:』を実

    実行してはいけないLinuxコマンド(6) Ubuntu Serverで『Fork爆弾』を実行 | マイナビニュース
    kirakking
    kirakking 2018/11/02
    へー耐え切るんだ。
  • 本の虫: 帰ってきたきれいなリーナス・トーバルズ、無作法な開発者をたしなめる

    Linus Torvalds Shows His New Polite Side While Pointing Out Bad Kernel Code - Phoronix 人の心の読み方を学んで復帰したリーナス・トーバルズは、さっそく無作法なプルリクエストをたしなめている。その文章は大文字センテンスも4文字言葉も使っていない優しいものに変わっている。 問題はプルリクエストはBigBenゲームコントローラーに対するドライバーの追加で、このドライバーはデフォルトで有効にされていた。これはLinuxカーネルの慣習にそぐわないものだ。新しく追加された名前もきいたこともないようなデバイス用のドライバーが、いきなりカーネルでデフォルトで有効にはされないものだ。新参者のドライバー開発者は、大抵自分のドライバーはとても重要で、自分の所有しているデバイスは全員所有しているのでデフォルトで有効にするのは当然

  • :redir を使って、vimの設定確認を楽にする

    vimの現在の設定を確認するでまとめたvimの現在の設定を確認する方法ですが、いかんせん見にくいです。 そんな時は、:redir を使うと便利です。 :redir はコマンドの実行結果をリダイレクトすることができます。 :redir を使って、 外部ファイルにリダイレクトする レジスタに記憶してペーストする 変数に記憶してペーストする 方法があります。 外部ファイルにリダイレクトする 早速やってみましょう。 :redir > file :let :redir END これで file に出力されます。>> で追記になります。 カレントディレクトリに file ができているはずなので見てみます。 % ls -l total 8 -rw-r--r-- 1 bacchi bacchi 3598 12 12 11:30 file % cat file loaded_spellfile_plugin

    :redir を使って、vimの設定確認を楽にする
    kirakking
    kirakking 2018/10/12
    メモ:現在のキーマップを表示して検索等したい場合、(1)外部ファイルに吐く :redir > /tmp/map.txt | silent map | redir END<CR> (2)レジスタに格納 :redir @p | silent map | redir END<CR>。後者なら "pp でそのまま編集できる。
  • 第538回 Ubuntu Dockをカスタマイズする:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社

    Ubuntuは17.10より、デスクトップシェルをUnityからGNOME Shellへと移行しました。その際にUnityのLauncher部分を担ったのが、GNOME Shellの拡張機能のひとつである「Dash to Dock」です。今回はその、Dash to Dockのカスタマイズ方法を紹介します。 Ubuntu DockとDash to Dock Ubuntuが使っている拡張機能の名前はより正確に言うと「Ubuntu Dock」です。これは家Dash to Dockの別ブランチとして開発されています。なるべくオリジナルとの差分が小さくなるように開発しているため、masterブランチとの違いは主に、Ubuntuに合わせたテーマ・設定の採用と、設定画面の無効化ぐらいです。 Dash to DockとUbuntu Dockの関係については、UbuntuがGNOME Shellを正式に採

    第538回 Ubuntu Dockをカスタマイズする:Ubuntu Weekly Recipe|gihyo.jp … 技術評論社
  • リーナス・トーバルズの謝罪でLinuxコミュニティは変わるのか

  • システムソフトウェアに対する攻撃の歴史と傾向 - 高度標的型攻撃や国家に支援された攻撃の仕組み - - るくすの日記 ~ Out_Of_Range ~

    A History of system-level offensive security researches: How is your system compromised by nation state hacking, APT attack はじめに 企業や個人に対するサイバー攻撃の頻度は年々増加の一途を辿っているが、これらはskiddyによる悪戯程度の物から、企業を標的とした高度な標的型攻撃、あるいは政府による諜報活動に至るまで多岐にわたっている。 特に大規模な組織や政府による綿密に練られたサイバー攻撃は、確実に目的を果たすために高度な手段が講じられる事が多い。 記事では高度標的型攻撃や政府による諜報活動で用いられる手法の一つとして、"システムソフトウェアに対する攻撃"について紹介する。 これはオペレーティングシステム (OS) や仮想マシン、ファームウェアといった基盤システムを

    システムソフトウェアに対する攻撃の歴史と傾向 - 高度標的型攻撃や国家に支援された攻撃の仕組み - - るくすの日記 ~ Out_Of_Range ~
  • Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化

    Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化 Facebookは、Linuxバイナリの内部配置を最適化することによりCPUのキャッシュ効率などを向上させ、実行速度を改善する「BOLT」をオープンソースで公開しました。 BOLTは「Binary optimization and layout tool」の略とされています(もしかしたら、より速く走るという意味でウサイン・ボルト氏にかけているのかもしれません)。 BOLTは言語やコンパイラに依存せず、ソースコードも不要 BOLTのおもな効果は、Linuxバイナリの実行状況をperfコマンドで取得し、高頻度で実行されている部分などを判別した上で、そうした部分がCPUキャッシュにヒットしやすいようにバイナリの内部配置を改善することなどで実行速度を向上させることと

    Linuxバイナリを最適化して性能を向上させる「BOLT」、Facebookがオープンソースで公開。言語やコンパイラに依存せず高速化
  • Makefileの書き方 - $ cat /var/log/shin

    まえがき その昔、Makefileの書き方という非常にわかりやすいMakefileの入門ページがあったのですが、seiichirou氏の卒業(?)とともにページが消えてしまいました。 私も大変お世話になったページだった、というかこれからもお世話になりそうなので、そこでWebArchiveから引っ張りだしてきたものを、はてな記法で書き直したものがこの記事になります。 元々自分用に書き直したのですが、せっかくなので公開してみます。 なので、以下の著作はseiichirou氏に帰属します*1。 Makefileの書き方 はじめに ここでは、Makefileの中でもGNU makeにかぎって説明します。 makeって何? ソースファイルを分割して大規模なプログラムを作成していると、コマンドでコンパイルするのが面倒です。また、一部のソースファイルを書き換えただけなのに全部をコンパイルし直すのは時間の

    Makefileの書き方 - $ cat /var/log/shin
  • インフラエンジニアとしてよく使うコマンド集 - Qiita

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

    インフラエンジニアとしてよく使うコマンド集 - Qiita
  • TTY/PTYに関するクイズ - Qiita

    はじめに LinuxでCtrl-C打ったらコマンドが中断されるとか。皆さんご存知ですよね。こういうことに関連したちょっとした四択クイズです。Linux使い各位、当然、全問正解できますよね? 問題 いずれもPuTTYなりTeraTermなりのターミナルソフトでLinuxマシンにSSHで接続した、ログインシェル上での対話操作の上でのお話です。ターミナルソフトなんかは特に設定をいじらないことにします。一応。それと、シェルは大体なんでも同じだと思うのですが、念のためbashと指定しておきます。 Q1: シグナル送ったのは誰? 「はじめに」でも書きましたが、Ctrl-Cを入力すると、実行中のコマンドを停止させることができますね。例えば次のように。 これはSIGINTというシグナルが送られるためです。このシグナルはkill -INT プロセスIDなんてコマンドなんかで手動で送ることもできますね。 では

    TTY/PTYに関するクイズ - Qiita
  • Big Sky :: Vim と日本語入力の話。

    8/31、patch 8.0.1026 で LinuxVim のとある挙動が修正されました。 patch 8.0.1026: GTK on-the-spot input has problems - vim/vim@5c6dbcb - GitHub https://github.com/vim/vim/commit/5c6dbcb03fa552d7b0e61c8fcf425147eb6bf7d5 この修正は、LinuxVim の IME (Input Method Editor) の挙動を修正する物ですが、この1つのパッチの為に多くの開発者が動いたという話です。 Vim と IME と僕 このパッチ、多い時で月に100個以上もリリースされる大量のパッチの1つに過ぎないのですが、実はこのパッチには思い入れがあり記事にせずにいられませんでした。この問題が修正されるまでに至った経緯を

    Big Sky :: Vim と日本語入力の話。
  • ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ

    他のプロセスを中断せずに、その出力をミラーリングして新しくパイプで繋ぐ、そんなことはできるのでしょうか。 straceやgdbといったコマンドは一体どういう仕組みで動いているのでしょうか。 ptraceシステムコールを使い、プロセスが呼ぶシステムコールを調べて出力を覗き見するコマンドを実装してみたいと思います。 ptraceシステムコール Linuxを触っていると、いかにプロセスを組み合わせるか、組み合わせる方法をどれだけ知っているかが重要になってきます。 パイプやリダイレクトを使ってプロセスの出力結果を制御したり、コードの中からコマンドを実行して、終了ステータスを取得したりします。 プロセスツリーやプロセスグループを理解し、シグナルやnohupコマンドを使ったりします。 プロセスの扱いに慣れると疑問に持つのがstraceやgdbの仕組みです。 プロセスの実行しているシステムコールを出力し

    ptraceシステムコール入門 ― プロセスの出力を覗き見してみよう! - プログラムモグモグ
  • systemdで複数の不具合が確認される | スラド IT

    多くのLinuxディストリビューションで採用されているシステム管理ソフトウェア「systemd」で、複数の不具合が確認されています。1つは、ユーザー名を指定する個所で数字で始まるユーザー名を指定すると、そのユーザーの代わりに「root」が指定されたことになってしまうというもの(MA.TTIAS.BE)。 多くのUNIX系OSでは、ユーザー名にはアルファベット小文字と数字、アンダースコアのみが利用でき、さらに先頭には数字は指定できないとされています。そのため、報告を受けたsystemd開発者のLennart Poettering氏は、「数字で始まるユーザー名が不正なのであってsystemdのバグではない」と主張している。しかし、そのようなユーザー名がuseraddでは問題なく作成できたり、adduserでも設定により作成できると指摘され、氏はこう返答しました。「(1)systemdは色々なシ

    systemdで複数の不具合が確認される | スラド IT
    kirakking
    kirakking 2017/07/07
    あーそういえば、システム名にハイフン(-)が入っていたせいで、もろもろMWが動かんシステムあったな。ここらへんの暗黙制約って意外と落とし穴になる。