【Raspberry Pi】ユーザの追加とそのユーザにsudo実施できるようにする
デフォルトのpiユーザ以外を使いたいので、ユーザ追加をします。
1.ユーザの作成とsudo権限の付与
$sudo adduser hogehoge
ユーザー `hogehoge' を追加しています...
新しいグループ `hogehoge' (1001) を追加しています...
新しいユーザー `hogehoge' (1001) をグループ `hogehoge' に追加しています...
ホームディレクトリ `/home/hogehoge' を作成しています...
`/etc/skel' からファイルをコピーしています...新しい UNIX パスワードを入力してください:(パスワードを入力)
新しい UNIX パスワードを再入力してください:(もう一回入力)
passwd: password updated successfully
Changing the user information for hogehoge
Enter the new value, or press ENTER for the default
Full Name :(特に入力する必要がなければそのままEnter)
Room Number :(同上)
Work Phone :(同上)
Home Phone :(同上)
Other []:(同上)
以上で正しいですか? [Y/n] y
ついでにsudoできるようにグループに追加します。
$ sudo gpasswd -a hogehoge sudo
ユーザhogehogeをグループ sudo に追加
また、プロンプトを日本語にする場合は以下のように設定
$ cd ~/
$ vi .profile
export LANG=ja_JP.UTF-8 ←これを追加
2.sudo権限の削除とユーザ削除
sudo権限を削除する場合は以下のとおり
$ sudo gpasswd -d hogehoge sudo
ユーザ hogehoge をグループ sudo から削除
また、既存のユーザでパスワードなしのsudoを実施させない場合は、以下のようにします(例として、piの設定を変更します)。
$ sudo vi /etc/sudoers
pi ALL=(ALL) NOPASSWD: ALL
↓コメントアウト
#pi ALL=(ALL) NOPASSWD: ALL
ユーザの削除は以下のとおり。
ホームディレクトリも削除する場合は、オプション-rを付与する。
$ id -a hogehoge
uid=1001(hogehoge) gid=1001(hogehoge) groups=1001(hogehoge)
$ sudo userdel -r hogehoge
$ id -a hogehoge
id: hogehoge: no such user
【Raspberry Pi】Vimで開くときに色を付ける
ラズパイはデフォルトではVi(Vim)でファイルを開いても色がついていません。シェルスクリプト編集がしやすくなるように変更します。
そもそもvimがインストールされていない可能性があるため、まずはインストールします。
$ sudo apt-get install vim
Vimの設定ファイルは以下にありますが、syntax onのコメントアウトを解除します。
$ sudo vi /etc/vim/vimrc
"syntax on
↓
syntax on
ユーザ毎で独自にしたい場合は、ユーザローカルにコピーしてから弄ります。
$ sudo cp /etc/vim/vimrc ~/.vimrc
$ sudo vi ~/.vimrc
【Raspberry Pi 】TeraTermアクセスをSSH公開鍵方式で行う
セキュリティ向上のため、SSHアクセスを公開鍵方式に変更します。
1.公開鍵、秘密鍵の作成
公開鍵はTeraTermで作ります。sshdで作れるらしいけど、CUIで面倒なので。
メニューから「設定」→「SSH鍵生成」
パスフレーズを入れます。無論長くて複雑であればあるほどいい。
パスフレーズを入れたら、公開鍵をまず作ります。
→id_rsa.pubというファイルが作られるので、ローカルの適当なところに置きます。
秘密鍵も作ります。
→id_rsaというファイルが作られるので、これもローカルの適当なところに置きます。
2.サーバへの公開鍵の設置
作成した公開鍵(id_rsa.pub)をサーバに転送します。転送方法はWinSCPを使うなり、Teratermの設定から「ファイル」→「SSH SCP」から実施するなり。
公開鍵をホームディレクトリの.ssh配下に置きます(名前もauthorized_keysに変更)。
ホームディレクトリ配下に.sshがあるかはls -laコマンドでわかります。なければ作成した上で.ssh配下に置きます。
$ls -la
$mkdir .ssh
※2017/2/19追記
なお、公開鍵の権限は600にしないといけないらしい
3.sshdの設定ファイルを変更
以下のように変更します。
$ sudo vi /etc/ssh/sshd_config
RSAAuthentication yes ←コメントアウトされていたら解除
→上記項目は削除されたため、対応は不要(2022/7/3追記)
PubkeyAuthentication yes ←コメントアウトされていたら解除して「yes」
AuthorizedKeysFile %h/.ssh/authorized_keys ←コメントアウト解除して、keyの場所を指定
#PasswordAuthentication yes ←パスワード認証ログインの有効/無効のパラメータ
↓ コメントアウトを解除し、かつnoに変更
PasswordAuthentication no
この後、一度再起動します。
$sudo shutdown -r now
ログインメニューの変更を実施し、保存しておきます。
メニューから「設定」→「SSH認証」
秘密鍵は1の手順で作ったものを指定します。
入力が完了し、OKを押したあとは、設定変更を忘れずに。
メニュー「設定」→「設定の保存」
あとは、ログイン時にパスフレーズを入れれば公開鍵方式でログインできるようになります。
【Raspberry Pi】自動実行の登録方法
Raspberry Pi(というか、raspbian-OS)で自動実行はchkconfigで実施可能です。
デフォルトで入ってた気もするけど、入ってなければ入れます。
$sudo apt-get update
$sudo apt-get install chkconfig
chkconfigを実行。事前に/etc/init.dに作ったシェルなりを入れておきます。無論、権限は変更しておきます。
$sudo chmod 755 xxx.sh
$sudo chown root xxx.sh
$sudo chgrp root xxx.sh
$sudo mv xxx.sh /etc/init.d
$cd /etc/init.d/ ←移動する必要ないかも
$sudo chkconfig xxx.sh on
登録されているかは、以下のコマンドで確認可能。
$sudo chkconfig xxx.sh --list
xxx.sh 0:off 1:off 2:on 3:on 4:on 5:on 6:off
すべて表示するなら、
$sudo chkconfig --list
を実施。
【LIVA】【Ubuntu server14.04】赤外線学習リモコンを使う
家電を音声を操る、という目標に向けて着々と準備しています。
赤外線学習リモコンが必要になるわけですが、iRemoconは高いため、別の手段を取ります。
で、買ったのが、
■大宮技研社のirMagician(http://www.omiya-giken.com/?page_id=837)
■ビット・トレード・ワン社のUSB接続 赤外線リモコンKIT(http://bit-trade-one.co.jp/BTOpicture/Products/005-RS/)
1.irMagicianを試す
本機は日経Linux2014年12月号でも紹介されていますが、LinuxにUSB接続すれば簡単に認識され、赤外線の学習と送出は記事の著者がインターネットで提供しているpythonプログラムで簡単に実現できます。
https://github.com/netbuffalo/irmcli
以下、python実行環境とプログラムの取得
$sudo apt-get install python-pip
$sudo pip install pyserial
$sudo apt-get install git-core
$git clone https://github.com/netbuffalo/irmcli.git
※2018/12/3追記
ラズパイ3で手順通りにやった結果。
$ sudo pip install pyserial
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Requirement already satisfied: pyserial in /usr/local/lib/python3.5/dist-packages (3.4)
pipでインストールできているようだけど、python3に紐付いているようなので、実際に動かしてみるとエラーが発生します。
$ sudo python irmcli.py -h
Traceback (most recent call last):
File "irmcli.py", line 4, in <module>
import serial
ImportError: No module named serial
python2への紐付けがよくわからないので、以下のコマンドでインストールすることでとりあえずは動きます。
$ sudo apt install python-serial
※なお、python3-serialとすることでpython3向けにインストールできる
※追記終わり
実行してみます。
$ cd irmcli/
$ sudo python irmcli.py -h
usage: irmcli.py [-h] [-c] [-p] [-s] [-f FILE]irMagician CLI utility.
optional arguments:
-h, --help show this help message and exit
-c, --capture capture IR data
-p, --play play IR data
-s, --save save IR data
-f FILE, --file FILE IR data file (json)
$ sudo python irmcli.py -c
Capturing IR...
... 192
照明リモコンの赤外線(照明オン)を取得してみました。
以下のコマンドで実行可能です。
$ sudo python irmcli.py -p
Playing IR...
... Done !
取得した情報をファイルに保存するには以下のようにします。
$ sudo python irmcli.py -s -f right_light_start.json
Saving IR data to right_light_start.json ...
Done !
我が家は約10畳の縦長の部屋内に2つ照明がぶら下がっているため(真ん中に配線してくれよと思ったことは幾度となくあったが)、ファイル名も右を意味するrightとlightをかけてみた(かつ韻も踏んでみた)次第。
まぁ、そんなことはどうでもよく、以下のようにすればファイル指定で実行可能です。
$ sudo python irmcli.py -p -f right_light_start.json
Playing IR...
... Done !
2.赤外線リモコンKITで実行
実はLinuxでまだ実現できていません。
ツールとしては、こちら(http://a-desk.jp/modules/forum_hobby/index.php?topic_id=44、githubはこちらGitHub - kjmkznr/bto_ir_cmd: Bit Trade One IR Remocon tool for Linux)で展開されているlibusbを使ったツールか、こちら(http://a-desk.jp/modules/forum_hobby/index.php?post_id=382)で展開されているツールが使えるっぽいです。
Windowsように展開されているツールで試して見ると、物によって認識されたりされなかったりするようです。
【2016/1/30追記】
bto_ir_cmdで動くことは確認しています。ただし、makeした時にコンパイルエラーにあるので、以下のコマンドでlibusbを事前にインストールしましょう。
sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev libusb-dev
あとは、githubに書かれているにコマンドを実行すればOK
3.双方の比較(というわけでもないけど)
赤外線リモコンKITでは、我が家では照明はダメでしたが、エアコンはうまく動作しそうです。irMagicianでは照明はOKでしたが、エアコンがダメそう。なので、一長一短といった感じ。(たぶんエアコンは送り出す信号が長いので、irMagicianでは全データを送りきれないって感じなんじゃないかと推測)
両方使っていくのもありかな、というのが現状の考えている作戦です。