ほとんどの「Linux」ディストリビューションは、初期状態でも「Windows」よりかなり安全だ。それには、さまざまな理由がある。例えば、固有のユーザー権限とファイル権限の構造があること、基盤となるセキュリティテクノロジー(「SELinux」「AppArmor」など)が追加されていること、オープンソースであること(コードの検証とピアレビューがいつでも可能)などだ。
Linuxのセキュリティ強化のためにすぐに利用できるコマンドがいくつかある。これらのコマンドの中には、ほかのコマンドよりも扱いが難しいものもある(iptablesなど)。また、明らかにセキュリティに重点を置いているものもあれば、一見しただけではセキュリティとの関連性が分かりにくいものもある。
すべてのLinux初心者は本記事で紹介するいくつかのコマンドについて、少なくとも存在だけは知っておくべきである、と筆者は考えている。たとえ使用しないとしても、これらのコマンドの存在を知っておくだけで、Linuxに対する自信がより強固になるはずだ。
1. sudo
このコマンドを紹介するのは当然である。あるいは、当然であるべきだ。管理者権限を求められるコマンドを実行する必要があるときはいつもsudoを使用することになる。システムのアップグレード、ファイアウォールのルールの追加など、昇格された権限を求められるほぼすべてのプロセスには、sudoが必要だ。
それでは、sudoとはどんなものなのだろうか。簡単に説明すると、sudoとは「super user do」の略で、sudo権限を持つすべてのユーザーに、昇格された権限へのアクセスを許可する。
複数のユーザーが使用するLinuxマシン(家庭で共用しているコンピューターなど)で作業する場合は、sudo権限を持たないユーザーを作成できる。そのユーザーは管理者権限を必要とするタスクを実行できない。つまり、OSのアップグレードやアプリケーションのインストールなどを実行することはできない。
2. who
コンピューターを使用しているときに、「ほかの誰かが勝手にログインして、不正行為をしているのではないか」と不安になったことはないだろうか。Linuxでは、whoコマンドを実行することで、誰がログインしているのかを正確に確認できる。オプションや引数を使用する必要はない。whoと入力して、キーボードの「Enter」キーを押すだけでいい。
コマンドを実行すると、以下のような出力が表示される。
jack :1 2024-08-18 08:23 (:1)
ユーザー名、そのユーザーが使用しているTTY(この場合は:1)、ログイン日時が表示される。
ログインすべきでないユーザーがログインしている場合は、以下のようなコマンドで強制的にログアウトさせることが可能だ。
sudo pkill -KILL -u USERNAME
USERNAMEは、対象となるユーザーの名前だ。
3. file
システムでファイルを見つけたが、どのような種類のファイルなのか分からなくて困惑した、という経験はないだろうか。例えば、作成したり保存したりした記憶がないファイルがディレクトリーにある場合は、そのファイルの種類を確認した方がいいかもしれない。例えば、ドライブにthisfileという名前のファイルを保存したが、ファイルの種類を示す拡張子を追加するのを忘れていたとしよう。
そのファイルは、無害なテキストファイルかもしれないし、悪意あるバイナリーファイルかもしれない。それを確認するには、以下のコマンドを実行する:
file thisfile
以下のような出力が表示される。
thisfile: ASCII text
ファイルがバイナリーで、そのファイルをホームディレクトリーに保存した記憶がない場合は、削除することを検討した方がいいかもしれない。ただし、ファイルの削除は慎重に実行してほしい。ルートディレクトリーにアクセスして、/etc/や/usr/などのシステムディレクトリー内を探し回るのは避けてほしい。システムディレクトリーのファイルを削除すると、システムに大混乱が生じる可能性があるため、ファイルを確認するのはホームディレクトリー内だけにしてほしい。