0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Linux管理者コマンドの一覧まとめ

Posted at

Linuxの管理者コマンドを今回初めて学んだので、代表的なLinuxの管理者コマンドを備忘録的にまとめてみました。

1. ユーザ、グループ管理

一つのPC上には複数のユーザとグループを作成することができる。複数のユーザを作成することで、それぞれに異なった権限を与えることができ、作業を効率的に進められる。

また、様々な権限をすべてのユーザ一人一人に与えていくのは規模が多くなるにつれとても大変になっていってしまうため、グループを用いて一括した処理を行っている。

1-1. ユーザの作成

新しくユーザーを作成したいときはuseraddコマンドを用いる。

ユーザーの作成
root$ useradd tom
root$ passwd tom
Changing password for user user01.
New password: # 設定したいパスワードを入力
Retype new password: # パスワードの再入力
passwd: all authentication tokens updated successfully.

パスワードは、8文字以上のパスワードを選択する必要がある。(rootユーザは任意の値をパスワードに設定できる。)

-uオプションを用いてUID(ユーザID)を指定することも可能。

ユーザIDを指定
root$ useradd -u 12345 tom

補足:UIDの範囲
Linuxでは特定のUID番号と番号の範囲が特定の目的で使用されている。

  • UDI 0:rootユーザのUID
  • UID 1-200:システムプロセスに静的に割り振られたシステムアカウントUID
  • UID 201-999:システムプロセスに動的に割り当てられるシステムアカウントUID
  • UID 1000+:一般ユーザに割り当てられるUID

※ UID 0-999まではシステムが使用する可能性があるため、ユーザに故意的に指定をするなら1000以上が良い。

また、作成したユーザはidコマンドを用いて確認できる。

ユーザの確認
root$ id tom
uid=12345(tom) gid=12345(tom) groups=12345(tom)

1-2. グループの作成

グループの作成にはgroupaddコマンドを用いる。

グループの作成
root$ groupadd group1

ユーザーをグループに追加する-aGオプションを用いる。

ユーザーの追加
root$ usermod -aG group1 tom
root$ id tom
uid=12345(tom) gid=12345(tom) groups=12345(tom),1003(group1)

1-3. ユーザの切り替え

上記のように作成したユーザを切り替えたいときはsuコマンドを用いる。

ユーザーの切り替え
root$ su - tom
# 設定したパスワードを入力
tom$ 

上記のようにsu - のあとに作成したユーザ名を指定することで指定したユーザに切り替えることができる。

2. rootユーザ

しかし、上記で記載したuseraddgroupaddなどのコマンドは一般ユーザでは実行できない。(su -コマンドは実行できる。)基本的に一般ユーザは、

  1. ユーザやグループの管理
  2. ソフトウェアのインストールや削除
  3. システムファイルとディレクトリの管理

といったタスクの権限を持ち合わせていないため、rootユーザに切り替える必要がある。
rootユーザとは、システムの管理のためのユーザであり、システム全体に対する権限を持つユーザである。

しかし、rootユーザのアカウントが侵害された場合、システムは危険にさらされ、管理制御を失う可能性があるため、rootユーザは日常的には使わず、必要な場合にのみroot権限を使用することが大切である。

2-1. rootユーザの切り替え

rootの切り替えには以下を用いる。

rootへの切り替え
tom$ sudo -i 
# rootのパスワードを入力
root$ 

しかし、上記の注意書きの通り、rootユーザをむやみに使用するのはよくない。また、そのような観点から一般ユーザはrootユーザのパスワードを入手できないこともある。そんなときは、sudoコマンドを用いてrootの権限を一時的に取得することができる。

一般ユーザがrootの権限を取得して実行
user$ sudo useradd tom

上記のように実行したいコマンドの前にsudoコマンドを記載することでroot権限を用いて実行することができる。

3. ファイルアクセス権限

