Linux

[Linux] yumで特定パッケージのバージョンアップを阻止する

ローカルでの検証用にVirtualBox上でLinuxを動かしているのですが、迂闊にkernelのバージョンを上げてしまうとGustOS用のドライバ(Guest Addition)の再インストールが高確率で発生します。それは良いのですが、問題は再インストールが一発で上手くいった試しがなく、大抵ドハマリして長時間作業が止まる羽目になるんです。

というわけでyum updateの対象にならないよう設定を行います。

設定

以下のように/etc/yum.confに1行書き足せばOK。

$ sudo vi /etc/yum.conf
exclude=kernel*

excludeの横にyumでアップデート対象にしてほしくないパッケージ名を指定するだけです。アスタリスク(*)はワイルドカードを意味し、この場合だとkernel-develなどkernelで始まるものをすべて対象とします。

他に追加したい物があれば、スペースで区切って横に追記してやります。

$ sudo vi /etc/yum.conf
exclude=kernel* php*

続きを読む

[Linux] パスワードを変更する – passwd

Linux上のユーザーのパスワードを変更するにはpasswdコマンドを利用します。

実行例

自分のパスワードを変更する

自分のパスワードを変更する場合、管理者権限(root権限)は不要です。

$ passwd
ユーザー katsube のパスワードを変更。
katsube 用にパスワードを変更中
現在の UNIX パスワード:
新しいパスワード:
新しいパスワードを再入力してください:
passwd: すべての認証トークンが正しく更新できました。

一般的にUNIX系OSでは入力したパスワードは画面上には表示されません。入力した桁を表現するアスタリスク(*)もです。悪意を持った第三者が背中越しに盗み見る「ショルダーハッキング」を行われた際の防御のためです。

この例のようにpasswdは自分自身のパスワードの変更はもちろんですが、管理者権限(root権限)があれば他のユーザーのパスワードも変更できます。

続きを読む

[Linux] ユーザーを新規作成する – useradd

Linux上にユーザーアカウントを新規に作成するコマンドはuseraddです。

$ sudo useradd -m (ユーザー名)

細かい設定の変更は作成後にいつでも行うことができるので、オプションを指定し忘れた場合は各種設定を行うコマンドを追加で実行すれば大丈夫です。作成したばかりならユーザーを削除してももちろんOKです。

続きを読む

[Linux] ユーザーを削除する – userdel

Linuxで作成済みのユーザーを削除するにはuserdelコマンドを実行するだけです。

$ sudo userdel -r (ユーザー名)

なお特に確認は求められず、Enterキーを押した瞬間削除されますので実行には十分気をつけてください。

続きを読む

[Linux] MD5の値を大量にチェックする

小ネタです。
例えばsplitコマンドなどで分割したファイルをダウンロードした際に、一つ一つMD5の値を確認するのはダルいですよね。md5sumコマンドでは、予め検証したいファイルのパスとそのMD5の値をペアで記述されたファイルを用意しておくと、一発で確認することでができます。

定義ファイルは以下のようにMD5値と、ファイルのパスを半角スペースなどで区切って書きます。

$ cat MD5SUM
f64062373f79e3fdabed57f6aec6d54d data/foo.zip.1
89063c79371e866afe627ddc221d3a9e data/foo.zip.2
993e1252af0e1fbd2435dcadd2a9fead data/foo.zip.3

あとは-cオプションでこの定義ファイルを渡せば自動的にチェックしてくれます。

$ md5sum -c MD5SUM
data/foo.zip.1: OK
data/foo.zip.2: OK
data/foo.zip.3: OK

続きを読む

[Linux] Bashでwgetの戻り値をチェックする

小ネタです。
シェルスクリプトを書いている際にwgetで正常にファイルをダウンロードできた場合のみ処理を継続したい場合には次のようなコードを書きます。

#!/bin/bash

wget 'https://example.com/foo.zip'

if [ $? -ne 0 ]; then
  echo "[ERROR] 正常にダウンロードできませんでした"
  exit 1
fi
  • $?は直前のコマンドの実行結果が自動的に入ります。
  • 比較演算子の-nenot equalの略で、値が等しくない場合に使用します。

続きを読む

[Linux] メモリ上に高速なディスクを作成する – tmpfs

