【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鍵生成」

f:id:engetu21:20141122231826j:plain

 

パスフレーズを入れます。無論長くて複雑であればあるほどいい。

f:id:engetu21:20141122231835j:plain

 

パスフレーズを入れたら、公開鍵をまず作ります。

→id_rsa.pubというファイルが作られるので、ローカルの適当なところに置きます。

f:id:engetu21:20141122232130j:plain

 

秘密鍵も作ります。

→id_rsaというファイルが作られるので、これもローカルの適当なところに置きます。

f:id:engetu21:20141122232250j:plain

 

2.サーバへの公開鍵の設置

作成した公開鍵(id_rsa.pub)をサーバに転送します。転送方法はWinSCPを使うなり、Teratermの設定から「ファイル」→「SSH SCP」から実施するなり。

 

公開鍵をホームディレクトリの.ssh配下に置きます(名前もauthorized_keysに変更)。

ホームディレクトリ配下に.sshがあるかはls -laコマンドでわかります。なければ作成した上で.ssh配下に置きます。

$ls -la

$mkdir .ssh

$mv id_rsa.pub .ssh/authorized_keys

※2017/2/19追記

なお、公開鍵の権限は600にしないといけないらしい

$chmod 600 .ssh
$mkdir .ssh/authorized_keys

 

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 

 

4.TeraTermからの秘密鍵によるログイン

ログインメニューの変更を実施し、保存しておきます。

メニューから「設定」→「SSH認証」

f:id:engetu21:20141123003408j:plain

秘密鍵は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/

f:id:engetu21:20141123165809j:plain

 

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=44githubはこちら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では全データを送りきれないって感じなんじゃないかと推測)

両方使っていくのもありかな、というのが現状の考えている作戦です。