Linux

root権限を持たないユーザで 80番ポートを開放しようとすると選ぶと怒られる理由

Dockerfileをベストプラクティスに沿って作るとそうなりがち docs.docker.com 理由 0〜1023 までのポートは well known port と呼ばれ、開放にroot権限が必要なため そういう場合に8080を選ぶ理由 8080は、非rootユーザがwebサーバを立てる時の使うポートと…

dockle の警告 `CIS-DI-0008` をどのように処理すべきか考えた

dockle って? コンテナイメージのセキュリティチェックツールです。ビルドしたImageを通すと、セキュリティ的に問題がある部分を指摘してくれます github.com 警告 CIS-DI-0008 って? これですね CIS-DI-0008: Remove setuid and setgid permissions in the …

docker-slim で 任意のバージョンの ImageMagickを入れる方法

レガシーなシステムをDocker化するときにたまによくやるのでメモ 多分、Aplineでもおんなじだと思う 方法 コードからmakeする ARG IMAGE_MAGICK_VERSION=${好きなパージョン} RUN wget --quiet https://imagemagick.org/download/releases/ImageMagick-$IMAG…

Alpine Linux で欲しいファイルを持っているパッケージを探す方法

Alpine Linux で gem install をした時のエラーメッセージから不足しているファイルを見つけて、それを持っているパッケージを探す方法を記します native extension を持っている gem install を失敗する時、こんなエラーメッセージが出ます 例: gem pg イン…

Alpine Linuxのパッケージ管理システムapkについて理解を深める

APK is 何? apk = Alpine Linux package management Alpine Linuxのパッケージ管理システム パッケージって何? Linuxが採用しているアプリケーションの配布形態。アプリケーションによっては、正常に動作させるためには「ライブラリ」と呼ぶ別のプログラムを…

Linux系のパッケージのバージョン番号が古くても、セキュリティフィックスは入っている場合があるというお話

概要 Linux系のパッケージのバージョン番号が古くても、セキュリティフィックスは入っている場合がある 例えば Debianのbuster(バージョン10)に入っている apache2 は 2.4.38 https://packages.debian.org/ja/buster/httpd/apache2 本家の apache2 は 2.4.43…

特定のpidの標準/標準エラー出力を確認する

$ tailf /proc/${pid}/fd/1 $ tailf /proc/${pid}/fd/2 知らなかった...流石linuxは何でもファイルだ...

AWS Codebuild で dig とか host コマンドを使う方法

先に方法 buildspec に以下を追加 phases: install: commands: - yum -y install bind-utils 解説 AWS Codebuild で動作させる、Amazon Linux 2 (centOSベース) には、host や dig コマンドがインストールされていない host や dig コマンド は、bind-utils …

curlは-fオプションをつけないとサーバエラーでも戻り値は0になる

サーバエラーが帰ってきても、curlの戻り値は0 $ curl -Is http://ozuma.sakura.ne.jp/httpstatus/500 HTTP/1.1 500 Internal Server Error Server: nginx Date: Tue, 04 Feb 2020 00:51:35 GMT Content-Type: text/html; charset=utf-8 Connection: keep-al…

バックグラウンドジョブおぼえがき

概要 job を用いて複数のコマンドを1つのシェルで平行して実行することができる 普通にコマンドを実行すると始まって、入力を受け付けるのが フォアグラウンドジョブ 入力を受け付けずに、CUIの後ろで実行されるのが バックグラウンドジョブ バックグラウン…

古いCentOSのcurlで、githubにアクセスしたい時に見るページ

curl --tlsv1.2 https://github.com/hoge.keys --tlsv* オプションで、通信に使用するTSL/SSLのバージョンを指定できる TLS 1.0 は脆弱性があるため、無効になっているサイトが多い(githubとか) しかし、古いバージョンのcurlにはバグがあり、TLS 1.0 でしか…

ハードリンクしたファイルはinode番号が同一値になる

inode とは UNIX系ファイルシステムで使われているデータ構造 UNIXのファイルは、inodeと、実際のデータの組み合わせ inodeには、inode番号と、ファイルのサイズなどの属性情報が格納されている inode番号 とは 各nodeに与えられる任意の値 各ディレクトリは…

yumリポジトリにEPELを追加する手順

ダウンロード ここから対象バージョンのepelをダウンロードする http://ftp.riken.jp/Linux/fedora/epel/ 最新のCentOSならば wget http://ftp.riken.jp/Linux/fedora/epel/epel-release-latest-7.noarch.rpm インストール sudo rpm -ivh epel-release-lates…

yumについて理解が進んでいないのでメモ

CentOSでのパッケージ管理についてのお話 用語 RHEL : Red Hat Enterprise Linux yum yum : Yellowdog Updater Modified RPM Package Managerのパッケージを管理するメタパッケージ管理システム RPM? RPM : RPM Package Manager RedHat系OSが使うパッケージ…

iptables について理解する

iptablesってなんぞ? Linuxに実装されたパケットフィルタ兼NAT NAT? NAT(Network Address Translation) ネットワークアドレス変換 ローカルIPと、グローバルIPの変換を行う ローカルから外部に出るときに、グローバルIPの割当を行う 外部からローカル内の…