パーティションタイプ

パーティションタイプにMBRとGPTがあり、
MBRは2TB以下×4まで、GPTだと2TB以上×128可能

GPTに対応したOSじゃないと(Vista~64bit)じゃないと使えない
さらにUEFIじゃないと起動できない。

UEFIはBIOSの後継。

Ubuntu シンボリックリンク

シンボリックについて
apacheのconfの場合、
a2dissite、a2ensite
などの専用スクリプトが用意されている。

通常は、
ln -s 実体 リンク
で、
ln -s /home/okamura/ruby/asagao/public /home/okamura/www/app1
のよう記述する。

実体もリンクも最後にスラッシュを付けない。
リンクはフォルダではないので、最初から存在してはダメ。

リンク削除
unlink /home/okamura/www/app1

wget/curl コマンド

curl

curl -O “http://xxx.com/[0-20].pdf”

-O は表示ではなくファイル名そのまま。(ちなみにwgetで-Oは別名で保存)
-o は別名で保存する。
-L リダイレクトを追う。
-C – レジューム

レジューム保存
curl -o out.mp4 -L -C – http://

wget

-c ダウンロードを続きから。
-t リトライ回数指定する。(0は無制限)
-O 別名で保存する。
–retry-connrefused 接続拒否無視

wget -c -t 0 –retry-connrefused xxx

Ubuntu Java Tomcatインストール

インストール

sudo apt-get install defaut-jdk
java -version
今回は、1.8.0_121

sudo apt-get install tomcat7

sudo update-alternatives –list java
でJavaのパスを確認。

今回は、
/usr/lib/jvm/java-8-openjdk-i386/jre/bin/java
と表示される。

~/.profile
に以下を追記する。
JAVA_HOME=”/usr/lib/jvm/java-8-openjdk-i386/jre/bin/java”
PATH=”$JAVA_HOME/bin:$PATH”
CATALINA_HOME=”/usr/share/tomcat7″

profileの記述で違う方法として、
/etc/profile.d/java.sh
を作成し、
JAVA_HOME=”/usr/lib/jvm/java-8-openjdk-i386/jre/bin/java”
と追記し、
source ./java.sh
を実行する方法もある。今回はやらない。

ここで再起動。

echo $JAVA_HOME
で確認すると、
/usr/lib/jvm/java-8-openjdk-i386/jre/bin/java
と表示される。

ファイアーウォールの設定
sudo ufw allow 8080/tcp

ここまで来たら、
sudo /etc/init.d/tomcat7 restart
を実行。
http://192.168.102.15:8080/
にアクセス。

その他

設定ファイルの場所
sudo vim /etc/tomcat7/server.xml

Tomcatの状況確認
sudo /etc/init.d/tomcat7 status

もしeclipseでTomcatを操作する場合

http://www.eclipsetotale.com/tomcatPlugin.html#A3
から
tomcatPluginV331.zip
を保存し解凍して、
C:\eclipse\plugins
の中へ

Ubuntu USBメモリ操作

通常はUSBメモリを指すと自動でマウントされる。
/media/okamura/xxx
情報は、
df -hT
あるいは
lsblk
lsblk -i
で確認できる。

/dev/sdb1 が/media/okamura/xxx
にマウントされているのがわかる。

USBメモリはだいたい、
/dev/sda,
/dev/sdb,
/dev/sdc
などで認識される。

現在マウントしている情報は
df -hT
以外にも以下のような確認方法がある。
mount | less -S
cat /proc/mounts | less -S
cat /etc/mtab | less -S
sudo fdisk -l

手動でアンマウントする場合、
sudo umount /media/okamura/xxx

自動マウントしない場合、
sudo mount /dev/sdb1 /home/okamura/mnt
-tオプションはファイルシステム指定
などで直接マウントする。

フォーマット。マウントしているとできない。
sudo mkfs -t ntfs -Q -L backup /dev/sdb1
-tのデフォルトはex2

schroot debootstrapで環境構築

sudo apt-get install schroot debootstrap

mkdir -p /home/okamura/chroot

sudo debootstrap –arch=i386 –include=sudo jessie /home/okamura/chroot http://ftp.jp.debian.org/debian

–ここから不要(type=directoryにすると自動で処理)

sudo vim /etc/fstab
に以下の内容を追記

proc-chroot /home/okamura/chroot/proc proc defaults 0 0
devpts-chroot /home/okamura/chroot/dev/pts devpts defaults 0 0
/tmp /home/okamura/chroot/tmp none bind 0 0
/home /home/okamura/chroot/home none bind 0 0

sudo mount -a
にて確認

–ここまで不要

sudo vim /etc/schroot/schroot.conf
に以下追記

[jessie]
description=Debian jessie
type=directory
directory=/home/okamura/chroot
# usersにschroot許可するユーザ一覧を列挙
users=okamura
groups=okamura
root-groups=root
aliases=default

–ここから不要

sudo vim /home/okamura/chroot/etc/debian_chroot
を作成しjessieと追記

–ここまで不要

schroot -l
設定で確認

schroot -c jessie -i
環境確認

schroot -c jessie -p
で接続

バージョン確認
cat /etc/debian_version

Ubuntu インストール用USBメモリ

Ubuntu USBメモリ操作

USBメモリ接続後にdfコマンドを実行する。

表示の見方は
scsiデバイス、sda,sdb,sdc
ideデバイス、hda,hdb,hdc,hdd
のようになる。

今回は、dev/sdb1となった。しっかり覚えておく。

sudo dd if=/home/okamura/download/CentOS-7-x86_64-DVD-1611.iso of=/dev/sdb1 bs=32M
ifはフルパス。of=は出力先指定。間違えると大変。

watch -n 30 pkill -USR1 dd
USR1シグナルをddコマンドに送っている。

/media/okamura/の一覧にあるのでumountする。
sudo umount ESD-USB

MBRのコピーならこういう風に書く。
sudo dd if=/dev/sda1 of=/dev/sdb1 bs=446 count=1

USBブートしない場合、
BIOSの設定を変更する。
DELLの場合F2、ThinkPadはF1だった。

Ubuntu ユーザー関連、パーミッション

ユーザ

ユーザ一覧
getent passwd
less /etc/passwd

区切られた内容は以下の通り。
・ユーザ名
・パスワード
・ユーザーID
・グループID
・コメント
・ホームディレクトリ
・利用シェル

ユーザ情報
id xxx

グループ

グループ一覧
getent group
less /etc/group

グループに所属ユーザの確認
getent group xxx

グループの作成
groupadd wp

グループにユーザを追加
usermod -aG wp www-data

ログインユーザの所属グループ
groups
groups ユーザ名
でもOK

***

実験として、/var/www/に直接ファイルをアップロードするための変更。

ちなみに、/var/www/はroot:rootだが、rootグループにはrootしか所属していないため、/var/wwwの所属グループを変更しても問題ない。

所属グループの書き込みを許可
sudo chmod g+w /var/www

所属グループの変更
sudo chown root:www-upload /var/www

グループの作成
sudo groupadd www-upload

グループにユーザを追加
sudo usermod -aG www-upload ubuntu

確認
groups ubuntu

WinSCPでアップロードするとubuntu:ubuntuの権限になる(デフォルトユーザーがubuntuなため)ので、/var/www/以下にフォルダ・ファイルをアップロードしてもサブフォルダも含めアクセスできるが、SSHでフォルダ・ファイルを作成すると権限がrootになるので、WinSCP経由では作業できないので注意。

***

sudoできるユーザ
/etc/sudoer
ubuntuの場合sudo、adminグループ

ubuntuではsudoグループがsudoできるグループ
adminというグループには誰も所属していない

ユーザ作成
sudo useradd xxx

mオプションを付けないと、ホームディレクトは作成されず、手動では/etc/skelの内容がコピーされない

useradd -D
デフォルトの確認

ユーザの削除
userdel -r xxx

mオプションでホームディレクトリの作成
(自動で、/etc/skelのコピーが入る)
sudo useradd -m inna

ログインできなユーザへ
sudo usermod -s /usr/sbin/nologin inna

ログインできるユーザへ
sudo usermod -s /bin/bash inna

参加するグループの変更
usermod -aG

chown

chown 所有者:所属グループ 対象

再帰の場合、
chown -R xxx/xxx
で再帰的にユーザ、グループを全て変えられる。

chmod

sudo chmod [ u / g / o / a ] [ + / – / = ] [ r / w / x ] 対象ファイル

u: ユーザー
g: グループ
o: その他
a: すべて

sudo chmod 764 hoge.txtのように指定することもできる

4: 読むことが可能(Read)
2: 書くことが可能(Write)
1: 実行が可能(eXecute)
0: なにもできない

権限の意味

ファイルの場合。

R
そのファイルを読み込む

W
そのファイルを書込める

X
バイナリなら実行できる。スクリプトなら、そのスクリプトを実行できる。
(スクリプトの実体はテキストファイルで先頭に#記号がある)

ディレクトリの場合。

R
そのディレクトリの中身をみる。

W
そのディレクトリにファイルを作成すること。

X
そのディレクトリをカレントディレクトリにすること。
(ディレクトリの実行権はサブディレクトリにも影響するが、RWは指定のフォルダだけ)

Ubuntu セキュリティ関連設定

パスワード認証のSSHの場合

SSH

ポートの変更

sudo vim /etc/ssh/sshd_config
Port
22 > 50022

再起動
service ssh restart

ここでSSHを秘密鍵・公開鍵に切り替える。
(秘密鍵・公開鍵を作成+TeraTermから接続)

ufw

最初は有効になっていない。

IPv6無効化
sudo vim /etc/default/ufw
IPV6=no

sshを許可
sudo ufw allow 50022/tcp

起動
sudo ufw enable
(enable後は、再起動してもufwは有効になっている)

再起動する場合
sudo ufw reload

SSH

ルートを弾く(必要なら)
sudo vim /etc/ssh/sshd_config
PermitRootLogin
yes > no

パスワード認証を停止
sudo vim /etc/ssh/sshd_config
PasswordAuthentication
ChallengeResponseAuthentication
GSSAPIAuthentication

3つともnoへ

接続ユーザを限定(必要なら)
sudo vim /etc/ssh/sshd_config
AllowUsers ubuntu
追加

再起動
service ssh restart

秘密鍵・公開鍵を作成+TeraTermから接続

秘密鍵・公開鍵作成1
ssh-keygen -t rsa

ファイル名を聞かれるのでidとする。
パスフレーズも聞かれる。ここではとりあえず付けない。

公開鍵(id.pub)、秘密鍵(id)が生成される。

秘密鍵・公開鍵作成2

TeraTerm>設定>SSH鍵生成
公開鍵(id_rsa.pub)、秘密鍵(id_rsa)を保存する。

公開鍵の内容は
.ssh/authorized_keys
に記載する必要がある。
(なければ作成。他に書き込みがある場合、新しい行でも大丈夫)

パーミッション確認
chmod 600 authorized_keys

秘密鍵はローカルに保存しTeraTermのフォルダへ入れる。
名前は変えてしまってOK

再起動
service ssh restart

TeraTermから接続
connect ‘192.168.xxx.xxx:50022 /ssh /2 /auth=publickey /user=xxx /keyfile=xxx’

WinSCPから接続

WinSCPはppk形式なので、OpenSSH→ppkが必要。
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
から
puttygen.exe
を保存し、実行する。

Conversions>Import keyで秘密鍵(id_rsa)を読み込み、Save private keyで保存する。

新しいサイトを作成する。
転送プロトコル:SFTP
ホスト名:IPアドレス
ポート番号:50022
ユーザー名:root
パスワード:空白

設定>SSH>認証>認証条件
の秘密鍵に、
*.ppkを指定する。

管理>名前をつけて保存
を実行。

鍵の種類

・ppk
PuTTY形式

・pem
OpenSSL形式
OpenSSH7.8未満
—–BEGIN RSA PRIVATE KEY—–

・OpenSSH形式
OpenSSH7.8以上
—–BEGIN OPENSSH PRIVATE KEY—–

・OpenSSH公開鍵
ssh-rsa

Ubuntuでの自動起動について

サービスの自動起動について(スタートアップ)

sysv-rc-conf

インストール
sudo apt-get install sysv-rc-conf

グラフィカルな設定
sudo sysv-rc-conf

自動起動できているか。
sudo sysv-rc-conf -list | grep xxx

サービスを自動起動へ設定
sudo sysv-rc-conf xxx on

自動起動オフ
sudo sysv-rc-conf xxx off

起動スクリプトの場所(sysvinit)

/etc/init.d/
の中がスクリプト実体。

/etc/の中に
rc.local (ホスト固有の設定)
rc0.d
rc1.d
rc2.d
rc3.d
rc4.d
rc5.d
rc6.d
rcS.d
があり、ここにシンボリックを置いておく。

これらの0~6はOSが起動しているrunlevelの時に
対応していて、そのフォルダのスクリプトが読まれる。

SoftEtherをUbuntuとWinにインストール

SoftEtherを使うとき、自動で立ち上げるのに、
/etc/rc.local
の中に
/home/okamura/vpnserver/vpnserver start
と書いてしまった。

ランレベル

0:システム停止
1:シングルユーザモード
2:ローカルマルチユーザモード(NFSなどはなし)
3:フルマルチユーザモード(テキストコンソール)
4:未使用
5:フルマルチユーザモード(グラフィカル環境)
6:システム再起動

init.d 起動と service 起動の違い
/etc/init.d/xxxx start
は環境変数が引き継がれる。
service xxxx start
はPATH,TERM,LANGが引き継がれる。