LinuxCommand
をテンプレートにして作成
開始行:
* Linux のコマンドのメモ 2021年12月22日 [#m19cbb58]
#contents
---------------
ネットでいちいち調べ直すのも面倒になってきたので、
また、紙のメモでは探し出すのも難しいくらい多くなったので、
ここにメモしておきます。
主に Linux サーバ(今は CentOS Stream release 8)の管理関係
** サーバ管理 [#hd328ba5]
*** OS再起動 [#waa82478]
$ sudo reboot
*** Apache サービス起動/再起動/停止 [#c0617b12]
$ sudo systemctl start httpd.service
$ sudo systemctl restart httpd.service
$ sudo systemctl stop httpd.service
firewalld、postgresql.service、sshd なども同じ
*** サービスの自動起動の確認 [#la9addf4]
$ systemctl list-unit-files --type=service
*** サービスの自動起動の登録/登録解除 [#x88a122f]
$ sudo systemctl enable httpd.service
$ sudo systemctl disable httpd.service
*** 設定ファイルの再読み込み [#lfdef1ec]
$ sudo systemctl daemon-reload
*** ユーザの作成 [#g0688842]
$ sudo useradd -b ユーザのホームディレクトリ -m ユーザ名
$ sudo useradd -b BASE_DIR -m -G GROUP -p PASSWORD USERN...
オプション -m:ユーザのホームディレクトリを作成する
*** ユーザの削除 [#z90e832b]
$ sudo userdel -r ユーザ名
*** パスワードの設定 [#t4c9f680]
$ sudo passwd ユーザ名
$ passwd ← 自分のパスワードを変更するとき
** インストール関係 [#j65e00e2]
CentOS Stream release 8 では、パッケージの管理には dnf を...
*** インストールされているものの確認 [#t1a65065]
$ dnf list installed
*** レポジトリの確認 [#ze3a88b2]
$ dnf repolist
*** インストールされている perl の module の確認 18 Febru...
$ perl -MExtUtils::Installed -e 'print "$_\n" for ExtUti...
*** レポジトリのインストール [#gba44b3f]
$ sudo dnf install epel-release
*** パッケージのインストール [#i174acb5]
$ sudo dnf install httpd
*** パッケージの削除 [#o0a045cf]
$ sudo dnf remove httpd
*** パッケージのアップデートの有無の確認 15 June 2022 [#d...
$ dnf check-update
*** 特定のパッケージのアップデート 15 June 2022 [#fa59b3ee]
$ sudo dnf upgrade httpd*
(Apache の場合)
*** 全てのパッケージのアップデート 15 June 2022 [#ba01033a]
$ sudo dnf upgrade
*** perl のモジュールのインストール [#mb53b089]
$ sudo dnf install perl-App-cpanminus
$ sudo cpanm --sudo -v モジュール名
cpan minus をインストールして、perl のモジュールは cpan m...
*** cron の設定 [#a0145d94]
$ crontab -e
34 12 * * 5 /home/hogeuser/hogehoge.sh
# 分 時 日 月 曜日 コマンド
金曜(5 が金曜) 12:34 に動く~
5 の代わりに * にしておくと毎日(0-7 で 0 と 7 が日曜)~
時刻と曜日の間は、日月~
** sshd の設定 [#kf1f4b98]
***ログイン制限を設定する [#oe4be979]
/etc/ssh/sshd-config を編集
AllowUsers hogeuser@"***.***.***.***, ***.***.***.***, *...
AllowUsers hoheuser@"***.***.***.***, ***.***.***.***, *...
AllowUsers gogeuser@"***.***.***.***, ***.***.***.***, *...
** SSL(Secure Socket Layer) [#z59908bd]
今は、TLS(Transport Layer Security)だけれど、SSL の名前...
*** mod_ssl のインストール [#yaed8399]
素の Apache にはインストールされていない
$ sudo dnf install mod_ssl
適切なディレクトリや設定ファイルもできる~
ssl.conf のコンテキストを設定する:httpd_config_t になっ...
*** SSL通信のチェック [#y5fe3a49]
$ openssl s_client -connect hogehoge.hohehohe.ac.jp:443
*** サーバ証明書の内容確認 [#wdc3a29c]
$ openssl x509 -text -noout -in 証明書
$ openssl rsa -text -noout -in 秘密鍵
$ openssl s_client -connect hogehoge.hohehohe.ac.jp:443 ...
*** オレオレ証明書作成 [#a2fb9d23]
テストサーバでサーバ証明書が必要なとき
$ openssl genrsa 2048 > server.key
$ openssl req -new -key server.key > server.csr ← ここで...
$ openssl x509 -days 3650 -req -signkey server.key < ser...
/etc/httpd/conf.d/ssl.conf
SSLCertificateChaneFile server.crt
SSLCertificateChaneKeyFile server.key
とする
** SELinux (Security-Enhanced Linux) [#mbef0729]
*** SELinux の実行か否かの確認 [#odf733ff]
$ getenforce
Enforcing ← SELinux 有効=実行中
Disable ← SELinux 無効
Permissive ← SELinux 無効、ログ残る
$ sestatus
SELinux status: enabled
(以下略:getenforce より詳しいものが表示される)
*** OS起動時に SELinux を有効にする [#q81a170e]
/etc/selinux/config
SELINUX=enforcing
にする
OSの再起動をする前に(permissive mode でいろいろやってO...
$ sudo fixfiles -F onboot
permissive mode では、オプション -F がいると redhat.com ...
*** コンテキスト確認 [#ib271d0a]
$ ls -lZ
オプション Z でコンテキストが見える
*** コンテキスト変更 [#lb63ad63]
$ sudo chcon -R -u system_u -t :httpd_sys_content_t ディ...
ディレクトリ名の最後には「/」を付けない
オプション -R:ディレクトリ以下全て
↓ でもいいらしい
$ sudo chcon -R system_u:object_r:httpd_sys_content_t デ...
*** SELinux の bool値の確認 [#oed3467c]
$ getsebool -a
*** SELinux の bool値の変更 [#q58fe0d0]
$ sudo setsebool -P httpd_enable_homedirs ON ← public_ht...
** firewalld [#x0d09a11]
*** firewalld の確認 [#idb7beb4]
$ sudo firewall-cmd --list-all
$ sudo firewall-cmd --list-all --permanent ← permanent...
$ sudo firewall-cmd --state
running
*** firewalld への登録 [#bf4ced61]
$ sudo firewoll-cmd --add-service https ← 今通す
$ sudo firewoll-cmd --permanet --add-service https ← 登録
** postfix [#t3089161]
今は、プログラムとしては sendmail ではなく、postfix を使う
*** インストール [#c3e234bb]
$ sudo dnf install postfix
/etc/postfix/main.cf を編集
*** IPv6関連のエラーが出た場合 [#j031c4ca]
たぶん、IPv6でサーバが動いていないので、~
/etc/hosts を編集し、IPv6関連をコメントアウトする
#::1 localhost localhost.localdomain localhost6 localhos...
「::1」は IPv6 なのだそう
** 調べもの [#s60ea0cc]
*** OSのバージョン確認 [#o196f288]
$ cat /etc/centos-release
$ cat /etc/redhat-release # /etc/centos-release のシンボ...
$ cat /etc/system-release # /etc/centos-release のシンボ...
$ cat /etc/os-release # 上のより詳しいものも表示される
*** いろいろなもののバージョン確認:オプション -v を試す...
$ httpd -v
*** IPアドレスの確認 [#a21f62e3]
$ curl inet-ip.info
↑ は、Windows10 でも、Windows11 でも使える
$ ip a
*** ディレクトリの使用容量 [#s7f33c61]
$ du -sh [hoge_dir] # directory usage
いちいち読んでいるようなので、ディレクトリの数が多いと時...
オプション -sh を付けないと、各ディレクトリの容量のリスト...
*** ユーザの確認 [#y13e74e3]
$ less /etc/passwd
今は passwd ファイルにはパスワードは格納されていない~
home directory もわかる
*** グループの確認 [#v4f31bd2]
$ less /etc/group
あまり使い途はないかも?
*** VirtualHost の確認 21 January 2022 [#f134de7c]
$ sudo httpd -t -D DUMP_VHOSTS
[[ApacheでVirtualHostの一覧確認>https://www.suzu6.net/pos...
** ディレクトリ、ファイル操作 [#g5dc5206]
*** サーバ間のセキュアコピー [#v96cae6b]
$ scp -r user@***.***.***.***:/home/user/元ディレクトリ ...
$ scp -r 元ディレクトリ user@***.***.***.***:/home/user/...
オプション -r: recursive
*** ディレクトリツリーリスト表示 [#ua99bfc6]
$ find . -type d | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\...
参照(というよりはそのままです):[[treeを使わずにfindで...
*** シンボリックリンク作成 [#t4f15b04]
$ sudo ln -s 元ディレクトリ(またはファイル) シンボリッ...
*** そのままコピー [#z659d325]
$ cp -a 元ディレクトリ(またはファイル)先ディレクトリ(...
オプション -a は archive = -dR -- preserve=all と同じ
** TeX Live [#z19ea97f]
レポジトリからのインストールが上手くいかなかったので……
*** CTAN からのインストール [#ya51ed64]
$ wget http://ftp.jaist.ca.jp/pub/CTAN/systems/texlive/t...
$ tar xvzf install-tl-unx.tar.gz
$ cd install-tl-日付
$ sudo ./install-tl
(いろいろ表示されて)
<I> start installation to hard disk
……
Enter command: I ← 「I」と入力し、エンターキーを押す
1時間以上インストールしていた
** PATH などの設定 [#r28e1a17]
$ echo $PATH
texlive に path が通っていないものが表示される
$ sudo vi /etc/profile.d/texlive.sh ← 新規作成
/etc/profile.d/texlive.sh
PATH=/usr/local/texlive/2021/bin/x86_64-linux/:$PATH; ex...
MANPATH=/usr/local/texlive/2021/texmf-dist/doc/man:$MANP...
INFOPATH=/usr/local/texlive/2021/texmf-dist/doc/info:$IN...
とする
新たにログインすると使えるようになっている~
path も通っている
** mariaDB [#n44154a7]
*** バックアップ用のダンプ [#tf173201]
$ mysql --defaults-extra-file=/home/hogehoge/mysqldump.c...
cron などでも使える
mysqldump.cnf にデータベースのアクセス情報を入れておく~
オプション --add-drop-table を付けておくと、ダンプした sq...
mysqldump.cnf の中身
[client]
user=mysqlusernamehoge
password='hogepasswd' ← クォーテーションで囲むと、ややこ...
host=localhost
*** phpMyAdmin のインストール [#j40a10e7]
$ sudo dnf install https://rpm.remirepo.net/enterprize/r...
$ sudo dnf install phpmyadmin --enablerepo=remi
ローカルマシン以外から phpMyAdmin が使えるように~
/etc/phpMyAdmin/config.inc.php を変更
$cfg['Servers'][$i]['host'] = '127.0.0.1'; ← 'localhost'...
IPアドレスによる制限も~
/etc/httpd/conf.d/phpMyAdmin.conf
#Require local
Require ip ***.***.***.***
*** ユーザ作成・データベース作成・ルート権限付与 [#y16c96...
$ mysql -u root -p
> create user 'hogeuser' identified by 'hogepassword';
> create database hogedb;
> grant all privileges on hogedb.* to hogeuser identifie...
> \q
|Today:&counter(today); |Yesterday:&counter(yesterday); |...
終了行:
* Linux のコマンドのメモ 2021年12月22日 [#m19cbb58]
#contents
---------------
ネットでいちいち調べ直すのも面倒になってきたので、
また、紙のメモでは探し出すのも難しいくらい多くなったので、
ここにメモしておきます。
主に Linux サーバ(今は CentOS Stream release 8)の管理関係
** サーバ管理 [#hd328ba5]
*** OS再起動 [#waa82478]
$ sudo reboot
*** Apache サービス起動/再起動/停止 [#c0617b12]
$ sudo systemctl start httpd.service
$ sudo systemctl restart httpd.service
$ sudo systemctl stop httpd.service
firewalld、postgresql.service、sshd なども同じ
*** サービスの自動起動の確認 [#la9addf4]
$ systemctl list-unit-files --type=service
*** サービスの自動起動の登録/登録解除 [#x88a122f]
$ sudo systemctl enable httpd.service
$ sudo systemctl disable httpd.service
*** 設定ファイルの再読み込み [#lfdef1ec]
$ sudo systemctl daemon-reload
*** ユーザの作成 [#g0688842]
$ sudo useradd -b ユーザのホームディレクトリ -m ユーザ名
$ sudo useradd -b BASE_DIR -m -G GROUP -p PASSWORD USERN...
オプション -m:ユーザのホームディレクトリを作成する
*** ユーザの削除 [#z90e832b]
$ sudo userdel -r ユーザ名
*** パスワードの設定 [#t4c9f680]
$ sudo passwd ユーザ名
$ passwd ← 自分のパスワードを変更するとき
** インストール関係 [#j65e00e2]
CentOS Stream release 8 では、パッケージの管理には dnf を...
*** インストールされているものの確認 [#t1a65065]
$ dnf list installed
*** レポジトリの確認 [#ze3a88b2]
$ dnf repolist
*** インストールされている perl の module の確認 18 Febru...
$ perl -MExtUtils::Installed -e 'print "$_\n" for ExtUti...
*** レポジトリのインストール [#gba44b3f]
$ sudo dnf install epel-release
*** パッケージのインストール [#i174acb5]
$ sudo dnf install httpd
*** パッケージの削除 [#o0a045cf]
$ sudo dnf remove httpd
*** パッケージのアップデートの有無の確認 15 June 2022 [#d...
$ dnf check-update
*** 特定のパッケージのアップデート 15 June 2022 [#fa59b3ee]
$ sudo dnf upgrade httpd*
(Apache の場合)
*** 全てのパッケージのアップデート 15 June 2022 [#ba01033a]
$ sudo dnf upgrade
*** perl のモジュールのインストール [#mb53b089]
$ sudo dnf install perl-App-cpanminus
$ sudo cpanm --sudo -v モジュール名
cpan minus をインストールして、perl のモジュールは cpan m...
*** cron の設定 [#a0145d94]
$ crontab -e
34 12 * * 5 /home/hogeuser/hogehoge.sh
# 分 時 日 月 曜日 コマンド
金曜(5 が金曜) 12:34 に動く~
5 の代わりに * にしておくと毎日(0-7 で 0 と 7 が日曜)~
時刻と曜日の間は、日月~
** sshd の設定 [#kf1f4b98]
***ログイン制限を設定する [#oe4be979]
/etc/ssh/sshd-config を編集
AllowUsers hogeuser@"***.***.***.***, ***.***.***.***, *...
AllowUsers hoheuser@"***.***.***.***, ***.***.***.***, *...
AllowUsers gogeuser@"***.***.***.***, ***.***.***.***, *...
** SSL(Secure Socket Layer) [#z59908bd]
今は、TLS(Transport Layer Security)だけれど、SSL の名前...
*** mod_ssl のインストール [#yaed8399]
素の Apache にはインストールされていない
$ sudo dnf install mod_ssl
適切なディレクトリや設定ファイルもできる~
ssl.conf のコンテキストを設定する:httpd_config_t になっ...
*** SSL通信のチェック [#y5fe3a49]
$ openssl s_client -connect hogehoge.hohehohe.ac.jp:443
*** サーバ証明書の内容確認 [#wdc3a29c]
$ openssl x509 -text -noout -in 証明書
$ openssl rsa -text -noout -in 秘密鍵
$ openssl s_client -connect hogehoge.hohehohe.ac.jp:443 ...
*** オレオレ証明書作成 [#a2fb9d23]
テストサーバでサーバ証明書が必要なとき
$ openssl genrsa 2048 > server.key
$ openssl req -new -key server.key > server.csr ← ここで...
$ openssl x509 -days 3650 -req -signkey server.key < ser...
/etc/httpd/conf.d/ssl.conf
SSLCertificateChaneFile server.crt
SSLCertificateChaneKeyFile server.key
とする
** SELinux (Security-Enhanced Linux) [#mbef0729]
*** SELinux の実行か否かの確認 [#odf733ff]
$ getenforce
Enforcing ← SELinux 有効=実行中
Disable ← SELinux 無効
Permissive ← SELinux 無効、ログ残る
$ sestatus
SELinux status: enabled
(以下略:getenforce より詳しいものが表示される)
*** OS起動時に SELinux を有効にする [#q81a170e]
/etc/selinux/config
SELINUX=enforcing
にする
OSの再起動をする前に(permissive mode でいろいろやってO...
$ sudo fixfiles -F onboot
permissive mode では、オプション -F がいると redhat.com ...
*** コンテキスト確認 [#ib271d0a]
$ ls -lZ
オプション Z でコンテキストが見える
*** コンテキスト変更 [#lb63ad63]
$ sudo chcon -R -u system_u -t :httpd_sys_content_t ディ...
ディレクトリ名の最後には「/」を付けない
オプション -R:ディレクトリ以下全て
↓ でもいいらしい
$ sudo chcon -R system_u:object_r:httpd_sys_content_t デ...
*** SELinux の bool値の確認 [#oed3467c]
$ getsebool -a
*** SELinux の bool値の変更 [#q58fe0d0]
$ sudo setsebool -P httpd_enable_homedirs ON ← public_ht...
** firewalld [#x0d09a11]
*** firewalld の確認 [#idb7beb4]
$ sudo firewall-cmd --list-all
$ sudo firewall-cmd --list-all --permanent ← permanent...
$ sudo firewall-cmd --state
running
*** firewalld への登録 [#bf4ced61]
$ sudo firewoll-cmd --add-service https ← 今通す
$ sudo firewoll-cmd --permanet --add-service https ← 登録
** postfix [#t3089161]
今は、プログラムとしては sendmail ではなく、postfix を使う
*** インストール [#c3e234bb]
$ sudo dnf install postfix
/etc/postfix/main.cf を編集
*** IPv6関連のエラーが出た場合 [#j031c4ca]
たぶん、IPv6でサーバが動いていないので、~
/etc/hosts を編集し、IPv6関連をコメントアウトする
#::1 localhost localhost.localdomain localhost6 localhos...
「::1」は IPv6 なのだそう
** 調べもの [#s60ea0cc]
*** OSのバージョン確認 [#o196f288]
$ cat /etc/centos-release
$ cat /etc/redhat-release # /etc/centos-release のシンボ...
$ cat /etc/system-release # /etc/centos-release のシンボ...
$ cat /etc/os-release # 上のより詳しいものも表示される
*** いろいろなもののバージョン確認:オプション -v を試す...
$ httpd -v
*** IPアドレスの確認 [#a21f62e3]
$ curl inet-ip.info
↑ は、Windows10 でも、Windows11 でも使える
$ ip a
*** ディレクトリの使用容量 [#s7f33c61]
$ du -sh [hoge_dir] # directory usage
いちいち読んでいるようなので、ディレクトリの数が多いと時...
オプション -sh を付けないと、各ディレクトリの容量のリスト...
*** ユーザの確認 [#y13e74e3]
$ less /etc/passwd
今は passwd ファイルにはパスワードは格納されていない~
home directory もわかる
*** グループの確認 [#v4f31bd2]
$ less /etc/group
あまり使い途はないかも?
*** VirtualHost の確認 21 January 2022 [#f134de7c]
$ sudo httpd -t -D DUMP_VHOSTS
[[ApacheでVirtualHostの一覧確認>https://www.suzu6.net/pos...
** ディレクトリ、ファイル操作 [#g5dc5206]
*** サーバ間のセキュアコピー [#v96cae6b]
$ scp -r user@***.***.***.***:/home/user/元ディレクトリ ...
$ scp -r 元ディレクトリ user@***.***.***.***:/home/user/...
オプション -r: recursive
*** ディレクトリツリーリスト表示 [#ua99bfc6]
$ find . -type d | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\...
参照(というよりはそのままです):[[treeを使わずにfindで...
*** シンボリックリンク作成 [#t4f15b04]
$ sudo ln -s 元ディレクトリ(またはファイル) シンボリッ...
*** そのままコピー [#z659d325]
$ cp -a 元ディレクトリ(またはファイル)先ディレクトリ(...
オプション -a は archive = -dR -- preserve=all と同じ
** TeX Live [#z19ea97f]
レポジトリからのインストールが上手くいかなかったので……
*** CTAN からのインストール [#ya51ed64]
$ wget http://ftp.jaist.ca.jp/pub/CTAN/systems/texlive/t...
$ tar xvzf install-tl-unx.tar.gz
$ cd install-tl-日付
$ sudo ./install-tl
(いろいろ表示されて)
<I> start installation to hard disk
……
Enter command: I ← 「I」と入力し、エンターキーを押す
1時間以上インストールしていた
** PATH などの設定 [#r28e1a17]
$ echo $PATH
texlive に path が通っていないものが表示される
$ sudo vi /etc/profile.d/texlive.sh ← 新規作成
/etc/profile.d/texlive.sh
PATH=/usr/local/texlive/2021/bin/x86_64-linux/:$PATH; ex...
MANPATH=/usr/local/texlive/2021/texmf-dist/doc/man:$MANP...
INFOPATH=/usr/local/texlive/2021/texmf-dist/doc/info:$IN...
とする
新たにログインすると使えるようになっている~
path も通っている
** mariaDB [#n44154a7]
*** バックアップ用のダンプ [#tf173201]
$ mysql --defaults-extra-file=/home/hogehoge/mysqldump.c...
cron などでも使える
mysqldump.cnf にデータベースのアクセス情報を入れておく~
オプション --add-drop-table を付けておくと、ダンプした sq...
mysqldump.cnf の中身
[client]
user=mysqlusernamehoge
password='hogepasswd' ← クォーテーションで囲むと、ややこ...
host=localhost
*** phpMyAdmin のインストール [#j40a10e7]
$ sudo dnf install https://rpm.remirepo.net/enterprize/r...
$ sudo dnf install phpmyadmin --enablerepo=remi
ローカルマシン以外から phpMyAdmin が使えるように~
/etc/phpMyAdmin/config.inc.php を変更
$cfg['Servers'][$i]['host'] = '127.0.0.1'; ← 'localhost'...
IPアドレスによる制限も~
/etc/httpd/conf.d/phpMyAdmin.conf
#Require local
Require ip ***.***.***.***
*** ユーザ作成・データベース作成・ルート権限付与 [#y16c96...
$ mysql -u root -p
> create user 'hogeuser' identified by 'hogepassword';
> create database hogedb;
> grant all privileges on hogedb.* to hogeuser identifie...
> \q
|Today:&counter(today); |Yesterday:&counter(yesterday); |...
ページ名: