Ubuntu」タグアーカイブ

UbuntuをLiveCDから起動

もしsshがなければ、
sudo apt-get install openssh-server

起動する。
/etc/init.d/ssh start

パスワードが空なので、
passwd

パスワードを指定したらTeraTermなどでログインする。
ユーザー名はubuntuとなっている。

Ubuntu シンボリックリンク

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

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

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

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

Apache設定

Ubuntuのインストール記事からApacheの箇所だけ抜出し。

最初

ホームディレクトリにwwwを作成する。
/home/okamura/www

インストールは以下
sudo apt-get install apache2

起動
sudo /etc/init.d/apache2 start

apache2.confファイルについて

/etc/apache2/apache2.conf
が設定。

この中に、
sites-enabled/*.conf
と記載され、設定を別から読み込んでいる。

sites-enabled
の中に
000-default.conf
がありリンクで、
site-available/000-default.conf
が読み込まれている。
(昔のバージョンによってはdefaultというファイルの場合もある)

apache2.conf -> sites-enabled/000-default.conf -> /site-available/000-default.conf
の感じ。

apache2.confファイルの設定

正しく処理の流れとして、
sites-available/000-default.conf
がテンプレートなので、それをコピーして編集する。

今回は
001-default.conf
とする。(だいたいコピーしたファイルの名前はドメイン名.confとする)

000-default.conf
が有効(シンボリックができている)になっているので以下で無効化。
sudo a2dissite 000-default.conf

有効になっていないコピーしたファイルを有効化。
sudo a2ensite 001-default.conf

が正しい処理の流れ。

apache2.confの中身について

apache2.conf
には以下のように書かれている。

<Directory />
Options FollowSymLinks
AllowOverride None
Require all denied
</Directory>

<Directory /usr/share>
AllowOverride None
Require all granted
</Directory>

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

site-available/000-default.conf
の中には、
<VirtualHost *:80>
***
DocumentRoot /var/www/html
***
</VirtualHost>
が書かれていて、これが初期設定。

ドキュメントルートを変える方法として、
DocumentRoot /home/okamura/www
とし、さらに以下も追加する。
<VirtualHost *:80>
***
<Directory “/home/okamura/www”>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
***
</VirtualHost>

ただ、バーチャルホストの設定はなくてもOKなので、
apache2.conf
の中の、
IncludeOptional sites-enabled/*.conf
をコメントアウトして、
apache2.conf
の中に直接以下を追記してもOK。
(もともとある<Directory></Directory>をコメントアウトしてもOK)
DocumentRoot /home/okamura/www
<Directory /home/okamura/www>
Require all granted
</Directory>

と追記するだけでもOK。

アクセスの振り分け(VirtualHost)

/etc/apache2/ports.conf

Listen 3000
と追記。

コピーして作った
001-default.conf

NameVirtualHost *:3000
と追記し、
<VirtualHost *:3000>
の部分でドキュメントルートを変えると、
ポートでフォルダを振り分けられる。

また違うポートの場合、これは
apache2.conf
に直接以下の様に書いた。
元々あった<Directory>***</Directory>を
VirtualHostで囲んでしまうイメージ。

NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /home/okamura/www
<Directory /home/okamura/www>
Require all granted
</Directory>
</VirtualHost>

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

Ubuntu インストール用USBメモリ作成
mountした共有フォルダにrsyncとcrontabでバックアップ設定

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 TFTP

sudo apt-get install tftp

sudo apt-get install tftpd
tftpdで依存関係よりxinetdもはいる。

apt-get install tftpd-hpa
上記2つではなくこちらを入れている場合もある

sudo vim /etc/xinetd.d/tftp

service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}

sudo mkdir /tftpboot
sudo chmod -R 777 /tftpboot
sudo chown -R nobody /tftpboot
sudo /etc/init.d/xinetd restart

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 xxx

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

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

グループの作成
groupadd wp

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

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

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

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

ユーザ作成
>>sudo useradd inna

>>getent passwd | grep inna
inna:x:1001:1002::/home/inna:

>>sudo passwd inna
xxx

mオプションを付けないと、ホームディレクトは作成されない
sudo mkdir inna
sudo chown inna:inna /home/inna/
だけど、この場合、/etc/skelの内容がコピーされない

useradd -D
デフォルトの確認

ユーザの削除
userdel -r inna

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

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

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

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

パーミッション

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

d/rwx/r-x/r-x

o+xはカレントディレクトリにできる。
o-xすると、カレントにできず、内部のファイル、ディレクトにアクセスできない。
上の階層のパーミションの影響はxだけで大丈夫。xはアクセス権。

o+rはlsができる。
o-rにするとカレントではlsができないがサブのファイル、ディレクトリは指定できる。
(サブディレクトリへの影響はxのため)

o=wはファイル、ディレクトリを作れる。

inna/ — inna:inna d/rwx/r-x/r–
|–  a/ —inna:inna d/rwx/rwx/rxw
だと/inna/aでいけない。

inna/ — inna:inna d/rwx/r-x/–x
|– a/ — inna:inna d/rwx/rwx/rxw
だと/inna/aでいける。

もう一例

inna —inna:okamura rwx/—/–x
 |–test — okamura:okamura rwx/rwx/rwx
上記パーミッションで以下のアクセスできるか
c /home/inna/test – NG

inna —inna:inna rwx/—/–x
  |-test — okamura:okamura rwx/rwx/rwx
上記パーミッションで以下のアクセスできるか
c /home/inna/test – OK

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は指定のフォルダだけ。

chown,chmodの実用例(wordpress)

sudo chown -R root:root wp-admin
該当フォルダ以下のフォルダもファイルも全て変わる。
この処理はwp-adminも該当する。

sudo chmod -R u-rwx wp-admin
該当フォルダ以下のフォルダもファイルも全て変わる。
この処理はwp-adminも該当する。

sudo find wp-admin -type d -print | xargs sudo chmod 755
サブフォルダのディレクトリだけ
この処理はwp-adminも該当する。

sudo find wp-admin -type f -print | xargs sudo chmod 640
サブフォルダのファイルだけ
この処理はwp-adminも該当する。

/usr/share/wordpressに以下を実行。
sudo chown -R root:wp *
sudo find . -type d -print | xargs sudo chmod 755
sudo find . -type f -print | xargs sudo chmod 640
このコマンドはカレントディレクトリも摘要されるので注意。

WordPressのアップデート時にFTPを求められる場合

以下のコマンドをwp-contentの中で実行してみた。
sudo find . -type d -print | xargs sudo chmod g+w
sudo find . -type f -print | xargs sudo chmod g+w
ダメ。

仕方ない。
sudo chown -R www-data:wp wp-content
としてみるがダメ。

wp-admin/includes/file.php
の所有者をwww-dataに変更したら進んだ。