2
3

More than 5 years have passed since last update.

linux OS別のコマンドなどメモ ubuntu centos debian

Last updated at Posted at 2016-10-24

うろ覚えが多いのでメモ、きちんとやると書き切れないのですが、ざっくりと、、、

ユーザ作成、SSH設定

ユーザ作成 パスワード指定

command.
add user [user name]
passwd [uer name]

sudoの登録

command.
visudo
/etc/sudoers.
#user host=(権限) command
[user] ALL=(ALL) ALL
#パスワードなしで実行できるようにするときは下記の記述
[user] ALL=NOPASSWD: ALL

ユーザが所属しているグループにsudoなどがあるとパスワードが求められるので確認をする

goups [user]

sshの設定

command.
vim /etc/ssh/sshd_config 
/etc/ssh/sshd_config.
#rootログインの拒否をしてユーザでのパスワードログインであれば下記の設定
PermitRootLogin no
#もしくは
PermitRootLogin without-password


#秘密鍵での認証を設定する場合下記の設定を行う

#RSA認証の許可(デフォルトでされてるはず)
RSAAuthentication yes

#パスワード認証の拒否
PasswordAuthentication no

#チャレンジレスポンス認証の拒否
ChallengeResponseAuthentication no

#公開鍵の保存場所の指定(コメントアウトがされてれば外す)
AuthorizedKeysFile  %h/.ssh/authorized_keys

ssh公開鍵、秘密鍵の作成配置

公開鍵と秘密鍵の作成
command.
ssh-keygen -t rsa

接続先のマシンに作成された公開鍵[ファイル名].pubを安全な方法で/home/(ログインするユーザ)/.sshディレクトリへ入れる
下記コマンドでファイル名を変更し、権限などの設定を行う

command.
#ファイル名の変更
mv [ファイル名].pub authorized_keys
#所有者をユーザへ変更
chown [user] authorized_keys
#グループをユーザグループへ変更
chgrp [user] authorized_keys
#権限を変更
chmod 600 authorized_keys
#ディレクトリの権限変更
chmod 700 .ssh

接続元のマシンの設定(Linux)

command.
#作成された秘密鍵を`id_rsa`(任意の名前で可)へリネームし`/home/[user]/.ssh/`ディレクトリへ移動
mv [ファイル名] /home/[user]/.ssh/id_rsa

#/.ssh/configを編集
vim /.ssh/config
/.ssh/config.
#秘密鍵を追加
IdentityFile ~/.ssh/id_rsa

sshdの再起動

command.
#centOS系
/etc/init.d/sshd restart
#もしくは
systemctl restart sshd
service ssh restart

#ubuntu debian系
/etc/init.d/sshd restart
#もしくは
service ssh restart

サービス自動起動設定ツール

chkconfig

コマンド 説明     
chkconfig --list [service] サービスの自動起動状態
chkconfig --list 全サービスの自動起動状態
chkconfig [--level levels(2345 2 etc...)] [service] on サービスの自動起動を有効にする
chkconfig [service] off サービスの状態起動を無効にする
chkconfig --add [service] サービスを登録する
chkconfig --del [service] サービスの登録を削除

sysv-rc-conf

コマンド 説明
sysv-rc-conf [service] on 自動起動の設定
sysv-rc-conf [service] off 自動起動の設定解除
sysv-rc-conf TUIを使用して自動起動の設定
sysv-rc-conf --list [service] サービスの自動起動状態

SElinux

getenforceで確認
/etc/selinux/configを編集
SELINUX=disabledとして無効化、サーバ再起動が必要

centos

パッケージ管理

コマンド 説明     
yum check-update アップデート可能なパッケージ一覧
yum update 全パッケージのアップデート
yum upgrade update --obsoletesと同等
yum install [package] パッケージのインストール
yum remove [package] パッケージの削除
yum seach keyword キーワードでパッケージを検索
yum list installed インストール済みパッケージ一覧

update時にカーネルを除外

/etc/yum.conf
[main]
exclude=kernel* #この行がなければ追加

サービス関連

~centos6

コマンド 説明     
service [service] status サービスの状態
service --status-all 全サービスの状態
service [service] [start stop restart] サービスの起動、停止、再起動
/etc/init.d/[service] [start stop restart] サービスの起動、停止、再起動

自動起動ファイルの作成(System V Init系)

下記のようなファイルを作成し実行権限を付与して/etc/init.d配下に置く

