いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.138 / 読者数:1343名

こんばんは、うすだです。

先日、ひさしぶりに、某 MS 社のセミナーに侵入してきました。

…も、もちろん、正規に申し込んで、堂々と行ってきたのですが。
ただ、Linux のポーティングやドライバの開発などでゴハンを食べているためか、 侵入というイメージが頭に浮かんでしまうようです。

それはさておき、こういったセミナーのささやかな楽しみといいますと、 よく来てくれたねぇ的グッズをいただけることではないか、 と個人的には思っております。

今回はなにをいただけるのかな、なんて淡い期待をいだいていましたら、 分厚くてでかくて重い写真集を、もれなくいただきました。
もちろん、他の来場者のかたがたと同様、ありがたく頂戴して、カバンに押し込み、 がんばっておうちまで持って帰りました。

さて、どんな写真集なのかと思い、期待せずに開けて見てみますと…
MS の社員のひとが、延々と写っておりました。えんえんえんと、です。

さまざまな可能性を考慮してみましたが、この写真集を家に置いておくというニーズを、 ついに思いつくことはできませんでした。
しかたがないので、またしてもカバンに詰め込んで、がんばって会社まで持っていって、 本棚の隅の見えないところに押し込んであります。

ここのところ、会社では、本棚の隅のほうを見るたびに、 写真集のことを思い出させられてしまいます。
なんの意図があって、こんな写真集をつくり、来場者に配ったのか、 末端の技術者の端くれには、崇高な MS の考えを理解することができません。
ですが、淡泊な日常生活に微量の刺激を与えてくれたという点では、 感謝すべきことなのかもしれない、という気がしております。

強引にポジティブ思考したところで、今回も、はりきってまいりますよ!

今回のお題 - fakeroot で root になりきる

今でこそ、システム管理のメルマガなんて出しちゃっていますけれども、 学生のころは、一度も root 権限を得ることなく、 一般ユーザとして日々を過ごしていました。

root 権限を持つ先輩が、su して作業するのを見るたびに、 ああシステム管理者は大変そうだけどかっこいいなあ…などと思ったものでした。

さて、時は流れ、現在では、仮想環境やらなんやらのおかげで、 UNIX 的な環境を個人で持つことが、かなり簡単な世の中になりました。
そんなお試しチックな環境下なら、簡単に root 権限が得られます。

とはいえ、初心者や初心者に近いかたにとっては、 それすらも敷居の高いものかもしれません。
そんな貴兄でも、普段使わせてもらっている Linux の上で、 root っぽい雰囲気くらい味わってみたい、と思うこともあるのではないでしょうか。

というわけで、今回は、fakeroot をご紹介しようと思います。
fakeroot を用いますと、一般ユーザの権限で、 root の権限を得られたかのような錯覚を得ることができます。 (微妙な言い回しですが…)


fakeroot は、root 権限をシミュレートしてくれるソフトです。
主に、Debian 系のディストリビューションで、パッケージの構築を行う際に、 よく使われているようです。

もし fakeroot パッケージが見当たらなければ、Debian 系のかたは apt で、 Fedora なかたは yum で、入手してください。
パッケージがないという貴兄は、下記をたどってソースコードを入手し、 地道にコンパイルなどしてみてください。

fakeroot
http://fakeroot.alioth.debian.org/

…といったことができるなら、 fakeroot で root の雰囲気を味わう必要などないように思いますが… 気づかなかったふりをしたいと思います。


それではまず、習うより慣れろ、ということで、実行してみましょう。
邪心を取り除いてから、引数なしで fakeroot コマンドを実行します。

  % fakeroot
  # 

上記では、プロンプトが root っぽくなっていますが、 実際には何も変化しないかもしれません。ですが、見分けがつかないと不便ですので、 以降では、fakeroot 上か否かがわかるよう、プロンプトを変えておきます。

まずは、試しに、ファイルを作成してみましょう。

  # touch foo
  # ls -l foo
  -rw-r--r-- 1 root root 0  5月31日 23:34 foo

foo という名の空のファイルを、touch コマンドで作成しています。
ls コマンドで確認しますと、所有者が root になっています。

普通のひとなのに、fakeroot コマンドを実行しただけで、パスワードもなしに、 root の権限を得てしまったのでしょうか…。

