SlideShare a Scribd company logo
OSPN
Linuxシステム管理入門
オープンソースカンファレンス実行委員会
宮原 徹(@tmiyahar)
OSPN
本資料のライセンスについて
• 本資料はクリエイティブコモンズの「表示 -
継承 4.0 国際 (CC BY-SA 4.0) 」でライセン
スされています。
2
表示 — あなたは適切なクレジットを表示し、ライセンスへのリンク
を提供し、変更があったらその旨を示さなければなりません。あな
たはこれらを合理的などのような方法で行っても構いませんが、許
諾者があなたやあなたの利用行為を支持していると示唆するよう
な方法は除きます。
継承 — もしあなたがこの資料をリミックスしたり、改変したり、加工
した場合には、あなたはあなたの貢献部分を元の作品と同じライセ
ンスの下に頒布しなければなりません。
OSPN
本日の内容
コマンドを使ったLinuxシステム管理の勘所をデ
モを交えて解説します
• 管理者権限
• パッケージの管理
• サービスの起動、停止
• 公開鍵認証を使ったSSH接続
基本的にCentOS/RHEL 6ベースで話しますが、
一部CentOS/RHEL 7ベースの話も混ざります
3
OSPN
管理者権限
root権限の取り扱い
suコマンドやsudoコマンドを理解する
4
OSPN
root権限の取り扱い
A. 直接rootでログインさせる?
– sshdの設定で制御可能
– 公開鍵認証でrootとしてログインさせる
• パスワード認証は無効化
B. 一般ユーザでログインさせる?
a. suコマンドを実行してrootに変更
• システム設定作業が多いインストール直後には向いて
いる
b. sudoコマンドを実行してroot権限でコマンド実行
• コマンド実行履歴が/var/log/secureに記録される
OSPN
su コマンド実行の制限
• PAMを設定してwheelグループに所属してい
るユーザのみsuコマンドを実行できるように設
定
• suコマンド実行時にrootのパスワードを要求し
ないようにも設定できる
– rootのパスワード設定が不要
– SSHで暗号化されていたとしてもネットワークに
rootのパスワードを流したくない
– キーロガーなどによってrootパスワードを奪われ
たくない
OSPN
sudo コマンドの制御
• /etc/sudoersで制御
– パーミッションは400
– 編集にはvisudoコマンドを使用
• sudoersの書式は以下の通り
• wheelグループ所属のユーザーにsudoコマ
ンドを実行させる設定
ユーザ ホスト=(実行ユーザ) [NOPASSWD:] コマンド
%グループ ホスト=(実行ユーザ) [NOPASSWD:] コマンド
OSPN
パッケージ管理
Linuxディストリビューションは
パッケージの集合体
8
OSPN
パッケージ管理
• パッケージとは、アプリケーションに必要なファイ
ルをまとめて1つにしたもの
– ディストリビューションはパッケージによって、ファイル
を過不足なく管理できる
• パッケージの間では「依存関係」が存在する
– 依存しているパッケージがないと、パッケージがインス
トールできない(AがないとBはインストール不可)
– 依存されているパッケージがあると、パッケージを削
除できない(BがあるとAは削除不可)
パッケージA パッケージB
依存
OSPN
パッケージ管理ツール
• パッケージのインストールや削除を行う
• CentOS/RHELではyumコマンドが標準的
に使用されている
– パッケージの依存関係を自動的に解消
– インターネット上のリポジトリを参照してパッ
ケージのダウンロード、インストールを行う
• rpmコマンドも使用できる
– パッケージの依存関係は自動解消されない
– パッケージを細かく管理するのに向いている
10
OSPN
yumコマンドの主な使用方法
• パッケージ表示
– # yum list [installed]
– # yum grouplist
• インストール
– # yum install パッケージ名
– # yum groupinstall パッケージグループ名
• 更新系
– # yum check-update
– # yum update
• 削除
– # yum erase パッケージ名
• パッケージグループ名が日本語で使いにくい場合はLANG=C
を付けて実行
11
OSPN
リポジトリ設定
• /etc/yum.repos.dディレクトリに設定ファイル
○○.repoを配置
– 内部で参照するリポジトリのURLなどを定義
• 外部リポジトリを参照すると、ディストリ
ビューションに標準で含まれないソフトをイ
ンストール可能
– 例)EPELなど
12
OSPN
rpmコマンドの使い方(1)
• # rpm オプション パッケージ名(あるいはrpm)
– パッケージ名はURLを直接指定可能
– パッケージを複数指定で依存関係解消可能
• 検索オプション –q
– -qa インストール済みのパッケージを表示
– -qi パッケージの情報を表示
– -ql パッケージに含まれるファイルを表示
– -qf 指定したファイルを含むパッケージを表示
OSPN
rpmコマンドの使い方(2)
• インストールオプション
– 引数でrpmファイルを指定すること
– -ivh 通常インストール
– -Uvh アップデートインストール
– -Fvh 既にインストールされているパッケージ
のみアップデートインストール
• 削除オプション
– -e 指定されたパッケージを削除
• 依存関係がある場合、削除できない
OSPN
サービスの起動、停止
15
OSPN
SysV initとUpstart、systemd
• システム起動時のサービス起動の仕組み
• SysV initとUpstartは動作が似ているが、初期ス
クリプトなどが若干違う
• systemdは相当仕組みが異なる
SysV init Upstart
ディストリビューション CentOS 5 CentOS 6
初期設定ファイル /etc/inittab /etc/inittab
初期スクリプト /etc/rc.d/rc.sysinit /etc/init/rcS.conf
ランレベル初期化スクリプト /etc/rc.d/rc /etc/init/rc.conf
各ランレベル実行スクリプト /etc/rc.d/rcX.d/ /etc/rc.d/rcX.d/
OSPN
Linuxのサービス起動の仕組み
• /etc/rc.d/ディレクトリに関連ファイルが集
まっている
– /etc/rc.d/init.d/ 起動スクリプトを格納
– /etc/rc.d/rc?.d/ 各Runレベルでの起動ス
クリプトへのシンボリックリンクを格納
scriptinit.d
rc?.d
etc/
script
rc.d
シンボリック
リンク
OSPN
serviceコマンド
• service サービス名 コマンド
– /etc/init.d/サービス名スクリプトを呼び出し
• コマンドは以下の通り
– start サービスを起動する
– stop サービスを停止する
– restart サービスを再起動する
– reload 設定ファイルを再読み込み
– status 起動状況を表示
18
OSPN
systemdのディレクトリと起動プロセス
• /usr/lib/systemd/system/
– /etc/rc.d/init.d/に相当
• /etc/systemd/system/
– サービス起動スクリプトに対するシンボリックリンクが配置
– /etc/rc.d/に相当
システム起動時のスクリプト遷移
1. /etc/systemd/system/sysinit.target.wants/
– rc.sysinit スクリプト相当
2. /etc/systemd/system/basic.target.wants/
– システム共通に実行されるスクリプト
3. /etc/systemd/system/multi-user.target.wants/
– 従来のランレベル3(CUI)に相当
4. /etc/systemd/system/graphical.target.wants/
– 従来のランレベル5(GUI)に相当
19
OSPN
systemctlコマンド
• サービス一覧を表示
– # systemctl -t service
• サービスを起動、停止、再起動、状態確認
– # systemctl start|stop|restart|status service
• サービス自動実行の確認、ON/OFF
– # systemctl list-unit-files
– # syetemctl is-enabled service
– # systemctl enable|disable service
• 起動時のデフォルトターゲットを確認、変更
– # systemctl get-default
– # systemctl set-default target
20
OSPN
公開鍵認証を使ったSSH接続
21
OSPN
SSHをしっかり理解しよう
• SSHは暗号化通信でリモートログインする
仕組み
– ファイル転送やX11プロトコルの転送も可能
• パスワード認証、公開鍵認証、ホスト認証
などをサポート
– パスワード認証は危険なので公開鍵認証を設
定後に、SSHサーバで無効に設定
22
OSPN
秘密鍵/公開鍵暗号の仕組み
• 秘密鍵と公開鍵はペアで生成される
• 公開鍵で暗号化された情報は、秘密鍵だけが復号(元の
情報を取り出す)できる
公開鍵
情報 情報
秘密鍵
情報
暗号 復号
ペア
暗号化
情報
OSPN
公開鍵認証の開始手順
公開鍵
暗号
通信
SSHクライアント
SSHサーバ
公開鍵
公開鍵
照合
乱数
乱数
復号化
暗号化
乱数
乱数
MD5
MD5
チェックサム
照合
3DES
乱数
取出し
乱数
秘密鍵
3DES
パス
フレーズ
OSPN
公開鍵認証の設定
1. 公開鍵・秘密鍵の生成
– ssh-keygenコマンドを実行
– 秘密鍵にパスフレーズを設定
– ~/.sshディレクトリに秘密鍵、公開鍵のペアが生成
2. 公開鍵をサーバに設置
– ~/.ssh/authorized_keysに追加
– 所有権をログインするユーザー、パーミッションを
~/.sshは700、authorized_keysは600に設定
3. サーバに接続
– sshコマンドを実行
– 初回のみホスト証明書の受け入れ確認
– 2回目以降は~/.ssh/known_hostsと照合
OSPN
公開鍵・秘密鍵の作成
$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): (エンターキー)
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): (パスフレーズは非表示)
Enter same passphrase again: (パスフレーズは非表示)
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
b9:52:95:18:24:3c:83:91:9d:8d:76:06:0e:7a:b7:c2 user@centos6.example.com
↑フィンガープリントは公開鍵のハッシュ値
(略)
$ ls -l .ssh
合計 8
-rw-------. 1 user user 1743 11月 18 15:28 2015 id_rsa ←秘密鍵
-rw-r--r--. 1 user user 406 11月 18 15:28 2015 id_rsa.pub ←公開鍵
26
OSPN
公開鍵の設置
1. 接続先サーバにユーザーを作成
2. ~/.sshディレクトリを作成
– 所有者はユーザー(rootでの作業時に注意)
– パーミッションは700
3. ~/.ssh/authorized_keysファイルを作成
– 所有者はユーザー(rootでの作業時に注意)
– パーミッションは600
4. 公開鍵(id_rsa.pub)の内容を
~/.ssh/authorized_keysに追記
– $ cat id_rsa.pub >> ~/.ssh/authorized_keys
– ターミナルでエディタを使ってコピペでもOK
27
OSPN
サーバーに公開鍵を設置
# useradd sshuser ←ユーザーを作成
# su - sshuser ←作業するユーザーを変更
$ mkdir .ssh
$ chmod 700 .ssh
$ cd .ssh
$ touch autorized_keys
$ chmod 600 autorized_keys
$ cat id_rsa.pub >> autorized_keys
↑ファイルがあらかじめ配置されている前提だが、どうやって
ファイルを持ってくるかが問題
28
OSPN
sshコマンドで接続
$ ssh sshuser@server.example.com
The authenticity of host 'server.example.com
(192.168.0.102)' can't be established.
RSA key fingerprint is
e3:ea:71:a7:b6:e8:6b:2e:27:f9:83:a5:0f:63:95:13.
Are you sure you want to continue connecting
(yes/no)? yes ←yesと入力
Warning: Permanently added
'server.example.com,192.168.0.102' (RSA) to the
list of known hosts.
Enter passphrase for key
'/home/user/.ssh/id_rsa': (パスフレーズを入力。非表示)
[sshuser@server ~]$
29
OSPN
OpenSSHサーバの設定
• /etc/ssh/sshd_configを設定
– デフォルトのままではセキュリティ的にやや問題
– 特に以下の2点については設定変更が必要
– 設定後sshdサービスを再起動
① PasswordAuthentication
– パスワード認証の可否を設定
– 公開鍵認証を設定後、設定をnoに変更する
• 設定しないとパスワード総当たり攻撃の対象に
② PermitRootLogin
– 直接rootでログインすることの可否を設定
– noに設定し、一般ユーザーでログイン後にsuやsudoでroot
権限を取得するやり方が多い?

More Related Content

PDF
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
PPTX
MongoDB: システム可用性を拡張するインデクス戦略
PDF
PostgreSQL 9.6 新機能紹介
PDF
開発者のためのActive Directory講座
PPTX
がっつりMongoDB事例紹介
PDF
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
PDF
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
PDF
後悔しないもんごもんごの使い方 〜アプリ編〜
NGINX基本セミナー(セキュリティ編)~NGINXでセキュアなプラットフォームを実現する方法!
MongoDB: システム可用性を拡張するインデクス戦略
PostgreSQL 9.6 新機能紹介
開発者のためのActive Directory講座
がっつりMongoDB事例紹介
Kubernetesのしくみ やさしく学ぶ 内部構造とアーキテクチャー
IT エンジニアのための 流し読み Windows 10 - Microsoft の更新プログラム管理インフラ比較 ~ WU / WSUS / SCCM ...
後悔しないもんごもんごの使い方 〜アプリ編〜

What's hot (20)

PPTX
MongoDBの監視
PDF
MongoDBのアレをアレする
PDF
コンテナの作り方「Dockerは裏方で何をしているのか?」
PPTX
WiredTigerを詳しく説明
PDF
RESTfulとは
PDF
OpenStackトラブルシューティング入門
PDF
UnboundとNSDの紹介 BIND9との比較編
PDF
Docker道場オンライン#1 Docker基礎概念と用語の理解
PDF
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
PDF
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
PPTX
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
PPTX
MongoDBが遅いときの切り分け方法
PPTX
DynamoDBだけでソシャゲを作ってみた
PDF
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
PDF
Docker volume基礎/Project Longhorn紹介
PPTX
Cloud Firestore を使って、Polling をやめたい話
PDF
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
PDF
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
PPTX
Windows × ネットワーク! 更新プログラムの展開に使える ネットワークの最適化機能をマスターしよう
PDF
Web開発者が始める .NET MAUI Blazor App
MongoDBの監視
MongoDBのアレをアレする
コンテナの作り方「Dockerは裏方で何をしているのか?」
WiredTigerを詳しく説明
RESTfulとは
OpenStackトラブルシューティング入門
UnboundとNSDの紹介 BIND9との比較編
Docker道場オンライン#1 Docker基礎概念と用語の理解
PostgreSQL SQLチューニング入門 実践編(pgcon14j)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
PostgreSQLの統計情報について(第26回PostgreSQLアンカンファレンス@オンライン 発表資料)
MongoDBが遅いときの切り分け方法
DynamoDBだけでソシャゲを作ってみた
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
Docker volume基礎/Project Longhorn紹介
Cloud Firestore を使って、Polling をやめたい話
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
Windows × ネットワーク! 更新プログラムの展開に使える ネットワークの最適化機能をマスターしよう
Web開発者が始める .NET MAUI Blazor App
Ad

Viewers also liked (20)

PDF
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
PPT
はじめようRaspberry Piでハイレゾオーディオ再生
PPT
POTX
LinuxをインストールしてWebサーバーを立ち上げてみよう
PDF
フォントの選び方・使い方
PPTX
AWSで始めるサーバレスな RESTful API システム
PPT
Steamturbines part1
DOCX
ПЕРСПЕКТИВНО-ТЕМАТИЧЕСКИЙ ПЛАН МОДУЛЯ ПО АКТИВНОМУ УЧАСТИЮ В КОНСУЛЬТАТИВНЫ...
PDF
Kubernetes in 30 minutes (2017/03/10)
PDF
データベース設計徹底指南
PDF
Linux女子部 systemd徹底入門
PPTX
今さら聞けない人のためのDevOps超入門
PDF
JAWS-UG CLI専門支部 #67 Amazon Machine Learning 入門
PDF
Materials labs with solid
PDF
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
PPTX
デブナイト Vol.2 LT タニタの体組成計を使ってみて分かったこと
PPTX
flow による型のある世界入門
PDF
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
PPTX
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
PPTX
Pembangunan mampan task 2 (Bandar Anda)
今さら聞けない! Linux コマンドラインツールテクニック その1 rev. 3
はじめようRaspberry Piでハイレゾオーディオ再生
LinuxをインストールしてWebサーバーを立ち上げてみよう
フォントの選び方・使い方
AWSで始めるサーバレスな RESTful API システム
Steamturbines part1
ПЕРСПЕКТИВНО-ТЕМАТИЧЕСКИЙ ПЛАН МОДУЛЯ ПО АКТИВНОМУ УЧАСТИЮ В КОНСУЛЬТАТИВНЫ...
Kubernetes in 30 minutes (2017/03/10)
データベース設計徹底指南
Linux女子部 systemd徹底入門
今さら聞けない人のためのDevOps超入門
JAWS-UG CLI専門支部 #67 Amazon Machine Learning 入門
Materials labs with solid
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
デブナイト Vol.2 LT タニタの体組成計を使ってみて分かったこと
flow による型のある世界入門
リクルートにおけるマルチモーダル Deep Learning Web API 開発事例
スマホマーケットの概要と、 マーケティングの失敗例と改善 (アナリティクス アソシエーション 特別セミナー)
Pembangunan mampan task 2 (Bandar Anda)
Ad

Similar to Linuxシステム管理入門 (20)

PPTX
Linuxシステム管理入門
PPTX
9/9 Linuxシステム管理入門
PPTX
9/10 Linuxシステム管理入門
PPTX
Linuxシステム管理入門 2018/02/23
PPTX
今さら聞けない人のためのSSH超入門
PPTX
SSH超入門
PPTX
STNSサーバーを書いてみた
PPTX
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
ODP
sshdのお話
PDF
Janog33.5
PPTX
簡易デプロイツール(スクリプト)を作ってみた話
PPTX
無料セミナー20170321 awsから始めるlinux入門
PPTX
はじめてのWebサーバ構築 さくらvps
PDF
OpenNebula on Ubuntu
PDF
Docker hands on nifty sakura jul19
PPT
さくらのVpsつかってます
PDF
LinuxをインストールしてWebサーバーを立ち上げてみよう【OSC2017 Tokyo/Fall】
PDF
SSH Tips & Tricks
KEY
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
PPT
Osc10do linux nextstep
Linuxシステム管理入門
9/9 Linuxシステム管理入門
9/10 Linuxシステム管理入門
Linuxシステム管理入門 2018/02/23
今さら聞けない人のためのSSH超入門
SSH超入門
STNSサーバーを書いてみた
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
sshdのお話
Janog33.5
簡易デプロイツール(スクリプト)を作ってみた話
無料セミナー20170321 awsから始めるlinux入門
はじめてのWebサーバ構築 さくらvps
OpenNebula on Ubuntu
Docker hands on nifty sakura jul19
さくらのVpsつかってます
LinuxをインストールしてWebサーバーを立ち上げてみよう【OSC2017 Tokyo/Fall】
SSH Tips & Tricks
VPS借りたけどセキュリティが心配! 初心者が気をつけたいセキュリティの話
Osc10do linux nextstep

