書き込み専用ぽいsamba共有を作る

書き込み専用の共有

sambaでデータの提出専用みたいな共有が作れないかと試してみました.

sambaサーバ の /etc/samba/smb.conf を編集して write-only という共有を作成.

[write-only]
  # 共有ファイルの保存先
  path = /export/data/write-only
  # 共有が見えるように
  browseable = yes
  # ゲストアクセス許可
  guest ok = yes
  guest only = yes
  # 書き込み可能
  writable = Yes
  # ゲストで書き込むと nobody アカウントで保存される
  guest account = nobody
  # umaskを 0333 に
  create mask = 0333
  directory mask = 0333
  # 読み込み権のないファイルを見えなくする
  hide unreadable = Yes

samba の設定を反映する

$ sudo service samba reload

クライアントPCから共有に接続して動作確認する

gvfs-mount で mount して,マウントポイントを確認.

$ gvfs-mount smb://192.168.1.102/write-only
$ mount|grep gvfs
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
client$ $ ls -la /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/
合計 0
drwx------ 1 mk mk 0  5月 25 19:13 .
dr-x------ 3 mk mk 0  5月 21 05:54 ..

書き込んでみる

$ echo hoge > /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/hoge

書き込んだファイルは見えない

$ ls -la /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/
合計 0
drwx------ 1 mk mk 0  5月 25 19:24 .
dr-x------ 3 mk mk 0  5月 21 05:54 ..
$ cat /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/hoge
$ cat: '/run/user/1000/gvfs/smb-share:server=192.168.1.102,share=write-only/hoge': 許可がありません

serverではこんな感じで見える

$ ls -lA /export/data/write-only
合計 4
--wx-w---- 1 nobody nogroup 5  5月 25 19:24 hoge
$ sudo cat /export/data/write-only/hoge
hoge

クライアントから同名のファイル名で上書きするとエラーもなく書き込める

$ echo fuga > /run/user/1000/gvfs/smb-share\:server\=192.168.1.102\,share\=write-only/hoge

サーバで書き換わっているのを確認

$ sudo cat /export/data/write-only/hoge
fuga



PulseAudioでライン入力を使う

PCの熱が辛い

最近暖かくなってきました.NotePCにあまり仕事をさせていなくてもCPU温度は65~75度くらい.

$ acpi -ti
Thermal 0: ok, 71.0 degrees C
Thermal 0: trip point 0 switches to mode critical at temperature 99.0 degrees C

Flash動画をブラウザ経由で再生すると初めのうちはそうでもないけどすぐに130%くらいCPUを使ってPCの動作重く&CPU熱くなります(特にニコ生TS).そして最近は100度を超えてシャットダウンしてしまうように.

  • 再生初め

$ top -bn1 | grep -A 3 PID
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
21114 mk        20   0 1114852 214732 103616 S  43.8  1.3   0:13.54 plugin-containe
22343 mk         9 -11  588044  12992   9416 S  12.5  0.1   1:30.03 pulseaudio
 3816 mk        20   0  561012 172172 147924 S   6.2  1.1   1:51.02 Xorg
  • 暫く経ったら

$ top -bn1 | grep -A 3 PID
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
21114 mk        20   0 1168452 241256 125892 S 147.1  1.5   2:12.09 plugin-containe
25291 mk        20   0   43820   3936   3176 R  17.6  0.0   0:00.03 top
 3816 mk        20   0  574540 171532 146696 S  11.8  1.1   2:08.95 Xorg

※plugin-containeがpepperflashのプロセス.

pepperflashをAdobe Flash Playerに変更するとましになったような気もしましたがよくクラッシュする&スクリーンセーバ自動抑制機能などもないようなのでちょっと使いづらいです.

$ sudo update-alternatives --config flash-mozilla.so
alternative flash-mozilla.so (/usr/lib/mozilla/plugins/flash-mozilla.so を提供) には 2 個の選択肢があります。

  選択肢    パス                                                                          優先度  状態
------------------------------------------------------------
* 0            /usr/lib/browser-plugin-freshplayer-pepperflash/libfreshwrapper-flashplayer.so   70        自動モード
  1            /usr/lib/browser-plugin-freshplayer-pepperflash/libfreshwrapper-flashplayer.so   70        手動モード
  2            /usr/lib/flashplugin-nonfree/libflashplayer.so                                   50        手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:

スマホやChromeCastで動画再生を試みる&PC経由でBluetoothヘッドセットで音声を聞きたい

スマホやChromeCastで再生して外部ディスプレイに映すようにしたらどうだろうと試してみるとニコニコ動画/生放送は画質が悪くなってしまうけど他のサービスでは良さそうです.しかし音声をBluetoothヘッドセットで聞きたいです.それもPCと一緒に.
ということで,以下のような接続を試してみました.PC(Debian)でのBluetoothはblueman-appletを,音声デバイスの切り替えなどはpavucontrolを,Bluetooth音声のプロファイルはA2DPを利用しています.

  • ○ Android → Bluetooth → PC(Debian) → Bluetooth HeadSet

  • ○ iOS → Bluetooth → PC(Debian) → Bluetooth HeadSet

  • ✘ Android → 3.5mmライン → PC(Debian) → Bluetooth HeadSet

  • ✘ iOS → 3.5mmライン → PC(Debian) → Bluetooth HeadSet

  • ✘ ChromeCast → HDMI → HDMIモニタ → 3.5mmライン → PC(Debian) → Bluetooth HeadSet

Bluetooth ではうまく行くのですが,3.5mmライン入力がうまく行きません.ChromeCastはBluetoothが使えないのでちょっと困ります.
ライン入力の波形は出ているしレコーダアプリでラインからの音の録音は出来るのでPCに音は流れてきているようです.

以下のFAQページによると`module-loopback`モジュールを読み込むと良いようです.

以下のようにすると反映されてライン入力からの音が出るようになりました.

$ pactl load-module module-loopback

ログアウトすると設定は消えるので以下の辺りの設定ファイルに書いておくと良さそうです.

$ man default.pa|grep -A5 'SYNOPSIS'
SYNOPSIS
       ~/.config/pulse/default.pa

       /etc/pulse/default.pa

       /etc/pulse/system.pa

/etc/pulse/default.pa~/.config/pulse/default.pa にコピーして編集してPulseAudioを再起動して反映出来ました.

$ mkdir -p ~/.config/pulse
$ cp /etc/pulse/default.pa ~/.config/pulse/default.pa
$ vi ~/.config/pulse/default.pa
$ diff /etc/pulse/default.pa ~/.config/pulse/default.pa
167a168,170
>
> # 3.5mm Juck In
> load-module module-loopback
$ /usr/bin/pulseaudio -k
$ /usr/bin/pulseaudio --start --log-target=syslog

再起動しても問題無さそうです.
とりあえずこの状態でライン入力からの音声とPCの音声が同時にBluetoothヘッドセットで聞ける状態になりました.

しかし問題点がひとつ.ライン入力とBluetooth(A2DP)入力を同時に行おうとするとライン入力の音が聞こえなくなってしまいます.これは要調査ですね…….

<追記>

~/.config/pulse/default.pa の以下をコメントアウトで行けてるよう.これ出力側だけかと思ってたんですが入力も効くんですかね.

> #load-module module-switch-on-connect

てことでライン入力とBluetooth入力とPCの音声が全部同時に出力できるようになりました :)

</追記>

環境

鹿児島Linux勉強会2016.04に参加

鹿児島らぐの鹿児島Linux勉強会 2016.04に参加してきました.

熊本で地震があったばかりでどうしようかなとちょっと思いましたが鹿児島は被害も無さそうだし開催しました.参加希望者は全員集まったし良かったのではないかと思っています.

今回の会場は谷山だったので早めに家を出たのですが思ってた以上に時間掛って3時間以上掛ってしまいましたorz

今回参加者は6人.うち1人は埼玉からと前回に続き遠征組がΣ
ナンデ?いえ嬉しいんですけれどね.わざわざ遠征してくるほどのものができているかというとどうかなーと思ってしまって.

26550962131 44215d88ab n 26013294703 c95b8ea987 n
集合場所の日本最南端の電停の碑とお土産の十万石まんじゅう

