Linuxで設定ファイルを編集するときの基本

Linuxではアプリケーションの設定を変える際には設定ファイルを直接編集することが多いです。

ここでは設定ファイルの編集の方法を記載します。

今回はCentOS8のSSH設定で触れられている「rootへの直接アクセス禁止」の設定で /etc/ssh/sshd_config を編集する場合の例を取ります。

この記事で行うこと

  1. 編集したいファイルのバックアップ
  2. viでファイルを編集する

1. 編集したいファイルのバックアップ

ファイルのバックアップといっても大層なことではありません。

編集したいファイルを別の名前でコピーしておくだけです。

大体の場合はファイルの拡張子を変えます。(拡張子が無い場合は拡張子を付け加えます)

また、ファイルのコピー先は元のファイルと同じ場所で大丈夫です。

今回の例の場合以下のようになります。

# cp /etc/ssh/sshd_config /etc/ssh/sshd_config.backup

cpコマンドについては当サイトの「Linuxの基本コマンド – ファイル操作」内に解説がありますので、参考にしてください。

私は「.backup」という拡張子にしましたがこれは何でも構いません。ただし、実際によく使われる拡張子は避けた方が良いでしょう。

2. viでファイルを編集する

viというのはLinuxであればほぼ必ずと言って良いほど入っているテキストエディタです。(実際は最近のOSだと上位互換のvimが入っていますが)

viでファイルを編集するときは以下です。

vi [開きたいファイル]

今回は以下のようになります。

# vi /etc/ssh/sshd_config

するとファイルの中身が表示されるはずです。

viは取っつきづらいことで有名ですが、vimはカーソルキーが使えるのでなんとかなります。

キーボードの「i」キーを押すと編集モードなります。

編集モードでないと、入力できないので注意してください。

「Esc」キーを押すとコマンドモードになります。

このモードではコピー&ペーストや文字列の検索・置換などができます。この辺りは興味がある方は「vim 使い方」などで調べてみてください。(コピー&ペーストはSSHクライアント側の機能で割となんとかなります)

ここで覚えておきたいのは編集モードでないときに入力しようとすると、コマンドモードであらぬコマンドが実行されてしまい大変なことになるということです。

編集モードの時は下の方に「–INSERT–」と表示されるので、必ず入力前に確認してください。

また、ファイルの保存やファイルを閉じるのはコマンドモードで行います。

「:」キーを押すとコマンドを入力できますので、ここで以下のコマンドを入力することで操作可能です

:w保存
:qファイルを閉じる
:wq保存してファイルを閉じる
:q!保存せずにファイルを閉じる(ファイルを編集した場合「:q」では閉じれません)

まとめ

今回は設定ファイルの編集方法を扱いました。

Linuxを触る際には様々な設定ファイルを編集することになりますが、必ずバックアップは取るようにしましょう。

あとから「なぜか動かない。変えたはずの所を直しても戻らない」ということになった私との約束です。

CentOS8で自身のプライベートIPアドレスを調べる

サーバを確認したり変更を加える度にいちいちサーバにキーボードやディスプレイを取り付けて調べるというのは面倒です。

だからといってサーバに常にキーボードやディスプレイを付けっぱなしにするのもキーボードやディスプレイが有り余ってなければ現実的ではありません。(仮に有り余っていたとしても場所を取ってしまうのであまりやりたくありませんね)

そのため多くの場合は自分が普段使っているPCから操作できるようにします。

これを実現するためにはそのサーバの在処、IPアドレスを調べます。

この記事で行うこと

  1. ネットワークに接続しているデバイス名を調べる
  2. ネットワークに接続しているデバイスの詳細情報を得る

1. ネットワークに接続しているデバイス名を調べる

以下のコマンドを実行します。

# nmcli d status
DEVICE		TYPE	 STATE		CONNECTION
[デバイス名]	ethernet 接続済み	enp3s0
  • nmcli : NetworkManagerに含まれるツール名。(NetworkManagerCLIentの略?)
  • d : 操作対象がデバイスであるという意味。(”device”でも動きます)
  • status : 状態の概要を確認するコマンド。(操作対象がデバイスの時に何のコマンドも入力しないとこれが実行されます。)

ここでSTATEが接続済みとなっているデバイスの名称を覚えておきます。

2. ネットワークに接続しているデバイスの詳細情報を得る

以下のコマンドを実行します。

[デバイス名]の部分は先ほど調べた接続済みのデバイスの名称です。

# nmcli d show [デバイス名]
GENERAL.DEVICE: [デバイス名]
GENERAL.TYPE: ethernet
GENERAL.HWADDR: XX:XX:XX:XX:XX:XX
GENERAL.MTU: 1500
GENERAL.STATE: 100 (接続済み)
GENERAL.CONNECTION: enp3s0
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: オン
IP4.ADDRESS[1]: 192.168.10.7/24
  • show : 特定のデバイスの詳細を表示するコマンド

ここで重要な情報は「GENERAL.HWADDR」と「IP4.ADDRESS」の二つです。

「GENERAL.HWADDR」はMACアドレスと呼ばれる物で、ルータからIPアドレスを固定させるときなどに使います。(実施方法や可否はルータによって異なるので各自で調べてみてください)

「IP4.ADDRESS」はその名の通り、そのサーバのIPアドレスとなります。

似たような物に「IP6.ADDRESS」というのもありますが、これの違いは「IPv4 IPv6」で調べると分かるかと思います。現時点において自宅サーバでこれを使うことはほぼ無いですね。

まとめ

今回の記事ではサーバのIPアドレスを調べる方法を扱いました。

CentOSでは初期設定でSSHが許可されているので、これでSSHクライアントなどを使ってSSH接続を行うことができます。

SSH接続のやり方は利用するクライアントなどによっても異なるので各自で調べてみてください。

もし機会があれば当サイトでもPowerShellを使ったSSH接続方法を扱いたいと思います。(予定は未定)

CentOS8にログインしてみる

前回はサーバのインストールが終わったので、今回はログインをしてみます。

また、サーバの設定を変更するためには必須のroot権限への昇格も行います。

この記事で行うこと

  1. CentOS8にログインする
  2. rootに昇格する

1. CentOS8にログインする

前回の記事では「localhost login:」という画面で終わっていたかと思います。

この画面に前回インストールしたときに作成したユーザの「ユーザ名」を入れてEnterを押してください。

すると、「Password:」という表示になるので、今度はユーザの「パスワード」を入れてEnterを押してください。

※パスワード入力時はキーを押しても「●」や「*」が表示されたりカーソルが動くことはありません。カーソルが動かなくてもキー入力は受け付けていますので、構わずパスワードを入力してください。

すると以下の表示になるかと思います。

[ユーザ名@localhost ~]$

これでログイン完了です。

後はここにコマンドを入力していくことでサーバを操作することができます。

2. rootに昇格する

今ログインしているのはあなたが作成したユーザです。

Linuxにはrootという何でもできるユーザが必ず存在します。

rootは何でもできる危険なユーザですが、サーバの設定変更などを行う際にはrootである必要があります。

ということで、rootにログインしてみましょう。

以下のコマンドを入力してみてください

su -
  • su : ユーザを切り替えるコマンド。引数でユーザ名を入れるとそのユーザに切り替わる。引数が無い場合はrootに切り替わる。(Substitute Userの略)
  • – : 環境変数などを再設定する為のオプション。(操作履歴などが変更先のユーザのものになる)

すると、先程のログイン時と同様にパスワードを求められます。

今度入力するのは前回設定した「rootパスワード」です。

パスワードを入力すると以下の表示が現れます。

[root@localhost ~]#

ユーザ名が「root」になっていることは分かりやすいと思いますが、一番右の記号が$から#に変わっています。

この記号はログインしているユーザの種類を表していて、$は一般ユーザ、#はrootユーザを指しています。

ネットで調べたときに出てくるコマンドでは多くはこの記号から書かれています。

なので、この記号からどちらのユーザで実行すべきか判断してください。

実際に入力する時にはこの記号を入れる必要はありませんので、注意してくださいね。

まとめ

今回はインストールしたCentOS8にログインして、rootに昇格する方法を扱いました。

ここまででひとまずインストールは一段落です。

ここからは必要に応じてコマンドを入力して操作していくこととなります。

ネットで調べてコマンドを入力することもあるかと思いますが、この時注意点が一つ。

CentOSはRedHat系のOSとなります。このためDebian系といわれるUbuntuなどのコマンドとは互換性がありません。

CentOS、RHEL、Fedora向けと書かれているコマンドであれば大抵は通りますので、調べるときには気をつけてください。