More from VirtualTech Japan Inc./Begi.net Inc. (20)

PPTX
今さら聞けない人のためのDevOps超入門 2025/2/20 OSC2025 Tokyp/Spring
PPTX
爆速!DBチューニング超入門 〜DB性能の基礎とPG-Stromによる高速化〜 2025/2/21
PPTX
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
PPTX
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
PPTX
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
PPTX
OSCのこれまでを振り返るとしたらこんな感じ?
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
PPTX
今さら聞けない人のためのDevOps超入門 ODC2023編
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
DBチューニング超入門
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
MIRACLE LINUX 9にAnsibleをインストールした話
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
最近のOSCと今後について
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
オープンソースカンファレンスへの参加のススメ
PPTX
今さら聞けない人のためのDevOps超入門
PPTX
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門 2025/2/20 OSC2025 Tokyp/Spring
爆速!DBチューニング超入門 〜DB性能の基礎とPG-Stromによる高速化〜 2025/2/21
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
OSCのこれまでを振り返るとしたらこんな感じ?
今さら聞けない人のためのDevOps超入門
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
今さら聞けない人のためのDevOps超入門 ODC2023編
今さら聞けない人のためのDevOps超入門
DBチューニング超入門
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
MIRACLE LINUX 9にAnsibleをインストールした話
今さら聞けない人のためのDevOps超入門
最近のOSCと今後について
今さら聞けない人のためのDevOps超入門
オープンソースカンファレンスへの参加のススメ
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門

Linuxシステム管理入門