それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

openwrt にユーザを作ってsudo する

openwrt にユーザを作ってsudo する

予備のユーザがあったほうが嬉しいと思う。

予備のユーザを作る

echo takuya:x:1000:takuya >> /etc/group
echo takuya:x:1000:1000:takuya:/home/takuya:/bin/bash >> /etc/passwd
echo takuya:x:0:0:99999:7::: >> /etc/shadow
passwd takuya

sudo を入れる

opkg install sudo
# ファイルを追記
echo "%sudo   ALL=(ALL:ALL) ALL"> /etc/sudoers.d/sudo-group.enabled
# パスワード再確認は不要にする。
echo "%sudo   ALL=(ALL:ALL) NOPASSWD: ALL" > /etc/sudoers.d/sudo-group.enabled

# または、visudo で
visudo 

ssh ログインで鍵を有効にする

予備のユーザでSSHログインしたほうがいいかも

ssh takuya@yourip.openwrt.lan

mkdir ~/.ssh
touch ~/.ssh/authorized_keys
echo "ssh-rsa YOUR_PUBKEY.. takuya@host" >> ~/.ssh/authorized_keys

これで、予備のユーザが出来るので rootを使わずにすみます。

予備のユーザの名前を総当り安全にする

どうしても、「SSH鍵に慣れない」ひとのために、パスワードを長くするのも有効な手段だが、憶測可能なユーザ名を使わないのも一つの手段だとおもう

# echo takuya_$(openssl rand -base64 18 )
takuya_mw6eh8X4mKLAk98HwC51nLQy

くっそ長いユーザ名を作ればいいのである。

管理画面にログインできるようにする。

opkg install luci-app-acl

ACL(Access Control List) の画面が出てくる

ユーザを作って、/etc/shadow で認証するように設定してやる。

バックアップ設定

必要であれば、バックアップファイルにユーザを含めるようにする

echo "
## ユーザ設定バックアップ
/etc/sudoers
/etc/sudoers.d
/etc/shadow
/etc/passwd
/etc/group
/home/takuya
" >> /etc/sysupgrade.conf 

これで、予備のユーザを作ることが出来る。

su がないんだけど

su がないsudo su は su がないので、できない

sudo su は覚えやすく手軽なのですが。実はあまり褒められた方法ではない。

ただしいsudo の使い方をするか、シェルを直接起動する

## 邪道のsudo 
sudo su
sudo sh
## 清く正しく美しい sudo
sudo -i -u root
## 上記の省略形
sudo -i 

root を使わないのも一つの手段だとおもうし、rootが万が一乗っ取られたとき、root のパスワードを紛失したときの予備として機能する。

パスワード忘れで初期化して初期設定を流し込んでも構わないのですが。