root権限を用いてファイルのアクセス権限を変更することができる。まず、ファイルの所有者やグループを変更にはchownコマンドを用いる。
(ここでは、記載の関係上sudo -iを行った後とみなす。)

ファイルの所有権の変更
root$ mkdir /doc
root$ chown root:group1 /doc

上記のように設定すると/docファイルは所有者がroot、グループがgroup1になる。

3-1. パーミッション

また、ファイルにはパーミッションと呼ばれるアクセス権限を設定することができる。
ls -lコマンドでファイルやディレクトリを指定すると以下のように表示される。

root$ ls -ld /docs
drwxrws---. 2 root adm 6 Aug 19 21:22 /docs

ここで、drwxrws---がパーミッションである。パーミッションは左から1, 3, 3, 3の4つの塊に分解することができ、(ここでは、drwxrws---に分解できる。)それぞれの位置のパーミッションは以下を表している。

文字目 説明
1 ファイルの種類(exp. -:ファイル、d:ディレクトリ)
2-4 ファイル所有者の権限
5-7 ファイルのグループメンバーの権限
8-10 ファイルの所有者でもファイルのグループメンバーでもないユーザの権限

また、権限のモードは以下のものがある。

モード 説明
r ファイルの読み取りアクセス権。ディレクトリの一覧表示アクセス権
w ファイルまたはディレクトリへの書き込み権
x ファイル、ディレクトリの実行権

これらを設定するにはchmodコマンドを用いる。

アクセス制限
root$ chmod 770 /docs

上記のようにパーミッションの指定には8進数方式と呼ばれる方法がある。
これはパーミッションを3桁の8進数で表すことができる方法であり、左から右にユーザー、グループ、その他を表す。各桁は以下の方法で決定される。

  • 0から始める
  • 読み取りパーミッションを追加するには、4を追加する
  • 書き込みパーミッションを追加するには、2を追加する
  • 実行パーミッションを追加するには、1を追加する
770 \ → \hspace{5mm} \text{(u)user} \ : \ \frac{4}{r} \frac{2}{w} \frac{1}{x} \, \hspace{0.5cm} \text{(g)group} \ : \frac{4}{r} \frac{2}{w} \frac{1}{x} \ \hspace{0.5cm} \text{(o)other} \ : \frac{0}{-} \frac{0}{-} \frac{0}{-} 

4. システムパフォーマンスのチューニング

次に、root権限はシステムパフォーマンスのチューニングを行うこともできる。チューニングにはtuned-admコマンドを用いる。

チューニング
root$ tuned-adm recommend  #チューニングプロファイルの推奨値を取得
virtual-guest
root$ tuned-adm profile virtual-guest  #チューニングプロファイルの設定

5. ユーザの定期的なタスク管理

定期的なタスク管理にはcrontabを用いる。studentユーザのタスクを作成したい場合、studentユーザで設定を行うため、ユーザを切り替える。

タスク
root$ su - student
student$ crontab -e  #タスクの作成
student$ crontab -l  #タスクの表示
5 * * * Mon-Fri echo “test ok”
student$ crontab -r  #タスクの消去

タスクは分、時間、日、月、曜日、コマンドの順で記載する。

タスク例 詳細
15 12 11 * Fri echo “test ok” 毎⽉ 11 ⽇と毎週⾦曜⽇の 12:15 (24 時間形式) にtest okと表示
/5 9-16 * Jul 5 echo “test ok” 7 ⽉の毎週⾦曜⽇の 09:00 から 16:00 までの間、5 分間隔でtest okと表示
58 23 * * 1-5 echo “test ok” 平⽇ (⽉曜⽇〜⾦曜⽇) の深夜0時の 2 分前に毎⽇test okと表示

6. ソフトウェアのインストールと更新