…もちろん、そんなわけはありません。
fakeroot を実行中でない端末で、同じファイルを見ればわかります。

  % ls -l foo
  -rw-r--r-- 1 usu adm 0  5月31日 23:34 foo

…ああ、なんの変哲もない、自分のファイルでした。
どうやら、fakeroot 上では、root に見えるだけのようです。

別のひとの持ち物にしてみると、どうなるでしょうか。
たとえば、chown コマンドで、 users グループの test ユーザの持ち物にしてみましょう。

  # chown test.users foo
  # ls -l foo
  -rw-r--r-- 1 test users 0  5月31日 23:34 foo

ちゃんと、test ユーザ(users グループ)の持ち物になっています。
実際は、別の端末から眺めるとわかりますが、違います。

  % ls -l foo
  -rw-r--r-- 1 usu adm 0  5月31日 23:34 foo

それでは、一般ユーザが作れないファイルを、 fakeroot 上では作ることができるのでしょうか。
試しに、mknod コマンドでデバイスファイルを作ってみたいと思います。

  # mknod null c 1 3
  # ls -l null
  crw-r--r-- 1 root root 1, 3 6月 1日 21:51 null

…おお、作れてしまいました。
もちろん、お察しの通り、別の端末から見ると、ただのファイルです。

  % ls -l null
  -rw-r--r-- 1 usu adm 0 6月 1日 21:51 null

ちなみに、既存のファイルもすでに root のものになっています。

  # ls -l
  drwxr-xr-x  3 root root   4096  4月 3日 19:41 bin/
  drwxr-xr-x 12 root root   4096  6月10日  2004 doc/
  ...

fakeroot が root 権限をシミュレートするものだということが、 なんとなくわかっていただけたのではないかと思います。

ところで、fakeroot は、どのような原理で動作しているのでしょうか。

fakeroot を実行しますと、LD_PRELOAD という環境変数を設定して、 新たにシェルを起動します。
LD_PRELOAD が設定されていますと、 実行時に本来ロードされるべき libc 等のライブラリをロードする前に、 LD_PRELOAD で指定されたライブラリを先にロードします。(glibc の機能です。)
これを利用しますと、libc の関数やシステムコールではなく、 嘘の結果を返す fakeroot の関数に処理を行わせることができます。

試しに、LD_PRELOAD を空っぽにしますと、悪い夢から醒めます。
(2回目の ls -ld の実行結果を見ますと、所有者が元に戻っています。)

  # echo $LD_PRELOAD
  libfakeroot.so
  # ls -ld bin
  drwxr-xr-x 3 root root 4096  4月 3日 19:41 bin/
  # export LD_PRELOAD=
  # echo $LD_PRELOAD

  # ls -ld bin
  drwxr-xr-x 3 usu adm 4096  4月 3日 19:41 bin/

 

ただ、fakeroot の実体は、LD_PRELOAD で指定されたライブラリと言えるため、 これだけでは、fakeroot 内で行った結果を残しておけません。

