SSHでパスフレーズ認証ができなくなった場合の対処法

ある日、急にSSHのパスフレーズ認証ができなくなっていた。 理由は、誤って自ユーザー(以下の例ではfoo)のホームディレクトリのパーミッションが777にしていたため。
$ ls /home 
20K drwxrwxrwx 57 foo  20K  6月 26 17:00 foo
これを755に修正したら、正常にもどった。なお、ネットを検索すると701にするべきという情報もあるので、ディストロや設定によってはそうしなければならないのかもしれない。

Network namespaceの一覧表示

# ip netns

乃木坂三期生単独ライブ

1次先行、2次先行ともに落選。一般発売も数十秒でご覧のとおり。人気すごいなー。
 

Ubuntu 17.04にアップグレードした際のトラブル回避

1. 無線LANが使えない


対策: rfkillコマンドがデフォルトブロックしていたので、次のようにアンロック
# rfkill unblock all

2. python-jsonpatchとpython-oslo.configがアンインストールできない


python-oslo.config

以下のようにダミーのファイルdummyを作成し、それにリンクを貼る。この状態で削除(例えば、dpkg --purge python-oslo.config)

# touch dummy
# ln -s dummy /etc/alternatives/oslo-config-generator 

python-jsonpatch

こちらは、ファイルあるのだがそれがリンクでないのが悪いみたいなので、以下のように適当にリンクを作ってから削除
# mv /etc/alternatives/jsonpatch /tmp
# ln -s dummy /etc/alternatives/jsonpatch 
楽天でチケットを申し込む時、メールマガジンに関して 「不要な方はチェックをはずしてください」と表示されるものの、実際にはグレーアウトになっていてはずせない。極悪すぎる。

MacOS 10.13でのフォントのアンチエイリアスの具合調整

最後の数値を0 (なし)〜3 (強い)の間で調整する。 筆者の好みは1。
defaults -currentHost write -globalDomain AppleFontSmoothing -int 1

Zabbix 3.0のインストールではまったところ。

Zabbix 3.0のインストール方法を検索すれば、たくさん情報がでてきます。 しかし、なぜか、情報が少なくてハマったことがあるのでメモ。
  • 以下のファイルの$DB['PASSWORD']にもMySQL (MariaDB)に設定したパスワードを反映する必要あり
    • /etc/zabbix/web/zabbix.conf.php

LinuxでIPsecのコネクションをオンデマンドで開始する (Ubuntu 16.10)

/etc/ipsec.confでconnセクションにauto=addを指定します。なお、auto=startにした場合、ipsec (strongswan)の起動と共に接続が開始されます。
conn myconnection
(省略)
      auto=add
この状態でstatusを確認しても、何も表示されません。待機している接続(上記のmyconnection)はstatusallコマンドで確認できます。
# ipsec status
Security Associations (0 up, 0 connecting):
  none
接続を開始するにはupコマンドを使います。
# ipsec up myconnection
(省略)
connection 'myconnection' established successfully
接続の終了にはdownコマンドを使います。
# ipsec down myconnection

Linuxでデバイスの接続構造を見る

$ hwloc-ls
X11が使用可能だと以下のような画面が表示される。NUMA構成でメモリやデバイスがどう接続されているかを確かめるのにも使える。

ケースファンパワーアップ

今のPCにケースファンは付いているものの回転数がいささか小さい(Shassis2 Fan)。
 $ sensors
(略)
CPU Fan Speed:      2280 RPM  (min =  600 RPM, max = 7200 RPM)
Chassis1 Fan Speed:    0 RPM  (min =  600 RPM, max = 7200 RPM)
Chassis2 Fan Speed:  659 RPM  (min =  600 RPM, max = 7200 RPM)
Power Fan Speed:       0 RPM  (min =    0 RPM, max = 7200 RPM)
CPU Temperature:     +40.5 C  (high = +45.0 C, crit = +45.5 C)
MB Temperature:      +35.0 C  (high = +45.0 C, crit = +46.0 C)
(略)
もともと、回転数が低めで静音タイプを選んだもあるのだが起動時に回り出さないことがある。その場合、結構ケース内が熱くなる。先日、動画エンコードを数時間実行するとリブートしてしまった。そこでOWL-FY1225PWMを購入。 装着後、マザーボードの温度も下がった。このファン回転数は最大1600RPMほどだが、マザーボードASUS P7P55Dの4pinファンコネクタに接続するとPWM制御できるので、通常温度だと1100RPM程度。静音性も問題なし。
CPU Fan Speed:      2056 RPM  (min =  600 RPM, max = 7200 RPM)
Chassis1 Fan Speed: 1080 RPM  (min =  600 RPM, max = 7200 RPM)
Chassis2 Fan Speed:    0 RPM  (min =  600 RPM, max = 7200 RPM)
Power Fan Speed:       0 RPM  (min =    0 RPM, max = 7200 RPM)
CPU Temperature:     +37.0 C  (high = +45.0 C, crit = +45.5 C)
MB Temperature:      +31.0 C  (high = +45.0 C, crit = +46.0 C)


左上が今回購入したファン(右はCPUファン)。中央下の4pinパワーコネクタもこのファンの一部。おそらくPWM制御コネクタがなくても電源ピンにこれを繋げば動作するのではないか。