ソフトウェアパッケージの検索やインストールなどといった管理を行うことができる。ソフトウェアの管理にはrpmdpkgyumaptdnfコマンドなどたくさんのコマンドが存在するが、ここでは、Red Hat系の最新Linuxディストリビューションで使われているRPMパッケージを扱うためのパッケージ管理コマンドdnfについて記載する。

6-1. dnfコマンド

dnfコマンドには様々な種類がある。以下に一般的に使用されているdnfコマンドに一例を示す。

コマンド 詳細
dnf list インストール済みと使用可能なパッケージをリスト
dnf group list インストール済みと使用可能なグループをリスト
dnf search KEYWORD キーワードでパッケージを検索
dnf info PACKAGENAME パッケージの詳細を表示
dnf install PACKAGENAME パッケージのインストール
dnf group install GROUPNAME パッケージグループのインストール
dnf update パッケージの更新
dnf remove PACKAGENAME パッケージを削除
dnf history トランザクション経歴を表示

6-2. ソフトウェアリポジトリの有効化

リポジトリとはソフトウェアパッケージが保管されている場所であり、リポジトリにアクセスし、有効化することでソフトウェアが使用可能である。
リポジトリを有効化するにあたって、使用可能なリポジトリとそのステータスを一覧表示する。

リポジトリの表示
root$ dnf repolist all
repo id repo name status
rhel-9.0-for-x86_64-appstream-rpms RHEL 9.0 AppStream enabled
rhel-9.0-for-x86_64-baseos-rpms RHEL 9.0 BaseOS enabled

そして、リポジトリのURLを使用して.repoファイルを作成する。

リポジトリの追加
root$ dnf config-manager \
--add-repo="https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/"
Adding repo from: https://dl.fedoraproject.org/pub/epel/9/Everything/x86_64/

※作成した.repoファイルは/etc/yum.repos.d/ディレクトリ配下に置かれる。

追加したリポジトリはGPG鍵チェックを行うことで使用できるようになるが、作成した.repoファイルの最終行にgpgcheck=0を追加することでGPG鍵チェックを無効にすることができる。

7. rootパスワードのリセット

rootパスワードを忘れてしまったときはシステムにログインしてrootのパスワードを変更することができる。
パスワードの変更には以下の方法を用いる。

  1. システムをリブートする:$ systemctl reboot
  2. Enterキー以外のいずれかのキーを押してブートローダー(通常ログイン画面)のカウントダウンを中断
  3. カーネルをrescueカーネルエントリー(名前にrescueという文字が含まれる行)に移動してeキーを押す
  4. カーネルコマンドライン(Linuxから始まる行)にカーソルを移動させ、行の最後にrd.breakを追記
  5. Ctrl + x キーでブート
  6. プロンプトが表示されたらEnterキーを押してメンテナンスを実行

上記の手順を行うとシェルが表示される。ここでrootパスワードのリセットを行う。
以下のコマンドを順に入力することでパスワードのリセットが完了する。

rootパスワードのリセット
sh-5.1# mount -o remount,rw /sysroo
sh-5.1# chroot /sysroot
sh-5.1# passwd root
sh-5.1# touch /.autorelabel
sh-5.1# exit
sh-5.1# exit

上記を入力後、新しいrootパスワードの状態でシステムがブートされる。

8. その他

これまでに記載したコマンドはLinuxの管理者コマンドの中でもごく一部であり、すべてのLinuxコマンドを覚えるのはほぼ不可能である。そこで、manコマンドを用いることでそのコマンドがどのような機能を持っているのか調べることができる。
ただし、manコマンドはすべて英語表記である。

root$ man 調べたいコマンド

また、manコマンドで表示された文書内を検索したいときは"/"を打ち込むことで検索状態にすることができる。
さらに、mandbを用いてLinuxコマンドの一覧を自分のPCにダウンロードすることでキーワード検索も行うことができる。

root$ mandb  #データベースのダウンロード
root$ man -k キーワード(userなど)

mandbコマンドはrootユーザでしか実行することができない。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?