Linuxでいわゆる「RAMディスク」を作成してみます。
HDDは情報の読み込みでも書き込みでも物理的な速度でメモリにはかないません。で、あるならばメインメモリの一部をHDDに見せかけることができれ5ば超高速なストレージとして使えるのでは!という発想ですね。Linuxではtmpfsと呼ばれる仕組みを利用することで手軽に利用できます。

もちろん、メモリ上にデータを置きますので電源を落とした瞬間にすべてが失われます。主にキャッシュなど一時的な利用が中心になると思われます。

続きを読む

[Linux] コマンドラインでHTTP通信を行う – Telnet編

HTTP/1.1まではサーバクライアント間の通信内容がテキストでのやり取りのため、人間が手作業でサーバと直接やるとりすることが可能です。HTTPの勉強はもちろんですが、開発時にGoogleChromeなどWebブラウザや便利ライブラリによってブラックボックス化されないため純粋な通信状況を確認する際に役に立ちます。

今回は古来から伝わるtelnetコマンドで行う方法を試してみます。
続きを読む

[Linux] ログイン中ユーザーの一覧を表示 – who, w

who

whoコマンドを利用します。

$ who
katsube  pts/0        2019-03-29 18:27 (210.160.37.89)
katsube  pts/1        2019-03-29 18:29 (210.160.37.89)
katsube  pts/2        2019-03-29 18:30 (210.160.37.90)

w

wコマンドではユーザー一覧に加えて、ユーザーが実行しているプロセス名なども表示してくれます。

$ w
 18:30:03 up  9:14,  3 users,  load average: 0.22, 0.16, 0.10
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
katsube  pts/0    210.160.37.89    18:27    2:18   0.00s  0.00s -bash
katsube  pts/1    210.160.37.89    18:29   14.00s  0.01s  0.01s top
katsube  pts/2    210.160.37.90    18:30    2.00s  0.00s  0.00s w

続きを読む

[Linux] ポートスキャンを行う – nmap

不必要にポートを開放していると、そこからアタックを仕掛けられることがあります。
またSSHを22番などデフォルトのポートで開放している場合もターゲットにされやすいため、別のポート番号にしておくのも定石だったりもします(諸説ありますが個人的にはピンポンダッシュを防げるのでいつも変更しています)。

不特定多数がアクセスできる状態にあるサーバや端末は、少なともリリース前にはポートスキャンをかけておくのがおすすめです。

nmapのインストール

macOSの場合はbrewで一発です。

$ brew install nmap

Linuxなどの場合はyumで一発です。

$ sudo yum install nmap

続きを読む

[Linux] 改行コードを変換する

改行コードの種類

まず大前提としてOSや利用している環境によって、最近では大きく2つの改行を表す文字コードが存在します。

改行コードOS
LFLinux, macOSなど
CR+LFWindowsなど

以前のMacOSではCRが採用されていましたが、MacOSX以降はUnix系OSと同じLFとなっています。

変換の必要が出てくるシチュエーションとしては、Windows環境からLinuxなどへファイルを移した時などですね(もちろんWindowsでも環境を整えればLFで作成はできますが)
続きを読む

[Linux] 文字コードを変換する

Linux上で文字コードを変換するコマンドといえば、nkficonvの2つ。よく忘れるので備忘録がてらオプションと使い方をメモしておきます。

nkf

実行例1 – 出力する文字コードを指定

入力側の文字コードは自動で判定してくれますので、出力側の文字コードをオプションで指定します。

$ nkf -s foo.txt > foo_sjis.txt
$ cat foo.txt | nkf -s > foo_sjis.txt

続きを読む

[Linux] 文字コードを調べる

指定したテキストファイルの文字コードをLinuxではnkfコマンド、またはfileコマンドで確認することができます。

$ nkf --guess foo.txt
UTF-8 (LF)
$ file foo.txt 
foo.txt: UTF-8 Unicode text

よく忘れるのでメモ。
iconvは変換だけで表示はしてくれないみたいですね。

続きを読む

[Linux] スワップ領域を作成する

AWS EC2でインスタンスを新規に作成すると、もれなくスワップ領域が存在しません。
まぁ…スワップ使い始めると劇的にパフォーマンスが落ちるので、足りなくなったらメモリ増やすなり、AutoScalingなりでインスタンス数を増やせってことなんだと思いますが、例えばmakeコマンドなどでビルド中に微妙にメモリが足りなくなった場合は普通にスワップ使ってもらった方が面倒事が少なくて助かる場合もあります。

というわけで今回はLinuxにスワップ領域を作成しマウントするところまでをメモしておきます。
続きを読む