test.
#!/bin/bash
#
#chkconfigで使用するランレベルの登録
#2345はランレベルの指定
#85は`ls /etc/rc.d/rc3.d/`で見た時のS**の番号を表し、起動する番号
#15、停止する番号
# chkconfig: 2345 75 35 
#
#chkconfigで使用する名前
# description: example 
#
#プロセス名
# processname: example

case "$1" in
  start)
        /usr/bin/example
        echo "Start"
        ;;
  stop)
        killall example
        echo "Stop"
        ;;
  *)
        echo $"Usage:start|stop|restart"
esac
exit 0

iptable関連

下記コマンドにて設定ファイルの編集

command.
# vi /etc/sysconfig/iptables
iptables.
*filter

:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]

#pingの許可する
-A INPUT -p icmp -j ACCEPT

#接続済みの通信許可
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#ループバックアドレスへの通信許可
-A INPUT -i lo -j ACCEPT

#外への通信はすべて許可する
-A OUTPUT -p tcp --dport -j ACCEPT

#外からの通信でtcp特定ポート宛ての通信許可
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

#特定のIPからの通信のみ許可する場合
-A INPUT -m state --state NEW -p tcp -s 192.168.12.0/24 --dport 20:21 -j ACCEPT

#ログの取得"iptables:"はログ出力時の識別子
-A INPUT -j LOG --log-prefix "iptables:" --log-level=error

COMMIT

サービスの再起動

/etc/init.d/iptables start

centos7~

コマンド 説明
systemctl list-unit-files -t service サービス一覧
systemctl status [service].service サービスのステータス確認
systemctl enable [service].service サービスの自動起動
systemctl disable [service].service サービスの自動起動解除
systemctl start stop

自動起動ファイルの作成(systemd系)

/etc/systemd/system/[service].service

[service].service
[Unit]
#サービス名
Description = [service]

[Service]
#起動コマンド
ExecStart = [command]
#停止コマンド
ExecStop = [command]
#リロードコマンド
ExecReload = [command]

#ExecStartPre 実行前に実行
#ExecStartPost 実行後に実行

#繰り返し起動の設定
Restart = always
#フォアグラウウンドで実行
Type = simple
#フォークならType=forking

[Install]
#通常起動
WantedBy = multi-user.target
#GUIならWantedBy = graphical.targetと記述

firewalld(INPUT制御に特化している)

コマンド 説明
firewall-cmd --get-services 定義されているサービス一覧
firewall-cmd --get-services 許可サービス
firewall-cmd --list-all 設定確認
firewall-cmd --reload リロード
firewall-cmd --list-services --zone=public public(INPUT制御)の設定確認
firewall-cmd --permanent --add-service=[service] --zone=public サービスをpublicへ追加(--permanentがないと再起動後にリセットされるがその場合はrestartもしくはreloadが必要)
firewall-cmd --permanent --remove-service=[service] --zone=public サービスをpublicから削除(--permanentがないと再起動後にリセットされるがその場合はrestartもしくはreloadが必要)
firewall-cmd --permanent --add-port=[port]/[protocol] サービス名ではなくポート、プロトコル指定で設定
firewall-cmd --query-service=[service] --zone=public サービスがpublicで許可されているか確認
/usr/lib/firewalld/services/[service].xml
<?xml version="1.0" encoding="utf-8"?>
<service>
 <short>submission</short>
 <description> [service]
 </description>
 <port protocol="[prptocol]" port="port"/>
</service>

ubuntu debian

パッケージ管理

コマンド 説明     
yum check-update アップデート可能なパッケージ一覧
apt-get update パッケージリストの更新
apt-get upgrade パッケージの更新
apt-get dist-upgrade パッケージの構成変更を行う、更新を行う(カーネルも含む)
dpkg -l [package] パッケージ一覧
apt-get install [package] パッケージのインストール
apt-cache search [package] パッケージを検索
apt-get remove [package] パッケージの削除
apt-get purge [package] 設定ファイルも含めて削除
apt-get autoremove 不要パッケージの削除
apt-get --purge --force-yes remove [package] パッケージの強制削除

サービス関連

initデーモンの調べ方

command.
dpkg -S /sbin/init

upstart: /sbin/init
#もしくは
systemd-sysv: /sbin/init

upstart系サービスコマンド