前回に続きTwitterのハッシュタグ( #kagolug ) TitanPadも利用.しかしどちらも使われず遅刻者のTweetにもなかなかきづけずダメダメでした.次は自分が喋っている時にもTweetに気づけるようpopupするようにしておこうと思います.TitanPadは勉強会中にもっとピックアップするように&気長にやるしか無いかな?
でも以前のように一人で何個もネタを用意しないと時間が持たないということがなくなってきたのは良い感じです.毎回5つくらいネタ用意してるんですが一人で発表しててもあれですし…….

今回の新しい試みとして参加登録時にアンケートを設けてそれを以下のようにスライドに貼ってみました.


matoken (matoken)

  • この勉強会を何で知りましたか?

    • 脳内

  • 発表や相談したいことがある人は良かったら書いてください

    • ちょっと古いマシンにUbunuMATE入れた話とか?


発表したいことは 「(回答なし)」となっていることが多かったですが,実際はあったりして聞いたその場で埋めていきました.
これは後で思い出せなくなるので良かったと思います.
ちなみにDebian勉強会の真似だったりします.

Tip
Debian勉強会の資料は以下で見ることが出来ます.
過去の資料過去の資料pdf版
第 107 回 関西 Debian 勉強会 2016 年 2 月 のかわだてつたろうさん「勉強会資料の歩き方」が参考になります.

私の発表はこれで,前回古いXPマシンをLinuxにしたいという方がいたのでその助けにならないかと思ってこのネタを選びました.

前半のFMV-U8250にUbuntu MATE入れたとこまで発表しました.でも後半だけ発表したほうが良かったかもなーと後で思ったりしました.

26590185566 45da709206 n 26010821964 50a3a9bbcc n
勉強会の様子

勉強会終了後路面電車の最終電車で天文館方面へ.そして遠征者のチェックインを待って懇親会を行いました.

26010719854 65c8a45c12 n

懇親会が終わって桜島フェリー桟橋に向かっている時に地震を知らせる防災無線そして震度4の地震がありました.歩いていても揺れを感じてびっくり.フェリー出るのかなと思いつつフェリー乗り場に付くとちょうど出港したところでした.平常運転.

26523381402 078be00d6e n

桜島フェリーは24時間運行ですがこの時間帯は1時間に1本ということでNHKのらじる☆らじるを聞きながら1時間近く待合所でPCいじっていたのでした.フェリーで桜島にわたってから家までは落石とか怖いので遠回りして車通の多い道で帰りました.何事もなく5時前くらいに帰宅.

次回は5月にやりたいけれど未だ何も決まっていません.誰か手を上げてくれると嬉しいけどどうなるかな?

Bash on Ubuntu on Windows(Windows Subsystem for linux)を少し試す

巷で噂の? Bash on Ubuntu on Windows(Windows Subsystem for linux) ですが,少し試してみました.
目的はみんなとは少し違う感じでWindows環境の中でLinuxデスクトップ環境を混在させたいなと.

Bash on Ubuntu on WindowsというのはWindwsの中でLinuxバイナリがそのまま動くというものらしいです.*nix環境でWindowsのバイナリを動かすWineの逆のような物だと思います.未だ全ての機能は実装されていなくてβ扱いです.

Windows7環境をWindows10にアップグレードして環境を用意しようと思ったのですが,これが結構面倒でした.Windows7の入ったDiskに差し替えて半年ちょっとぶりにWindowsUpdateをかけたのですが,更新の確認が1日経っても終わりません.これは以下の2つを試してやっと解決しました.

そして半日くらいかけてWindowsUpdate完了.その後Windows10にアップグレード開始.ということでWindows10のイメージのダウンロードが行われました.確か2GBちょっと.その後 Trend Micro Internet Security 2009 は互換性のないアプリなのでアンインストールするように言われました.しかしこれは確かプリインストールされていて即消したような気のするアプリ.アプリの一覧にもスタートメニューにもありません.program files / program files (x86) の下にもありません.regeditで TrendMicro をキーに検索すると1項目発見.こいつを削除してやっとここをパスできました.
次は以下の謎のエラー.OSを再起動してみると再度Windows10のイメージをダウンロードし始めました…….そんなこんなでやっとWindows7 → Windows10に.巷では勝手にWindows10になったとかよく聞くのでこんなに時間掛かるとは思いませんでした.(未だWi-Fiとサウンドデバイスが見えなくなってるけど後回し)

25805713564 189cdf47bb n

次はInsider Preview Buildの設定.設定しても最新ビルドが降ってきません.

26298209522 880cffaefc n

そういえばVirtualBoxの中にもWindows10環境があったなーと試すとこちらだとさくっと降ってきました.これから試す方は最新isoイメージを入手してそこからインストールしたほうが早そうです.

(ここからはBash on Ubuntu on Windows on Debianに!)

最新にアップグレードできたら「Windowsの機能」から Windows Subsystem for Linux(Beta) にチェック.

26364413016 d793a965fd n

とりあえずBashを起動.

26390311865 58de4f4ae6 n

Ubuntuイメージのダウンロードが始まりました.

26390312065 1381cf5024 n

メニューに Bash on Ubuntu on Windows が出てきました.

26390312255 82e3285d7b

aptとかも動きますね.

25785485344 f69415644e

OpenSSHはなんかコケます.端末がとても使いづらいのでこれは使いたかったです.telnet試すという手もあるけど…….

26297965742 7113f846ab

そして,やりたかったのはこれです.

26297965822 3ec3a96616

X ServerをWindowsで起動しておいてXアプリを利用しています.今回はX Serverに Xming を利用しました.

x11-appsに入っているような単純なアプリは問題無さそう(xconsoleはconcole開けてませんが)ですが,例えばmikutterは認証後に落ちるし,vim-gtkは起動して使えそうと思っても使おうとすると固まったりSEGVで落ちたりでした.

26364414926 eb2ace1d99

2004年辺りにPentium-M 800MHz RAM 768MBなマシンでWindowsXPの上でcoLinuxを使いこんな感じの環境を作ってWindowsアプリとLinuxのXアプリを同じ画面で利用していました.

WindowsアプリからLinuxアプリにだんだん移行していってその後に完全にデスクトップ環境をLinuxにスイッチしたのでした.

今同じようなことをしようと思うと仮想マシンを利用することになると思うのですがやはりオーバーヘッドが大きいのですよね…….
まだこういう用途には使えなさそうですが,もう少し色々動くようになったらそういう用途にも使えそうです.

















ssh-import-idコマンドを試す

最近知ったLaunchPad/GitHUBの鍵を読み込んでインポートするコマンドを知りました.昔同名のコマンドか何かがOpenSSHにもあった気がするけどそれは今なくて別物みたい?

動きはこんな感じ

  • lp:USERID でLaunchPadの鍵をインポート

  • gh:USERID でGitHUBの鍵をインポート

  • USERID でLaunchPadの鍵をインポート

  • USERID は複数指定可能

  • 鍵は ~/.ssh/authorized_keys に書き込まれる

  • -o で書き出すファイルが指定可能`-`だとSTDOUT

  • -r で鍵削除

$ apt show ssh-import-id
Package: ssh-import-id
Version: 3.21-1
Priority: extra
Section: misc
Maintainer: Dustin Kirkland <kirkland@ubuntu.com>
Installed-Size: 98.3 kB
Depends: ca-certificates, openssh-client, python-requests (>= 1.1.0), wget, python (>= 2.7), python (<< 2.8)
Recommends: openssh-server
Homepage: http://launchpad.net/ssh-import-id
Download-Size: 17.7 kB
APT-Manual-Installed: yes
APT-Sources: http://dennou-q.gfd-dennou.org/debian stretch/main amd64 Packages
Description: securely retrieve an SSH public key and install it locally
 This utility will securely contact a public keyserver (Launchpad.net by
 default, but Github.com is also supported), retrieve one or more user's
 public keys, and append these to the current user's ~/.ssh/authorized_keys
 file.
$ ssh-import-id -h
usage: ssh-import-id [-h] [-o FILE] [-r] USERID [USERID ...]

Authorize SSH public keys from trusted online identities.

positional arguments:
  USERID                User IDs to import

optional arguments:
  -h, --help            show this help message and exit
  -o FILE, --output FILE
                        Write output to file (default ~/.ssh/authorized_keys)
  -r, --remove          Remove a key from authorized keys file

LaunchPadの matoken の鍵をインポート

$ ssh-import-id -o - lp:matoken
2016-04-10 19:07:35,698 INFO Authorized key ['4096', 'SHA256:4MQHGaIDjLbnM3kU5rgFSq6cDou3LUYSjSTumL+eFKw', 'mk@rsa4k','(RSA)']
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDSnDzGBIHoX20WWjPrqn4JoWIHChE5JNqlnPxL0cSCj8wxQ9Y7AEgZfd9yq2ipXsBoVCi6D6ymk1/fQmEe8vW4U10ajb9VnA7ypy4Rjp1RV2RNyIS7jsJdYCMhGlXW8OlyKcxPbh6z/L/2ZuHbw32shJzMAs58JNNwxERQJDfPiJLq1WWrjOxAPCxtuTWddXfaZFgdxZQIXxW1TpTUqeu/OowQ8v1Mqt27agB2RZNPUOwe8A94cwJDbJNNpS7TIRgyKeApD45TKYc0w7ehbC42nURM//4PguHXBC3Arp1P3/Z4/DGdnLOrXU9fUWe0g+ucyT4aL6pI0on8mOivv2CcnePvTDHIwRIchibp0lPtBLOS4pmQFHf5U5N2SZF+B0dI/3Q4Sd9BC5VmF9owLi1bXRZw17Hqpgj2tOnI3HYTOvbssLt0DQcQBOE4puQ9epc+Lioqw6+SvCtiQl1pGl3b3reQh61q4lhc+FRtYvsUIOrjYHJ+QG0sGTVuC/RUWTbCterWX3ogENAYNWGv/83Z9sMCQTr894unhru1LHCmnGouxhtZ0lbWt/OVdsNcONu9RK/GlccDnuOj8THOIVghHJP9/9I6lTS4rX4aXAMaXns1hi5sO5WOGKhUNbUbW6vHTJCdoXjuajL0PJmr2Fa4H8qH0GQzFuhCu82txkjWnQ== mk@rsa4k# ssh-import-id lp:matoken
2016-04-10 19:07:35,698 INFO [1] SSH keys [Authorized]

これもLaunchPadの matoken の鍵をインポート

$ ssh-import-id -o - matoken
2016-04-10 19:08:26,513 INFO Authorized key ['4096', 'SHA256:4MQHGaIDjLbnM3kU5rgFSq6cDou3LUYSjSTumL+eFKw', 'mk@rsa4k','(RSA)']
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDSnDzGBIHoX20WWjPrqn4JoWIHChE5JNqlnPxL0cSCj8wxQ9Y7AEgZfd9yq2ipXsBoVCi6D6ymk1/fQmEe8vW4U10ajb9VnA7ypy4Rjp1RV2RNyIS7jsJdYCMhGlXW8OlyKcxPbh6z/L/2ZuHbw32shJzMAs58JNNwxERQJDfPiJLq1WWrjOxAPCxtuTWddXfaZFgdxZQIXxW1TpTUqeu/OowQ8v1Mqt27agB2RZNPUOwe8A94cwJDbJNNpS7TIRgyKeApD45TKYc0w7ehbC42nURM//4PguHXBC3Arp1P3/Z4/DGdnLOrXU9fUWe0g+ucyT4aL6pI0on8mOivv2CcnePvTDHIwRIchibp0lPtBLOS4pmQFHf5U5N2SZF+B0dI/3Q4Sd9BC5VmF9owLi1bXRZw17Hqpgj2tOnI3HYTOvbssLt0DQcQBOE4puQ9epc+Lioqw6+SvCtiQl1pGl3b3reQh61q4lhc+FRtYvsUIOrjYHJ+QG0sGTVuC/RUWTbCterWX3ogENAYNWGv/83Z9sMCQTr894unhru1LHCmnGouxhtZ0lbWt/OVdsNcONu9RK/GlccDnuOj8THOIVghHJP9/9I6lTS4rX4aXAMaXns1hi5sO5WOGKhUNbUbW6vHTJCdoXjuajL0PJmr2Fa4H8qH0GQzFuhCu82txkjWnQ== mk@rsa4k# ssh-import-id lp:matoken
2016-04-10 19:08:26,513 INFO [1] SSH keys [Authorized]

GitHUBの matoken の鍵をインポート.複数あると全部インポートされるよう.

$ ssh-import-id -o - gh:matoken
2016-04-10 19:07:24,965 INFO Authorized key ['256', 'SHA256:B+hArXsApncIXlNlHoHnYxEV3Wfl9WdQLp5TwuTjqjY', 'matoken@github/8506592','(ECDSA)']
2016-04-10 19:07:24,972 INFO Authorized key ['256', 'SHA256:Jv7NHotumFU7z1fCRkJnfKwR0EtAweHWMIrduS4dXeM', 'matoken@github/16598604','(ED25519)']
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA0otYIHWIP6/Zt1t3Zj1FBPEiq6dcOUItrxlfwfyvlVAqRRDWqdZQEA5jdYNWU/vSaxZZ6STCKfiEwORdQvqa8= matoken@github/8506592# ssh-import-id gh:matoken
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPgwY9aZPxN/YoBBzd7TOcCk7EuGO0E9PuUjCHPtTuHP matoken@github/16598604# ssh-import-id gh:matoken
2016-04-10 19:07:24,972 INFO [2] SSH keys [Authorized]

LaunchPadとGitHUBを同時にインポート.

$ ssh-import-id -o ~/tmp/authorized_keys gh:matoken lp:matoken
2016-04-10 19:55:51,043 INFO Authorized key ['256', 'SHA256:B+hArXsApncIXlNlHoHnYxEV3Wfl9WdQLp5TwuTjqjY', 'matoken@github/8506592', '(ECDSA)']
2016-04-10 19:55:51,058 INFO Authorized key ['256', 'SHA256:Jv7NHotumFU7z1fCRkJnfKwR0EtAweHWMIrduS4dXeM', 'matoken@github/16598604', '(ED25519)']
2016-04-10 19:55:53,031 INFO Authorized key ['4096', 'SHA256:4MQHGaIDjLbnM3kU5rgFSq6cDou3LUYSjSTumL+eFKw', 'mk@rsa4k', '(RSA)']
2016-04-10 19:55:53,034 INFO [3] SSH keys [Authorized]
$ cat ~/tmp/authorized_keys
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBA0otYIHWIP6/Zt1t3Zj1FBPEiq6dcOUItrxlfwfyvlVAqRRDWqdZQEA5jdYNWU/vSaxZZ6STCKfiEwORdQvqa8= matoken@github/8506592 # ssh-import-id gh:matoken
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPgwY9aZPxN/YoBBzd7TOcCk7EuGO0E9PuUjCHPtTuHP matoken@github/16598604 # ssh-import-id gh:matoken
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDSnDzGBIHoX20WWjPrqn4JoWIHChE5JNqlnPxL0cSCj8wxQ9Y7AEgZfd9yq2ipXsBoVCi6D6ymk1/fQmEe8vW4U10ajb9VnA7ypy4Rjp1RV2RNyIS7jsJdYCMhGlXW8OlyKcxPbh6z/L/2ZuHbw32shJzMAs58JNNwxERQJDfPiJLq1WWrjOxAPCxtuTWddXfaZFgdxZQIXxW1TpTUqeu/OowQ8v1Mqt27agB2RZNPUOwe8A94cwJDbJNNpS7TIRgyKeApD45TKYc0w7ehbC42nURM//4PguHXBC3Arp1P3/Z4/DGdnLOrXU9fUWe0g+ucyT4aL6pI0on8mOivv2CcnePvTDHIwRIchibp0lPtBLOS4pmQFHf5U5N2SZF+B0dI/3Q4Sd9BC5VmF9owLi1bXRZw17Hqpgj2tOnI3HYTOvbssLt0DQcQBOE4puQ9epc+Lioqw6+SvCtiQl1pGl3b3reQh61q4lhc+FRtYvsUIOrjYHJ+QG0sGTVuC/RUWTbCterWX3ogENAYNWGv/83Z9sMCQTr894unhru1LHCmnGouxhtZ0lbWt/OVdsNcONu9RK/GlccDnuOj8THOIVghHJP9/9I6lTS4rX4aXAMaXns1hi5sO5WOGKhUNbUbW6vHTJCdoXjuajL0PJmr2Fa4H8qH0GQzFuhCu82txkjWnQ== mk@rsa4k # ssh-import-id lp:matoken

-r で鍵の削除.

$ ssh-import-id -r -o ~/tmp/authorized_keys gh:matoken
2016-04-10 19:56:08,827 INFO Removed labeled key ['256', 'SHA256:B+hArXsApncIXlNlHoHnYxEV3Wfl9WdQLp5TwuTjqjY', 'matoken@github/8506592', '(ECDSA)']
2016-04-10 19:56:08,837 INFO Removed labeled key ['256', 'SHA256:Jv7NHotumFU7z1fCRkJnfKwR0EtAweHWMIrduS4dXeM', 'matoken@github/16598604', '(ED25519)']
2016-04-10 19:56:08,837 INFO [2] SSH keys [Removed]
$ cat ~/tmp/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDSnDzGBIHoX20WWjPrqn4JoWIHChE5JNqlnPxL0cSCj8wxQ9Y7AEgZfd9yq2ipXsBoVCi6D6ymk1/fQmEe8vW4U10ajb9VnA7ypy4Rjp1RV2RNyIS7jsJdYCMhGlXW8OlyKcxPbh6z/L/2ZuHbw32shJzMAs58JNNwxERQJDfPiJLq1WWrjOxAPCxtuTWddXfaZFgdxZQIXxW1TpTUqeu/OowQ8v1Mqt27agB2RZNPUOwe8A94cwJDbJNNpS7TIRgyKeApD45TKYc0w7ehbC42nURM//4PguHXBC3Arp1P3/Z4/DGdnLOrXU9fUWe0g+ucyT4aL6pI0on8mOivv2CcnePvTDHIwRIchibp0lPtBLOS4pmQFHf5U5N2SZF+B0dI/3Q4Sd9BC5VmF9owLi1bXRZw17Hqpgj2tOnI3HYTOvbssLt0DQcQBOE4puQ9epc+Lioqw6+SvCtiQl1pGl3b3reQh61q4lhc+FRtYvsUIOrjYHJ+QG0sGTVuC/RUWTbCterWX3ogENAYNWGv/83Z9sMCQTr894unhru1LHCmnGouxhtZ0lbWt/OVdsNcONu9RK/GlccDnuOj8THOIVghHJP9/9I6lTS4rX4aXAMaXns1hi5sO5WOGKhUNbUbW6vHTJCdoXjuajL0PJmr2Fa4H8qH0GQzFuhCu82txkjWnQ== mk@rsa4k # ssh-import-id lp:matoken

$ ssh-import-id -r -o ~/tmp/authorized_keys matoken
2016-04-10 19:57:54,852 INFO Removed labeled key ['4096', 'SHA256:4MQHGaIDjLbnM3kU5rgFSq6cDou3LUYSjSTumL+eFKw', 'mk@rsa4k', '(RSA)']
2016-04-10 19:57:54,853 INFO [1] SSH keys [Removed]
$ cat ~/tmp/authorized_keys

新規ファイルでもパーミッションは適切に設定されている.

$ ls -l ~/tmp/authorized_keys
-rw------- 1 mk mk 0  4月 10 19:57 /home/mk/tmp/authorized_keys

ちなみに
/etc/ssh/ssh_import_id
を書き換えると任意のサーバを使うことも可能.

-       "URL": "https://launchpad.net/~%s/+sshkeys"
+       "URL": "https://example.org/~%s/+sshkeys"

これだと

$ ssh-import-id matoken

https://example.org/~matoken/+sshkeys が取り込まれる.
lpは上書きされちゃう感じ?

Mutt 1.6.0を試す

Mutt 1.6.0がリリースされました.安定版としては2007年のMutt 1.4.2.3以来9年ぶり!?

Muttはターミナルで動作するメーラーです.似たものにAlpine(旧pine)があります.emacs使いだとMewを使う方も居ますね. MuttとAlpineについては以下の記事が参考になると思います.

使いはじめるまでの速さはAlpineが一番だと思います. GPGやらカスタマイズやらのしやすさはMuttかな?(個人の感想です)

最近Alpineで1000000通を超えるメールボックスで1000000通目までしか見られないという現象やSubjectに♪などがあると動作や表示が崩れるといった問題に遭ったのでMutt環境を作りなおしたところでした.せっかくなのでMutt 1.6.0もBuild ざっとこんな感じでbuildしました.はじめprefixしか指定せずにbuildしてimapに繋がらないとかやってしまいましたorz

$ #stretchのMutt Version
$ mutt -v|head -1
Mutt 1.5.24 (2015-08-30)
$ # stretchのMutt configure 確認
$ mutt -v|grep Configure\ 
Configure options: '--prefix=/usr' '--sysconfdir=/etc' '--mandir=/usr/share/man' '--with-docdir=/usr/share/doc' '--with-mailpath=/var/mail' '--disable-dependency-tracking' '--enable-compressed' '--enable-debug' '--enable-fcntl' '--enable-hcache' '--enable-gpgme' '--enable-imap' '--enable-smtp' '--enable-pop' '--with-curses' '--with-gnutls' '--with-gss' '--with-idn' '--with-mixmaster' '--with-sasl' '--without-gdbm' '--without-bdb' '--without-qdbm' '--build' 'x86_64-linux-gnu' 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-z,relro' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2 -I/usr/include/qdbm'
$ sudo apt-get build-dep mutt
$ wget ftp://ftp.mutt.org/pub/mutt/mutt-1.6.0.tar.gz ftp://ftp.mutt.org/pub/mutt/mutt-1.6.0.tar.gz.asc
$ gpg --verify mutt-1.6.0.tar.gz.asc 
gpg: 署名されたデータが'mutt-1.6.0.tar.gz'にあると想定します
gpg: 2016年04月03日 03時22分52秒 JSTにRSA鍵ID 80316BDAで施された署名
gpg: "Kevin J. McCarthy <kevin@8t8.us>"からの正しい署名
gpg: *警告*: この鍵は信用できる署名で証明されていません!
gpg:       この署名が所有者のものかどうかの検証手段がありません。
主鍵フィンガー・プリント: 8975 A9B3 3AA3 7910 385C  5308 ADEF 7684 8031 6BDA
$ tar tvf mutt-1.6.0.tar.gz |lv
$ tar xf mutt-1.6.0.tar.gz
$ cd mutt-1.6.0
$ ./configure --prefix=$HOME/usr/local --disable-dependency-tracking --enable-compressed --enable-fcntl --enable-hcache --enable-gpgme --enable-imap --enable-smtp --enable-pop --with-curses --with-gnutls --with-gss --with-idn --with-mixmaster --with-sasl --with-slang --without-gdbm --without-bdb --without-qdbm --build x86_64-linux-gnu
$ make
$ make install

Mutt 1.6.0にしても設定は1.5.24のものがそのまま使えているようです. 1000000通目以降も読めます.1034161通までは確認.Subjectに♪があると崩れたりするのはMutt 1.6.0でも同じでした.これはS-Langとかの問題なのかな?configureとかもちゃんと確認したほうがいいかもですね.

普通にGUIのメーラーを使えばいいんじゃ?と思われるかもしれませんがメールボックスが大きくなってくると辛くなってきます.そういう環境でもサーバで起動しっぱなしにしてるとサクサク動くしsshさえ使えればメールの読み書きもできるしということで使っています. ということで今はWebではSquirrelMail/gmail,GUIではSylpeed/ClawsMail,端末ではAlpine/Muttをという感じで併用中です.

MATE環境でのキーボードレイアウト変更方法

先日setxkbmapでXのキーボードレイアウトをアドホックに変更できるようにしたのですが,

MATE環境だと切替後暫くすると設定が戻ってしまいます. setxkbmapの代わりにdconfの設定を書き換えればいいのではと思いdconf dump /してそれらしい項目を探して書き換えてみると設定の見た目は変わるのですが実際に入力してみると設定が反映されません.

$ dconf write /org/mate/desktop/peripherals/keyboard/kbd/layouts "['us', 'jp']"

dconfには他にそれらしい設定は無さそうです.


$ dconf dump /|grep us
start-with-status-bar=true
custom-format=''
button-lid-ac='suspend'
button-suspend='suspend'
button-lid-battery='suspend'
layouts=['us', 'jp']
mousekeys-accel-time=1200
mousekeys-max-speed=750
mousekeys-enable=false
mousekeys-init-delay=160
$ dconf dump /|grep jp
layouts=['us', 'jp']

GUIで設定変更をして設定が反映された前と後でも/org/mate/desktop/peripherals/keyboard/kbd/layouts部分しか変わっていません.dconf以外のどこかにも設定がありそうです.

$ dconf dump / > /tmp/before
$ # GUIで設定変更
$ dconf dump / > /tmp/after
$ diff /tmp/before /tmp/after
 
193c193
< layouts=['us', 'jp']
---
> layouts=['jp', 'us']

ここでGUIの設定画面(「システム」->「設定」->「ハードウェア」->「キーボード」の「レイアウト」タブ)を見ると複数のレイアウトが登録できます.ここに日本語と英語を登録して,「オプション」ボタンを押して「Switching to another layout」に適当なショートカットを選ぶとこのショートカットでレイアウト変更ができるのに気づきました.

Screenshot at 2016-04-03 12:48:47

Screenshot at 2016-04-03 12:48:35

ということで最近の環境だとこの機能で切り替えるのが良さそうです.

—-



Xでキーボードレイアウトをアドホックに変更する

今日本語キーボードのNotePCを設定しています,これまではこのマシンはi386のテストや横に置いて動画再生などをする程度にしか使っていなかったのですが,X220の調子が悪いので外に持ち出せるマシン出来ないかと設定中です.

小さなA5サイズのマシンな上に日本語配列(購入時は英語配列となっていたが日本語配列のものが届いた……)なので英語配列の外部キーボードを利用したいところです.

こんな感じでGUIで設定してもいいのですが,繋ぎ直すたびにこれをするのは面倒です. Screenshot at 2016-03-31 18:27:09

コンソールではloadkeysというコマンドでアドホックにキーボードレイアウト変更が出来ます.

同じような感じでXでも設定できないか探してみました. setxkbmapコマンドで実現できそうです.しかし,以下のようにうまく行く時とエラーになる場合があります.

$ setxkbmap -layout us
$ setxkbmap -layout jp
Error loading new keyboard description

少し試行錯誤してこんな感じでエラーが出なくなりました.

$ setxkbmap -model pc105 -layout us,jp
$ setxkbmap -model pc105 -layout jp,us

適当なキーにこれを割り当てておくと便利な感じです.

余録

現在の設定の確認

$ setxkbmap -print -verbose 10

Setting verbose level to 10
locale is C
Trying to load rules file ./rules/evdev...
Trying to load rules file /usr/share/X11/xkb/rules/evdev...
Success.
Applied rules from evdev:
rules:      evdev
model:      pc105
layout:     us
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+us+inet(evdev)
geometry:   pc(pc105)
xkb_keymap {
    xkb_keycodes  { include "evdev+aliases(qwerty)" };
    xkb_types     { include "complete"  };
    xkb_compat    { include "complete"  };
    xkb_symbols   { include "pc+us+inet(evdev)" };
    xkb_geometry  { include "pc(pc105)" };
};

鹿児島Linux勉強会2016.03に参加

DP1M1045

ちょっと前の話になりますが,3/12(sat)に「鹿児島Linux勉強会 2016.03」に参加してきました.

今回の参加者は東海地方から飛行機でやって来た(!)@kapper1224さんや飛び入りの方を含め8名でした.8名ならTENONさん予約可能だったなーとか.
(予約できないってことは埋まってた場合さすらう羽目になるので毎回不安だったり.)

私はRaspberry Piにdiskless modeのalpine linux導入の話をしました.

他の方の発表等は@kapper1224さんのblogやTogetterまとめをどうぞ.

Twitterやblogに投稿してくれる方が居るといいですね. 一人だと全然追いつきませんし. 毎回こんな感じだと中継なんかも再開できるかもですが…….

次回04月も開催予定です.今のところ4/15(Fri)に鹿児島市谷山方面で調整中です.
5月以降も俺が主催やってやるぜって方や,会場も募集中です.

状況を知りたい方は鹿児島らぐのMLを購読したりしてみてください.
(LingrやTwitterでもMLの内容配信してます)

コンポジットマネージャーのXcompmgrでウィンドウ透過設定

久々にMATE環境を使ってみています.
awesomeだとショートカットキーでウィンドウの配置を設定できるので簡単にウィンドウを並べ変えて動画を見ながら別のことをするといったことが簡単に出来ました.しかしMATEで同じことをしようとすると面倒.以前はGnome端末で背景を透過させていましたがこの機能はなくなっていました.

Gnome端末から無くなった後もMATE端末には透過機能が残っていましたがこちらからもいつの間にかなくなっていました.もう復活することは無さそうなので他の端末アプリを幾つか試してみましたが擬似透過しか見当たりません.

ということで今回はXcompmgrを試してみました.

前提

xorgでComposite, RENDER が有効になっている必要がああります.以下OKの例.

$ xdpyinfo | grep -i "render\|composite"
    Composite
    RENDER

必要パッケージの導入

コンポジットマネージャーのxcompmgrと,透過の設定をするtranssetの含まれたx11-appsを導入します.

$ sudo apt install xcompmgr x11-apps

コンポジットマネージャの起動

$ xcompmgr -c &

とか

$ xcompmgr -cf &

とか

$ xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55 &

とかお好みで.

transsetでの透過

xcompmgrが起動した状態でtranssetを使うとウィドウを透過させることが出来ます.
引数には0~1の値を設定します.0が完全に透明.1が不透明です.

$ transset 0.6

として実行するとマウスカーソルが+マークになり,クリックしたウィンドウが透過されます.
以下はブラウザフルスクリーンでニコ生を再生した上に透過設定したMATE端末を表示しています.

Screenshot at 2016-03-19 07:06:39

自動起動設定

毎回手動で起動&設定するのは面倒なのでこんな感じで自動起動設定をします.
コンポジットマネージャーは「システム」->「設定」>「ユーザ向け」->「自動起動するアプリ」から.

Screenshot at 2016-03-20 06:27:22

MATE端末の透過設定は~/.bashrcに以下のように書いてbash起動時にMATE端末だったらtranssetを起動するようにしてみました.sleepを付けないとうまく動きませんでした.sleepの値は環境によって変わると思います.

$ tail -4 ~/.bashrc
case "$COLORTERM" in
    mate-terminal) sleep 0.3 && transset -a 0.6 > /dev/null;;
esac
 

ショートカット設定

MATE端末だけを透過設定する場合はここまでの設定で大丈夫ですが,他のウィンドウや透過度を変更するのにショートカット設定をしておくと便利そうです.

「システム」->「設定」->「ハードウェア」->「キーボードショートカット」でtranssetを登録してショートカットを設定します.

ここで設定したtranssetのオプションは-aはアクティブウィンドウの指定,--inc/--decはインクリメント,デクリメントのオプションです.

Screenshot at 2016-03-20 07:48:08Screenshot at 2016-03-20 07:48:03

Screenshot at 2016-03-20 06:25:27

これで未設定のアプリで透過させたり,ちょっと透過度を調整したいと行った時にショートカットですぐ設定できるようになりました :)

Screenshot at 2016-03-20 06:30:06