ipコマンドでIPアドレスを設定する例

# ip addr add 192.168.0.10/24 dev eth0
なお、LINKをUPするには、
# ip link set eth0 up

pulseaudioで再生中の音声を録音する

次のようにmonitorデバイスを調べる。何もデバイスがない場合でも、下記のようにnullデバイスがあるはず。
$ pactl list | grep monitor
        Monitor Source: auto_null.monitor
        Name: auto_null.monitor
                device.class = "monitor"
そのデバイスを指定して、次のようにparecコマンドを実行する。
$ parec -d auto_null.monitor > audio.raw

libvirt経由で起動したVMのIPアドレスを推測する

# cat /var/lib/libvirt/dnsmasq/virbr0.status 
[
    {
        "ip-address": "192.168.122.20",
        "mac-address": "00-00-5E-00-53:01",
        "hostname": "vm100",
        "expiry-time": 1488438486
    },
    {
        "ip-address": "192.168.122.224",
        "mac-address": "00-00-5E-00-53:02",
        "hostname": "vm-a2",
        "expiry-time": 1488439233
    }
]

macvtapのブリッジ先Interfaceを知る

ip linkコマンドを使う。veth pairでpair相手を知る方法と基本的に同じ。
$ ip link | grep macv
56: macvtap0@enp0s1:  mtu 1450 qdisc pfifo_fast state UNKNOWN mode DEFAULT qlen 500
参考: vethペアの作り方

Huge Pageを動的を確保する例

動的に確保する場合

# echo 512 > /proc/sys/vm/nr_hugepages
また、sysfs経由でも可能。上記はdefaultのHugeページサイズ(2MB)を確保するが、sysfsでは他のサイズ(例えば1GB)のページも確保できる。
# echo 4 > /sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages
また、デフォルトサイズ以外のページを使う場合、それに対応するhugetlbfsをmountしておく必要がある。以下はその例。
# mkdir /dev/hugepages1G
# mount -t hugetlbfs -o pagesize=1G none /dev/hugepages1G

起動時に確保する場合

Linuxカーネルのコマンドライン(grbu.confなど)に以下の設定をします。下記の例ではデフォルトのHugeページサイズを1GBにしています。
default_hugepagesz=1G hugepagesz=1G hugepages=1

NVidiaのグラボ + LinuxでTearingを解消する

次のコマンドを実行をする
nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
なお、VSyncのチェックにはこのサイトが役立つ

出典: https://bbs.archlinux.org/viewtopic.php?id=214645

NVidiaのグラボを使った時、pulseaudioがクラッシュする問題の回避策

GTX650搭載のグラボに交換した後、Ubuntu 16.10でpulseaudioがクラッシュしていた。
$ grep seg /var/log/syslog | tail -1
Feb  5 14:13:38 foo kernel: [ 2402.435970] pulseaudio[17820]: segfault at 0 ip 00007fb12b98b11b sp 00007ffc16868048 error 6 in libasound.so.2.0.0[7fb12b94b000+f9000]
/proc/asound以下の情報から、このカードにはIntel HD Audio用ドライバが使われていた。私は他のSoundカードにそのドライバを使用していない(USB audioやBlutoothを使用)ので、ドライバのロードを次のように抑止した。

/etc/modprobe.d/blacklist.confに次の行を追加して再起動
blacklist snd_hda_intel

SSH agentをForwardする

~/.ssh/configに以下の記述を追加する
ForwardAgent yes
これで、ログインするとSSH agentがフォーワードされる。 loginすると次のような環境変数が設定されている。
SSH_AUTH_SOCK=/tmp/ssh-6qafmTrfjF/agent.3055

IOMMUグループに含まれるデバイスを知る

/sys/bus/pci/devices/[device id]/iommu_group/devices以下を見ればよい。
$ ls -l /sys/bus/pci/devices/0000\:01\:00.1/iommu_group/devices/       
total 0
0 lrwxrwxrwx 1 root 0 Jan 20 17:25 0000:00:01.0 -> ../../../../devices/pci0000:00/0000:00:01.0
0 lrwxrwxrwx 1 root 0 Jan 20 17:25 0000:01:00.0 -> ../../../../devices/pci0000:00/0000:00:01.0/0000:01:00.0
0 lrwxrwxrwx 1 root 0 Jan 20 17:25 0000:01:00.1 -> ../../../../devices/pci0000:00/0000:00:01.0/0000:01:00.1

X11でマウスの割当を変更する

まず、マウスの名前を取得。以下の場合、青文字のLogitech M705がターゲット。
$ xinput       
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech M705                             id=10   [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Topre Corporation HHKB Professional       id=8    [slave  keyboard (3)]
サイドのボタン(コード8)を真ん中ボタン(コード2)と入れ替えるには、次のようにする
$ xinput set-button-map "Logitech M705" 1 8 3 4 5 6 7 2 9
ちなみに現在の割当を確認するコマンド
$ xinput get-button-map "Logitech M705"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

MacOSのgitでinvalid action developer pathのエラーの対処

gitを使うと以下のエラーが表示された。
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
解決方法は、以下のコマンドを実行
xcode-select --install

LGL24でのスクリーンショット

背面の「音量ボタン▼」と、側面の「電源ボタン」を1秒以上長押し。