2024年3月29日に発覚した「XZ Utils」というライブラリへ仕掛けられていたバックドアについて、ロシアのセキュリティ企業であるカスペルスキーが分析記事を投稿しました。 Kaspersky analysis of the backdoor in XZ | Securelist https://securelist.com/xz-backdoor-story-part-1/112354/ XZは多くのLinuxディストリビューションで使用されている圧縮ツールで、今回は特にOpenSSHのサーバープロセスである「sshd」をターゲットに攻撃が行われました。「Ubuntu」「Debian」「RedHat/Fedora」などのディストリビューションではsshdの起動時に「systemd」経由でXZが呼び出され、sshdにリモートでコードが実行できるバックドアが仕掛けられます。 今回のバックド
はじめに シェルスクリプトの世界は今後 10 年で大きく変化します。10 年という数字は切りが良い数字を持ってきただけで根拠はありません。これより長い時間がかかるかもしれませんし、もしかしたら短くなるかもしれません。しかし確実によりよい方向に変わっていくでしょう。Unix/Linux の標準コマンドはさまざまな問題を抱えています。Unix/Linux の標準コマンドに依存している限りシェルスクリプトに大きな改善はありません。これからのシェルスクリプトの世界は Unix/Linux の標準コマンドに依存しない世界です。それがどういうものになるのかをこの記事で解説しています。この記事は私の予言であり目標です。 シェルスクリプトの失われた30年の進化を取り戻す! 残念なことに、シェルスクリプトの世界は 30 年前から大きく変わっていません。それまでの間、プログラミング言語の世界、ソフトウェア開発
Linux システムコールについて調べたことをまとめる。システムコールの仕組みを理解すると、 OS とアプリケーションがどのように連携して動いているのかを理解できるようになります。 システムコールは CPU に依存する処理が多いため、 x86_64 に絞ります。 検証環境]# cat /etc/redhat-release CentOS Linux release 8.0.1905 (Core) ]# uname -a Linux localhost.localdomain 4.18.0-80.11.2.el8_0.x86_64 #1 SMP Tue Sep 24 11:32:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux ]# cat /proc/cpuinfo | head processor : 0 vendor_id : GenuineInte
※本記事は、2023年7月時点の情報を元にしています。実際に移行を検討される際は、その時点でのAWS等の最新ドキュメントを参照下さい。 最近、 「Amazon Linux 2をAmazon Linux 2023に移行した事例はありますか?」 「Amazon Linux 2023を実際に使ってみてハマった事象があったら教えて下さい」 という問い合わせを目にする機会が増えました。 約1年前に、[Amazon Linux 2(以下、AL2)のEOL(End Of Life)は2025年6月30日に延期されました(https://aws.amazon.com/amazon-linux-2/faqs/?nc1=h_ls)。 AL2のEOLまであと2年ということで、ウォーターフォール型の足の長いプロジェクトであったり、 既存環境でAL2ベースのEC2を大量に運用しているユーザーさんの中では、 もうEO
新人の頃、ファイルの中身を確認するためにcatコマンドを使ったら怒られました。当時はlessやviewなんてコマンドがあるのも知りませんでしたし、周りもcatで中身を見ていたのでそれが当たり前だと思っていました。 まぁ、でもそれもそのはず、catはcatenateの略で連結するという意味があります。というわけで、多分普段よく使っているであろう17コマンド(+2オプション)の意味を調べてみました。 2014/11/18追記 cd, pwdの追記を行い19コマンドになりました。また、@Fool_Yahooman が他の17コマンドの解説をコメントしてくださっているのでこちらも是非。 command complete expression meaning
はじめに 最近プログラマーとしてのキャリアに一区切りつけようと思っており、これまでのプログラミングの勉強の集大成となるブログを書きたくなったので書く。初めてプログラミングをして、フロントエンド開発をして、サーバーから値が返ってきたときは「どういう仕組みで値が返ってきたんだ?」と疑問に思っていた。ずっと理解したくて理解できていなかった。だからずっと勉強していた。そして最近になってようやく自分の言葉で説明できるようになった気がしたのでブログを書きたい。 2015 年版が自分の原点であり、この記事を書くモチベーションになった このような記事は実は過去に存在している。 FYI: https://blog.yuuk.io/entry/2015-webserver-architecture その記事はサーバーがどういう仕組みで動いていて、どのように進化し、2015 年に至るかを解説してくれた記事だ。自
Jack Wallen (Special to ZDNET.com) 翻訳校正: 編集部 2023-03-30 07:45 筆者は1997年以降、「Linux」をメインのOSとして使用している。このオープンソースOSを最初に使い始めた頃は、いろいろと大変だった。コマンドラインを使わなければならないことが多く、33.6kモデムがオンラインに接続された状態を維持するのは悪夢のような経験だった。かなり粘り強く取り組むことで、筆者はLinuxを機能させることに成功し、最終的には、Linuxとオープンソースソフトウェアに関する記事を執筆することが自分の仕事になった。 当時、LinuxをノートPCにインストールすることは、非常に高度なスキルを持つユーザーにしかできないことだった。その作業を困難にしていたのは、(当時の)LinuxがWi-Fiカードやサウンド、ビデオなどを十分にサポートしていなかったこと
はじめに Dockerfile、サッと書こうと思ったのに、書き始めたら意外と時間かかったりしますよね。 突き詰めるとすごく奥が深いなと思います。 公式のドキュメントでも、Dockerfileのベスト・プラクティスという形で公開してくれていますが、 これを毎回意識するのは大変です。 また、意識できていたとしても、複数人で管理していると、各個人のスキルレベルによって差が出てしまいます。 そんなときにおすすめのツールを見つけたので紹介します。 hadolintというツールです。 Haskell Dockerfile Linterの略だそうで、Dockerfileの静的解析を行ってくれるlintツールです。 hadolintを使うとこんな利点があります。 build前にシンタックスエラーなどに気付ける (地味にトライアンドエラーしてると時間食うんですよね...) 自然とベストプラクティスに則ったD
マスタリングLinuxシェルスクリプト 第2版 ―Linuxコマンド、bashスクリプト、シェルプログラミング実践入門 作者:Mokhtar Ebrahim,Andrew MallettオライリージャパンAmazon 令和最新版のシェルスクリプトの入門書とリファレンスがセットになった1冊。手元に置いておくと安心感ありますよね。 令和最新版なので、冒頭からデバッグしたいならVisual Studio Code がオススメ、と出てきます。 コンテナ使おうと思ったらシェルスクリプトの読み書きの出番がどんどん増えていって、コンテナに一番必要なスキルはシェルスクリプトのスキルでは?と思っている今日この頃です(違います)が、そのくらいの用途に必要な要素は全部盛り込んであり、シェルスクリプトの文法と実践的な使い方に加えて、一緒に利用されることの多いgrep、awk、sedといったコマンドの解説も併せて載
Linuxでネットワーク経由のデータを処理するプログラムでも、ローカルファイルのデータを処理するプログラムでもファイルディスクリプタ(ソケットディスクリプタ)という言葉を聞いたことがありますよね。 C言語で学ぶソケットAPI入門 第1回 サーバ編にもソケットディスクリプタとして登場しました。 プロセスとやりとりできる状態になったファイルを識別するための整数値ということは、ほとんどの人が理解していると思いますがそれ以上になるとそこまで深くは知らないという方もいるのではないでしょうか? もちろんLinux上でアプリを作る限りにおいては、それ以上知る必要はなくファイルディスクリプタを使ってCRUDにかかわるAPIを適切に選択してプログラミングすることができれば、プログラマーとしては何も問題ありませんよね。 (ファイルディスクリプタにまつわる問題として、プロセスが開くことができるファイルディスクリ
Rocky Linux リリース状況 本投稿は、さくらインターネットアドベントカレンダー2022の4日目の投稿です。5日目は@naominix@github さんの記事です、楽しみですね。 さて、私からは先日オープンソースカンファレンス2022/Onlineで発表した「忙しい人のための Rocky Linux 入門」を、現状にあわせてご紹介します。 Rocky Linux とは? Rocky Linux(ロッキーリナックス)は CentOS Linux の後継を目指す Linux ディストリビューションの1つです。公式サイト https://rockylinux.org の説明では「Rocky Linux is an open-source enterprise operating system designated to be 100% bug-for-bug compatible wi
概要 ※この記事のワンライナーを"シェル芸"と呼ぶには、本物のシェル芸人さんたちに失礼かもしれませんが、この場では"シェル芸"という言葉を使わせていただきます(_ _) この記事では、シェル芸がどんな場面で役に立ったか、具体的な事例をひたすら列挙します。 「こんなこともできるのか!」、「これをたった一行のコマンドで処理できるのか!」、「なんか便利そう!」という感じで、Linuxコマンドの便利さ、シェル芸の雰囲気を感じ取ってもらうのが目的。 なのでコマンドの解説はなしです。 課題→シェル芸による解決、という一問一答形式で列挙していきます。 この記事で紹介するようなワンライナーがその場でパッと思いつくレベルになると、色々便利です。 bashさえあれば、プログラムを書かなくてもその場でサラッと強力な処理ができる、というのが良い。 ほんと色々なことがちょこっとコマンドを打てば解決できるのでとても気
パイプライン処理とは GUIは非常に直感的です。はじめて使うアプリであっても、なんとなくそれなりに動かせてしまうという点で、優れたインターフェイスと言えます。しかし効率を突き詰めると、軍配が上がるのはGUIよりもCLIでしょう。本連載の読者であれば、UnixライクなOSのCLIが持つパワーについては当然ご存知かと思います。 とはいえ、古典的なUnixコマンドの多くは、単体ではそれほど強力なものではありません。というのも、ひとつひとつのコマンドはシンプルに、特定の用途においてのみ上手く動作するよう設計されていることがほとんどだからです。こうしたコマンド群に無限のシナジーを与えるのが「パイプライン処理」です。標準入出力を通じて複数のコマンドを直列に繋げることで、複雑な処理をインスタントに組み立てることができるパイプラインは、まさにUnix哲学の体現であり、CLIの真髄はここにあると言ってもよい
を設定してから再度試した所 bar が表示された。backupcopy は編集中のファイルによって自動で判別する auto がデフォルトになっている為、試す際には明示的に yes に設定しないといけない。 bash の実装確認 evalstring.c の parse_and_execute でコマンドが処理されており、input.c の with_input_from_buffered_stream で読み込みの準備が行われている。バッファの読み込みの本体は y.tab.c つまりパーサから直接呼ばれており、このパーサは fgets(3) で読み込まれつつ実行される為、一括でファイルが読み込まれている訳ではない。 while/do でループ実行した際に、ファイルを書き換えられたら戻り先はどうなるか、についてはスクリプトはバッファ付きで読み込まれており、そのバッファがファイルシステムから読
POSIX 準拠のシェルスクリプトでは find | xargs よりも find -exec {} + を使うべき!ShellScriptBashshellPOSIX はじめに find の出力を xargs にパイプで渡すというのはよく見かける使い方ですが、find -print0 | xargs -0 が使えない POSIX 準拠のシェルスクリプトでは find -exec {} + を使った方が良いです。安全かつ十分に速いからです。よく見かける -exec {} ; ではなく -exec {} + ですので間違えないようにしてください。多くのケースでは + の方が優れているのですが ; ばっかり使われているのを見ると、意外と知られてない気がします。 少しだけ予備知識として、-exec {} ; は -exec {} \; と ; をバックスラッシュでエスケープするのがよく見る使い方
はじめに この記事は以下の記事で事故がなぜ起きたかを技術的に理解し筆者のtipsを共有しようと思い書きました。あくまで筆者のtipsですので、これが正しいとは限りません。 やはり、下記のコマンドが原因でした。 [root@foo script]# ls -l | sh 事故そのものは ls コマンドに -l を付けて実行してしまった事で、ls コマンドが出力したシンボリックリンクが以下の様になってしまったという話です。
シェルでデータ加工するときSEDをよく使いますが、その利用例と覚え書きです、参考になれば sedコマンドはLinux/Unix/BSD/OSXに標準で入っているので、Macの人なら覚えておくと捗るかも(Linuxとは少し違うのでそこは調べてね?) 当方の利用環境がRedhat系Linuxメインですので、微妙に書式が異なることがありますが、大体の書式は同じはずですので、そこは、ご容赦願います (4/15 ちょっと追加…) Windowsでもsed使いたいという人がいたので、ちょっと追記、以下のサイトからWindows用のバイナリを取得すれば、Windowsでもsedが使えます。WSLなどLinux環境を追加したくない、sedのコマンドだけほしい、PowerShellやプロンプトで使えればいいだけという人にお勧めです。 sed for Windows Site 使用例をいろいろ上げてみる '#
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く