2019年1月29日火曜日

USB外付けハードディスクのマウント Debian

接続したら、外付けUSBハードディスクの所有者が rootになって書き込みできない。

結論:
接続したまま
$ sudo chown -R user:user /media/user/ラベル名 or UUID

抜き差し後も、再起動後も userで読み書き可能になった。
-R ディレクトリごと
user:user 所有者:グループ

前提:
OS: Debian GNU/Linux 9.7 (stretch)
Desktop : KDE Plasma version 5.8.6
USB ハードディスク : UUID (Universally Unique Identifier)による機器の指定が面倒なので、ext4にフォーマット時にラベル指定 (例 ExDisk)。

原因(曖昧):
初めて該当外付けハードディスクを繋いだとき、フォーマットとディスク検査をやるためにroot状態だったからなのか、udisks2がルートでスクリプトを作ってしまった...とか?

関連:
udisks2について
・Debian 8 (jessie)以降、外部接続のメディアは udisks2というサービス(D-Bus, udisksd)によって自動認識される。
・(多分) 接続をudisksdが検知して D-Busを使って動的に /media/user/下にLabel名 or UUIDで適切にマウントポイントを作る。
・KDEでUSBにメディアを接続したときアンダーバー(パネル)に現れる「デバイスの通知」や、クリックでのマウント/アンマウントはこのサービスを利用している。
・KDEシステム設定→ ハードウェア : Removable Strageも udisks2の設定。

・udisks2のサービス確認。
$ ps aux | grep udisks
/usr/lib/udisks2/udisksd の表示がでれば、サービスが動いている。

udisks2が動いていれば
例)
$ udisksctl status
MODEL                     REVISION  SERIAL               DEVICE
--------------------------------------------------------------------------
WDC WD10EZRX-00A8LB0      01.01A01  WD-WCC1U1234567      sda   
WDC WD10EARS-00Y5B1       80.00A80  WD-....
...
BUFFALO External HDD      0000      00123456789999D      sdc
...接続のみで、まだマウントしてない BUFFALO...も表示される。

・udisksctl の使用例
マウントする
$ udisksctl mount -b /dev/sdc1
Mounted /dev/sdc1 at /media/user/ExDisk
-b ブロックデバイス

アンマウント
$ udisksctl unmount -b /dev/sdc1

状態確認
$ udisksctl status


・systemctl を使って udisks2をコントロール
サービスの停止
# systemctl stop udisks2.service

停止の確認
# systemctl status udisks2

サービス開始
# systemctl start udisks2
サービス再起動
# systemctl restart udisks2

udisks2はディフォルトでboot時に自動的に起動する。起動サービスから削除して無効化
# systemctl disable udisks2

マニュアル起動も阻害
# systemctl mask udisks2
maskの確認
# systemctl is-enabled udisks2
masked (とのみ表示)
マスクの解除
# systemctl unmask udisks2
無効化の確認
# systemctl is-enabled udisks2
再有効化
# systemctl reenable udisks2

systemctlによるudisks2の確認
# systemctl status udisks2
# systemctl show udisks2

以上素人のメモ

2019年1月14日月曜日

vnStat vnStati

(Debian GNU/Linux 9 Stretch, vnstat バージョン 1.15 にて)

概要:
何メガバイト使ったんだろ〜という…ネットワーク通信量がわかるコマンドライン。
・synaptic, discover, apt などでインストール。
・vnstatはテキスト形式で表示。
  例) $ vnstat -d
      -d : 日付ごとの通信量


・vnstati は png, gif, jpg, bmp, tiff...形式で画像出力。
  例) $ vnstati --locale C -i enp0s32ff -d -o ./test.gif      ←enp0s32ffは任意
環境が LANG=ja_JP.UTF-8だと、vnstatiは、「年月日」を空白にして出力してしまうので、'--locale C' オプション。Localeの指定は、/etc/vnstat.conf でもできる (デフォルト Locale="-" システムロケール)。
test.gif
Debian 9 (Stretch)以降、ネットワークインターフェイス(NIC)の命名方式が変更され、eht0がデフォルトではなくなった。ens0やenp1s1、wlp3s0...のように各PCで表示が異なる(en - ethernet, sl - serial line IP slip, wl - wlan, ww - wwan)。
 $ sudo dmesg | grep eth0 すると"...renamed from eth0"とでる。
 例) インターフェイス名をさがす。
 $ ip a
 $ ls /sys/class/net/
 $ netstat -i
 $ ip link show (= ip l)
 $ nmcli device show  
vnstat / vnstatiのデフォルトは eth0。/etc/vnstat.confの # default interface Interface "eth0" を書き換えるとインターフェイス指定の -i enp0s3... オプションがいらない (要root)。
・ログファイル /var/lib/vnstat/[enp0s32ff | eth0 ...]の削除
 $ sudo vnstat -i enp0s32ff --force --delete
 Database for interface "enp0s32ff" deleted.
 The interface will no longer be monitored. Use --create
 if monitoring the interface is again needed.

  /var/lib/vnstat/enp0s32ff が削除された。vnstatdはactive。

・再び再開
 $ sudo vnstat -i enp0s32ff --force --create
 Creating database for interface "enp0s32ff"...
 Info: -> A new database has been created.

本家 : https://humdi.net/vnstat/

その他
・関連ファイル
  設定 : /etc/vnstat.conf
  デフォルトのログ先 : /var/lib/vnstat/[enp0s32ff | eth0 ...]
  vnstatd : systemctlから起動されるデーモン(ps aux | grep vnstat )
・rx 受信、tx 送信。
・vnstatは、/proc/net/dev を利用してる?

systemctl を使ったコントロール
・継続的 (OS起動毎に自動起動させて)に利用するには、
 # systemctl enable vnstat.service

・使用可の確認
 $ systemctl is-enabled vnstat  (vnstat.service としても同じ?)
 enabled

・状態の確認
 $ systemctl status vnstat
 ● vnstat.service - vnStat network traffic monitor
 ....
 KDEなら、以下でも確認できる
 KickOff→アプリケーション→システム→システムモニタ : プロセステーブル (検索) vnstat 「すべてのプロセス」or「すべてのプロセス、ツリー表示」。
 KickOff→アプリケーション→設定→システム設定 : Units [All]or[services] (検索) vnstat。

・OS起動毎に自動起動しなくていい  (systemctl enable vnstat の終了)。
 # systemctl stop vnstat ; systemctl disable vnstat
 停止しても /etc/vnstat.confとログファイル /var/lib/vnstat/任意 は残っている。

・一時的に使用/停止
 # systemctl start vnstat
 # systemctl stop vnstat

・vnstati のグラフ色変更
 /etc/vnstat.conf の # image colors で定義されている。変更するには、
https://humdi.net/vnstat/ の Features online color configuration editor : https://humdi.net/vnstat/coloredit/ にて試し、vnstat.confを書き換えるといい。

・vnstat-dashboard と言う PHP + Apache2(httpd) + Docker を使ったグラフィカル表示版もあるけど、なんでか動かなかった。

   - -- - -- - -- -
・ (vnstatの話ではない) ネットのIPv6の無効化
 # echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
 # sysctl -p (確認)
  net.ipv6.conf.all.disable_ipv6 = 1
 $ ip a (確認)


以上、素人のメモ