そこで、faked というデーモンさんを起動して、 faked に情報を一括管理させています。
ですので、faked を kill してしまいますと、fakeroot は途方に暮れてしまいます。

  # ls -ld bin
  drwxr-xr-x 3 root root 4096  4月 3日 19:41 bin/
  # ps -C faked
    PID TTY          TIME CMD
  25262 ?        00:00:00 faked
  # kill 25262
  semop(1): encountered an error: 無効な引数です
  bash: [: -ge: unary operator expected
  # ls -ld bin
  (応答がなくなる…)

faked を kill した後は、faked から情報が得られなくなってしまいますので、 その後 ls などを実行しますと、固まってしまいます。
(kill -9 しないと ls が終了しなくなりますので、 あまりやらないほうがよいかもです。)

 

…といった原理で、fakeroot は動作しています。
ですので、もちろん、本当に root 権限を必要とする行為は、うまく動作しません。

たとえば、/etc/shadow は root しか読み書きできませんので、 fakeroot 上で参照しようとしても、にべもなく断られます。

  # grep test /etc/shadow
  grep: /etc/shadow: 許可がありません

mount もできません。…が、その理由は微妙に異なります。

  # mount -o loop,ro /boot/initrd.img /mnt/tmp
  mount: error while loading shared libraries: libfakeroot.so: \
  cannot open shared object file: No such file or directory

実は、mount コマンドは setuid されているため、 LD_PRELOAD が無効になってしまいます。ですので、動作しないというわけなのです。

  # ls -l `which mount`
  -rwsr-xr-x 1 root root 85564 11月 6日  2007 /bin/mount

それでは、fakeroot は、どのような状況で必要とされるのでしょうか。

前述しましたが、ファイルを自分以外の所有者にしたいときや、 デバイスファイルなどをアーカイブやパッケージに含めたいときに、使用します。

以下では、一例として、Vine Linux 4.2 で使用している initrd に細工を施して、 QEMU 上で動作させてみたいと思います。
説明は大幅に割愛しますが、initrd に /bin/ash を放りこんで、 延々と ash を起動するようにしています。
最後の行で作成した initrd.img が、新たに作成した initrd です。
(わかりにくいですが、一連の作業でデバイスファイルも扱います。 その際に、fakeroot のおかげで、エラーにならずに済んでいます。)

  % fakeroot
  # zcat < /boot/initrd-2.6.16-0vl76.28.img > initrd-cpio.img
  # mkdir initrd-cpio; cd initrd-cpio
  # cpio -i < ../initrd-cpio.img 
  552 blocks
  # rm init bootsplash bin/*
  # cp -p /bin/ash bin/
  # cp -p /lib/i686/libc.so.6 /lib/ld-linux.so.2 lib/
  # cat > init << EOF
  #!/bin/ash
  mount -t proc proc /proc
  mount -t sysfs sysfs /sys
  while [ 1 ]; do
          /bin/ash
  done
  EOF
  # chmod +x init
  # cd ..
  # (cd initrd-cpio; find . | cpio -o -H newc) | gzip -9 > initrd.img

これを、以下のようにして、QEMU でお試し実行します。

  % qemu -kernel /boot/vmlinuz-2.6.16-0vl76.28 -initrd initrd.img \
  -m 128 -no-kqemu -hda /dev/null

すると、QEMU 上で、ash がひたすら起動します。
他にコマンドがないため、あまり実用にはなりませんが、 ash の代わりに busybox を入れたりすれば、最小構成な Linux 環境になると思います。


以上、fakeroot の簡単な使いかたやしくみを、ご紹介しました。

詰め込んで駆け足でご説明してしまいましたので、 わかりにくい点も多々あったように思われます。そうだったら、申し訳ありません。

そんなときは、実行例をそっくり真似て、実行してみてください。
目で見ているだけでは気づかないことが、実行してはじめて気づくこともある… かもしれませんので。いや、きっとあります。…あるかな。

あ、fakeroot や LD_PRELOAD につきましては、以下の本に、 やや詳しく載っています。気になる貴兄は、 本屋さんで立ち読んでみてください。
内容はプログラマ向けですが、いろいろ楽しいことが書いてあります。

Binary Hacks - ハッカー秘伝のテクニック100選
http://www.amazon.co.jp/exec/obidos/ASIN/4873112885/usupiorg06-22

宿題の答え

前回の宿題は、

  CSV ファイルから、ユーザを復元するスクリプトを作りましょう。

でした。

CSV ファイルの該当する行から情報をいただいて、 useradd コマンドなどを呼んでしまえばよさそうですね。

というわけで、シェルスクリプトをもりもりと作成してみました。

  #!/bin/sh
  if [ $# -ne 1 ]; then
      echo "Usage: $0 account"
      exit 1
  fi
  IFS=','
  while read acct pass uid gid gcos hdir shell lstchg min max \
      warn inact expire flag; do
      if [ "$1" = "$acct" ]; then
          [ -n "$expire" ] && exp_opt="-e $expire" || exp_opt=""
          [ -n "$inact" ] && ina_opt="-f $inact" || ina_opt=""
          useradd -c "$gcos" -d $hdir $exp_opt $ina_opt \
              -g $gid -p "$pass" -s $shell -u $uid $acct
          [ -n "$min" ] && min_opt="-m $min" || min_opt=""
          [ -n "$max" ] && max_opt="-M $max" || max_opt=""
          [ -n "$warn" ] && warn_opt="-W $warn" || warn_opt=""
          if [ -n "$min" -o -n "$max" -o -n "$warn" ]; then
              chage $min_opt $max_opt $warn_opt $acct
          fi
          if [ -n "$lstchg" ]; then
              chage -d $lstchg $acct
          fi
      fi
  done

引数に、復活させたいユーザ名を、1つだけ指定します。
そして、標準入力から、CSV ファイルを読み込みます。
上記スクリプトを、restoreuser.sh という名前で作成しましたら、 以下のように実行します。
(以下では、大胆にも、jesus さんを復活させています。)

  # chmod +x restoreuser.sh
  # ./restoreuser.sh jesus < user_20080518.csv

CSV ファイルは、前回の前半でご紹介した、showuser.pl で作成したものです。 /etc/passwd と /etc/shadow 双方の情報を含むやつですね。

このスクリプトは、例によって、CSV ファイルをひたすら読み込み、 引数で指定したユーザ名と一致する行があれば、 useradd や chage といったコマンドを実行します。
chage コマンドを2回実行していますが、1回にまとめますと、 最後に変更した日数が反映されないため、分けました。理由はわかりません。 ご存知のかたは、ぜひぜひ教えてくださいませ。m(_o_)m

情報のない項目のことをやや考えているため、見づらくなっています。
ただ、それでも、入力がおかしな形式だったりなど、 いろんなイリーガルな状態のことまでは考慮していません。
紙面(?)の都合上、やや妥協して短くした、ということをご了承いただけますと、 とっても幸いです。(ただの言い訳なんですがー)

前回の内容や chage コマンドについて、詳しくご覧になりたい貴兄は、 以下を参考にしてくださいまし。

Vol.137 - ユーザ情報を管理する
http://www.usupi.org/sysad/137.html
Vol.036 - パスワードを管理する
http://www.usupi.org/sysad/036.html

今回の宿題

今回の宿題は、

  fakeroot で、setuid/setgid のコマンドを実行できない理由を考えて
  みましょう。

です。

setuid/setgid されたコマンドは、実行すると LD_PRELOAD が無効になりますが、 その理由を考えてみましょう。
お察しの通り、セキュリティ絡みだからなのですが、 なぜダメなのかピンと来ない貴兄は、これを機に、考えてみてくださいませ。

あとがき

冒頭で、分厚い写真集の恨みつらみを書いてしまいましたが、もちろん、 それだけではなく、Windows Server 2008 や Vista を、 ぽーんと無償でくださいました。1年間という期限つきではありますが、 それでもかなり太っ腹ではないかと思います。ありがたいです。敵ながら。…て、敵?

今の会社に入ってからは、Windows サーバなどには一切関わってきませんでしたので、 これを機会に、どこかにインストールして、1年間フル活用したいと思います。

ところで、MS さんは、DynamicIT と称して、ハードウェアの仮想化だけでなく、 ミドルウェアやアプリケーションなど、 あらゆるレイヤで仮想化を進めていこうとしているようです。

周囲の変化にあわせて柔軟に対応するために、 あらゆる層で仮想化を行うという考え方は、とてもまっとうなように思います。
しかし、仮想化が進めば進むほど、 それらの管理の重要性も増していくのではないかと思われます。
われわれシステム管理者のニーズは、この先もまだまだありそうで、 食いっぱぐれることもなさそうだな、てなことを感じました。

 

今回も、ここまで読んでいただき、ありがとうございました。
それでは、次回は 6月15日(日) 頃に、お会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」−毎日栗の絵を描いていると、いいこともあります。へへへ。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 5 をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューションや、Solaris10の例も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
Ubun通
Linux(主にUbuntu)と自作PCに関する投稿型情報サイトです。 私の知らない最新のソフトなどが紹介されています。
日本の Linux 情報
日本の、Linux 総本山的なところです。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
Open Tech Press
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

シッダールタ シッダールタ
Hermann Hesse
  何度も読んで理解したい本
新宿駅最後の小さなお店ベルク 新宿駅最後の小さなお店ベルク
井野朋也
  食べてみたくって仕方がありません
第五の山 第五の山
Paulo Coelho
  不可避なことから学べるようになりたい
入門LDAP/OpenLDAP 入門LDAP/OpenLDAP
デージーネット
  超具体的でわかりやすいです
エイジレス革命 エイジレス革命
Deepak Chopra
  固定観念にとらわれないで生きます
免疫革命 免疫革命
安保徹
  免疫力を高めて自力で治すべし!
悪い笛 悪い笛-エハイク2
吉田戦車
  エハイク第二弾。評が絶妙!
ハリー・ポッターと死の秘宝 ハリー・ポッターと死の秘宝
J.K.Rowling
  とうとう最後に…全部読んでよかった
ハリー・ポッターと謎のプリンス ハリー・ポッターと謎のプリンス
J.K.Rowling
  ハリポ月刊なので読み直してます
ハリー・ポッターと不死鳥の騎士団 ハリー・ポッターと不死鳥の騎士団
J.K.Rowling
  ハリポ月刊なので読み直してます
.....

[X]
「賢者の書」 喜多川 泰
「セキュリティウォリア」 Cyrus Peikari, Anton Chuvakin
「CORE MEMORY」 John Alderman, Mark Richards
「新訳 星の王子さま」 サン=テグジュベリ / 倉橋 由美子
「センネン画報」 今日 マチ子
「粟津潔 デザインする言葉」 粟津潔
「Binary Hacks」 高林 哲,鵜飼 文敏,佐藤 祐介,浜地 慎一郎,首藤 一幸
「Make: Volume01」 オライリー・ジャパン
「セーラが町にやってきた」 清野 由実
「手紙屋」 喜多川 泰
「Linuxカーネル2.6解読室」 高橋 浩和,小田 逸郎,山幡 為佐久
「人蕩し術」 無能 唱元
「子育てハッピーアドバイス2」 明橋 大二, 太田 知子
「ラッセル幸福論」 B. Russell
「それでも人生にイエスと言う」 Viktor Emil Frankl
「子育てハッピーアドバイス」 明橋 大二, 太田 知子
「考具」 加藤 昌治
「北欧デザイン<3>」 渡部 千春
「北斎の謎を解く」 諏訪 春雄
「体感美術館」 平野 暁臣
「チベット永遠の書」 Theodore Illion
「リナックスの革命」 Pekka Himanen
「人月の神話」 Frederick Phillips,Jr. Brooks
「ヤバい経済学」 Steven D. Levitt, Stephen J. Dubner
「小布施ッション<2001-2002>」 セーラ・マリ カミングス
「アンパンマン伝説」 やなせ たかし
「夢をかなえるゾウ」 水野 敬也
「ゲーム開発者のためのAI入門」 David M. Bourg, Glenn Seemann
「北欧デザイン<2>」 渡部 千春
「北欧デザイン<1>」 渡部 千春
「ヒューマン2.0」 渡辺 千賀
「中国・ロシア同盟がアメリカを滅ぼす日」 北野 幸伯
「超ロング・セラー 絶滅寸前商品」 湯浅 豊彦
「The BUG(ザ・バグ)」 すずき ひろのぶ,かとう みつあき
「デザインのデザイン」 原 研哉
「マキアヴェッリ語録」 塩野 七生
「ハンバーガーを待つ3分間の値段」 斎藤 由多加
「星の旅人-スペイン「奥の細道」-」 黛 まどか
「食品の裏側」 安部 司
「On Lisp」 Paul Graham
「ぼくが医者をやめた理由 つづき」 永井 明
「あなたならどうする?」 Jack Nikolaschka
「セキュアプログラミング−失敗から学ぶ設計・実装・運用・管理」
      Mark G. Graff, Kenneth R. van Wyk
「「左利き」は天才?−利き手をめぐる脳と進化の謎
      David Wolman
「自分の中に毒を持て」 岡本 太郎
「アトピーの薬を減らす本」 田中 貴子
「岡本太郎「明日の神話」修復960日間の記録」 吉村 絵美留
「X51.ORG THE ODYSSEY」 佐藤 健寿
「アレルギーっ子の暮らし応援BOOK」 佐藤 のり子
「沖縄文化論」 岡本 太郎
「「伝説の社員」になれ!」 土井 英司
「コンピュータの構成と設計(上)」 Patterson & Hennessy
「カラスのジョンソン」 明川 哲也
「ドリルを売るには穴を売れ」 佐藤 義典
「頭がよくなる照明術」 結城 未来
「クロフォードのインタラクティブデザイン論」 Chris Crawford
「いじめの根を絶ち子どもを守るガイド」 Barbara Coloroso
「非常識のすすめ―逆発想の仏教論」 ひろさちや
「Linuxアドバンストネットワーク構築ガイド - HAサーバ構築編」
      デージーネット
「イノベーションの達人!」 Tom Kelly, Jonathan Littman
「クリエーター50人が語る創造の原点」 小原 啓渡
「欺術 - 史上最強のハッカーが明かす禁断の技法」 Kevin Mitnick
「楽しい気象観察図鑑」 武田 康男
「入門 Ajax」 高橋 登史朗
「リリカルな自画像」 岡本 太郎
「やぎの目ゴールデンベスト」 林 雄司
「初めてのPython 第2版」 Mark Lutz,David Ascher
「鼻兎」 小林 賢太郎
「なぜ、これがアートなの?」 Amelia Arenas
「芸術起業論」 村上 隆
「まほう色の瞳」 Enrique Barrios
「ラーメンズつくるひとデコ」 ラーメンズ
「R25 つきぬけた男たち」 R25編集部
「美の呪力」 岡本 太郎
「しろのあお」 上大岡 トメ
「ザ・ゴール」 Eliyahu M. Goldratt
「ハッカーと画家」 Paul Graham
「岡本太郎に乾杯」 岡本 敏子
「Fedore Core Expert」 Software Design
「誰も知らない男」 ブルース・バートン
「子どもが育つ魔法の言葉」 ドロシー・ロー・ノルト
「国家の罠」 佐藤 優
「夜回り先生」 水谷 修
「やぎの目絵日記」 林 雄司
「7つの習慣」 スティーブン・R. コヴィー
「まろ、ん?−大掴源氏物語」 小泉 吉宏
「ザ・サーチ グーグルが世界を変えた」 ジョン・バッテル
「ポストモダン・マーケティング」 スティーブン ブラウン
「機動戦士ガンダムさん」 大和田 秀樹
「小エロのひみつ - Webやぎの目研究発表」 林 雄司
「これ、誰がデザインしたの?」 渡部千春
「60分間・企業ダントツ化プロジェクト」 神田 昌典
「ガルシアへの手紙」 エルバート ハバード
「人生は素晴らしいものだ」 オグ・マンディーノ
「ザ・マインドマップ」 トニー・ブザン,バリー・ブザン
「ワインバーグのシステム思考法」 G.M.ワインバーグ
「渋谷ではたらく社長の告白」 藤田 晋
「渋井真帆の日経新聞読みこなし隊」 渋井 真帆
「コラム息切れ」 小野 法師丸
「早朝起業」 松山 真之介
「変な人が書いた驚くほどツイてる話」 斎藤 一人
「35歳から仕事で大切にしたいこと」 村井 勉
「金融広告を読め」 吉本 佳生
「発想する会社!」 トム・ケリー,ジョナサン・リットマン
「エハイク」 吉田 戦車
「人生の旋律」 神田 昌典
「仕事の思想」 田坂 広志
「CPUの創りかた」 渡波 郁
「非常識な成功法則」 神田 昌典
…これ以前は記録してません…

▼ 気に入ってる本

夢をかなえるゾウ 夢をかなえるゾウ
水野 敬也
  いままでで最高の「笑える」成功本
Linuxデバイスドライバ Linuxデバイスドライバ
Alessandro Rubini,
Jonathan Corbet
  ドライバ作らなくてもためになる
Firefoxの改造テクニック! Firefoxの改造テクニック!
大浦 淳
  いま栗日記拡張を考えてます
Apacheモジュール プログラミングガイド Apacheモジュール プログラミングガイド
小山 浩之
  Apacheの中身もわかるよ
図解 実戦マーケティング戦略 図解 実戦マーケティング戦略
佐藤 義典
  栗日記も戦略的に行こう!
やぎの目ゴールデンベスト やぎの目ゴールデンベスト
林 雄司
  よめも爆笑してました
アルケミスト アルケミスト
パウロ・コエーリョ
  ヘコみそうなとき読みます
X51.ORG THE ODYSSEY X51.ORG THE ODYSSEY
佐藤 健寿
  X51.ORGの集大成
チベット永遠の書 チベット永遠の書
Theodore Illion
  いろんな意味ですごい!!
影響力の武器 影響力の武器
ロバート・B・チャルディーニ
  思わず納得します