コマンド 説明
initctl start stop restart [job] ジョブの起動、停止、再起動
initctl status ジョブの状態確認
initctl reload リロード
initctl list ジョブのリスト表示
initctl reload-configuration 設定の読み込み

upstart系サービス登録

/etc/init/[job].confを編集

/[job].conf
#説明
description "job"

#著者
author  "ototo"

#スタートランレベルの設定
start on runlevel [2345]

#停止ランレベルの設定
stop on runlevel [016]

#作業ディレクトリの設定
chdir [dir]

#起動させるコマンド
exec [command]

#繰り返し起動の指定
respawn

#ジョブ前後の処理(書かなくてもOK)
#pre-start ジョブ開始前
#post-start ジョブ開始後
#pre-stop ジョブ停止前
#post-stop ジョブ停止後
pre-start script
  [command or check]
end script

編集後設定の再読みこみ実施

command.
initctl reload-configuration

systemd-sysv系サービスコマンド

コマンド 説明
systemctl list-unit-files -t service サービス一覧
systemctl status [service].service サービスのステータス確認
systemctl enable [service].service サービスの自動起動
systemctl disable [service].service サービスの自動起動解除
systemctl start stop restart [service].service サービスの起動、停止、再起動

自動起動ファイルの作成(systemd系)

/etc/systemd/system/[service].service

[service].service
[Unit]
#サービス名
Description = [service]

[Service]
#起動コマンド
ExecStart = [command]
#停止コマンド
ExecStop = [command]
#リロードコマンド
ExecReload = [command]

#ExecStartPre 実行前に実行
#ExecStartPost 実行後に実行

#繰り返し起動の設定
Restart = always
#フォアグラウウンドで実行
Type = simple
#フォークならType=forking

[Install]
#通常起動
WantedBy = multi-user.target
#GUIならWantedBy = graphical.targetと記述

update-rc.d関連

コマンド 説明
update-rc.d [servise] defaults 自動起動の登録
update-rc.d -f [service] remove 自動起動の登録解除
sudo update-rc.d [service] enable 2 3 4 5 自動起動設定(ランレベルの指定は無くても可)
sudo update-rc.d [service] disable 2 3 4 5 自動起動設定解除(ランレベルの指定は無くても可)
ls -l /etc/rc*.d/*[service] サービスの設定状態確認

insserv関連(debian6~ Ubuntu 12~ 推奨)

コマンド 説明
insserv -d [service] 自動起動の登録
insserv -r [service] 自動起動の登録解除
insserv [service],start=2,3,4,5 自動起動設定(ランレベルの指定は無くても可)
insserv [service],stop=2,3,4,5 自動起動設定解除(ランレベルの指定は無くても可)
ls -l /etc/rc*.d/*[service] サービスの設定状態確認

autostart(ウィンドウマネージャでデスクトップアプリを自動起動したい時など)

~/.config/lxsession/LXDE/autostartファイルの編集する方法
(ラズパイはLXDEではなくLXDE-pi)

下記のように追記
~/.config/lxsession/LXDE/autostart
@[command]

~/.config/autostartに下記のような.desktopファイルを設置する方法

example.desktop
[Desktop Entry]
Type=Application
#アプリケーション名
Name=[name]
#コマンド名
Exec=[command]
Terminal=false

iptable関連

iptables-persistentのインストール

command.
apt-get install iptables-persistent

設定ファイルの編集

command.
vim /etc/iptables/rules.v4
command.
vim /etc/iptables/rules.v6

下記編集例

/etc/iptables/rules.*
*filter

#ループバックアドレスへの通信許可それ以外は破棄
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT

#pingの許可する
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT

#接続済みの通信許可
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#外への通信はすべて許可する
-A OUTPUT -j ACCEPT

#外からの通信でtcp特定ポート宛ての通信許可
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

#特定のIPからの通信のみ許可する場合
-A INPUT -m state --state NEW -p tcp -s 192.168.12.0/24 --dport 20:21 -j ACCEPT

#ログの取得"iptables:"はログ出力時の識別子
-A INPUT -j LOG --log-prefix "iptables:" --log-level=error

#条件に一致する物以外のパケットは破棄
-A INPUT -j REJECT
-A FORWARD -j REJECT

COMMIT

設定の反映サービスの再起動

command.
/etc/init.d/iptables-persistent save | restart
#もしくは
/etc/init.d/netfilter-persistent save | restart
2
3
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
2
3