Software Design の2021年4月号について、
- ざっくり内容紹介
- 個人的に気になった記事やポイント
をまとめている記事です。
サマリー記事の一覧はこちら。
特集①:新人教育に役立つLinux総復習
- プロセス管理
- プロセスの数を出力する:
ps aux --no-headers | wx -l
- プロセスには親子関係がある、PIDとPPID、親子のツリー表示:
pstree
- プロセスの起動時間などは
time
コマンドで - なんか無意識に飛ばし読みしてたけど、やっぱりこういう分野興味持ててないのかな…笑
- 絶対殺すマン「SIGKILL」シグナルと絶対死なないマン
- プロセスの数を出力する:
- パーミッション
- ユーザーの種類はroot、システムユーザー、一般ユーザー
- 「グループ」でユーザーをまとめよう
- パーミッション表記のいつものやつ:
-rwxrwxrwx
- あと
chmod
の話 umask
というコマンドでパーミッションの引き算というのができるらしい、いつ使うもの???- SUID、SGID、スティッキービット:疲れたのでちょっと飛ばすw
- suとsudo
- suで他のユーザーになりかわる(substitute!SuperUserじゃなかった!!笑)、
-c
オプションでsudoと同じ動作らしい - sudoで他ファイルへの出力などに失敗するとき、
sh -c
を含めるとコマンドの引数やリダイレクト先までsudoの範囲にできる
- suで他のユーザーになりかわる(substitute!SuperUserじゃなかった!!笑)、
- ディレクトリ構造とファイルシステム
- Linuxのディレクトリ構成の基本はFHSというもので規定されている
- 予想通りUNIXライクのOS全体のファイルシステムのガイドラインを定めているんだと。
- ルート直下のいつものディレクトリ群もここで定義されていた
- ルートディレクトリのそれぞれの役割などの一覧表あり。静的か共有可能かの情報もある。
/home
は必須じゃないらしい- パーティションのわけ方、UEFI用のパーティション、パーミッション、swapなど
- ファイルシステムの選び方!:ext4、XFS、btrfs、F2FS。CentOS系のデフォルトは???
- Linuxのファイルには全ての固有IDがある→inode
- 「ファイル名」は「ディレクトリ」のメタデータが管理してるらしい
- シンボリックリンクとハードリンク:いつもの説明だった
- 「ジャーナリング」という耐障害性の機能がある、ちゃんと最後まで書き込みできたら本番書き込みをするみたいな感じ、DBの不可分性に似てる?
- Linuxのディレクトリ構成の基本はFHSというもので規定されている
- パッケージ管理
- パッケージマネージャがもしもなかったら…→全部自分でビルドして、依存解決して…となる。コンパイラを本番環境に入れとかないといけないとかでセキュリティリスクも高くなるんだと。なるほど。
- Red Hat系→
rpm
、yum
、dnf
。dnfというのは使ったことないですな。あとyumはrpmの追加なので内部参照してるんだって! - Debian系→
dpkg
、apt
。dpkgというのは知らん。 - info/install/removeとかの説明
- yumからdnfというのに移行する過渡期?CentOSもバージョンアップしてみんなデフォルトが変わっていったりするんだろうか
特集②:実務に活かせるSSL/TLS入門
- httpsの話とか、最近の主にChromeが推進しているSSL強化の件の話とか
- 「Let's Encryptが営利団体に買収されでもしたら超ウケる」みたいな話を前にしたけど、やっぱり彼らは偉大ですね
- SSL証明書の役割
- 一番の目的は通信の暗号化によるデータ盗聴の防止。改ざんじゃないのね?
- 通信の暗号化だけなら自己署名のSSL証明書で可能←前やって酷い目に遭った件
- で、さらに「この証明書はこのドメイン向けに発行していて、そのサーバから送られてきている改ざんやなりすましの無いデータであること」を第三者機関が証明する必要があり、これが認証局とSSL証明書であると。
- でもこの理論だと「なんでお金払ってないLet's Encryptの証明で同じ粒度の強さで効力があるのか?」がやっぱり疑問になっちゃうね(価格の高さによって暗号強度が変わったりすることはない)
- 実際の公開鍵暗号の基盤の話がちゃんと書いてあるので分からなくなったらまた読もう
- サーバーとのデータのやり取りは共通鍵暗号方式を使うなど使い分けあり
- ルート証明書、中間CA証明書、サーバ証明書:ややこしい。ああ、ややこしい。非常にややこしい(割愛)
- Let's Encryptを実際に使ってみる
- だいたいいつもの手順の話
Column
- 統計の超入門
- 平均値、中央値、分散など。標準偏差の話が多いほうが実用的だと思ったけどどうなんだろう(実験してデータ取るときはσ以外が話に登場したことはなかった)
- 統計は昔ちゃんと勉強したけど見事に全部忘れているので、ずっとやり直したいと思っている…。やらなきゃ…。
Development
- イラストで明解Gitコマンド「git branch」
- デフォルトブランチの説明に「master以外にmainも増えてきた」とあったけど、初めて聞いた。originalというのはどういう位置づけなのかいまだによく分かってない
git branch
に--all
オプションでリモート側のリポジトリも表示できる
- wgetの脆弱性 ~競合状態~
- 「複数の独立したプロセスやスレッドなどが、共有のデータらファイルなどのリソースに対し、不適切な結果を生むような変更を加えることが可能な状況に起因する脆弱性
- 長すぎ3行で頼む
- 再帰的ダウンロードオプション
-r
は-A
と合わせると特定の拡張子などのみを取得することができる - 実際には「ダウンロードを弾いている」のではなく「ダウンロード後に削除している」、しかもネットワーク切断後に。なんでそんな実装なんや…
- 削除されるまでの間に色々できちゃうZE☆
- 再帰的ダウンロードオプション
- これの修正見解が面白くて、最終的には「削除予定のファイルの末尾にtmp拡張子を付けるandそのファイルを600権限にする」だけで落ち着いたんだそう。
- 自分も真っ先に思ったランダムサフィックス、あとは一時ファイルはメモリで持つみたいなのは修正量と利便性からなくなったんだって。こういうこともあるんだね~
- ちなみに「別にwget自体は悪くないのでは?」の意見も一理あった。サーバー側のファイルに自由にアクセスできちゃうのはそもそも管理者に責任があるからね
- 実際の修正実装例まで出てた、このコーナー前回も思ったけどやっぱりこの雑誌で一番面白いかも。
OS/Network
- 今日はこのあとのマッサージの時間が押してきたためカット!
そのほか
- 同上!!
Software Design 2021年4月号
この号の分のみ単品で読みたい方は、普通にAmazonで買うのがおすすめ。
紙 or 電子書籍で選べます。