Armadilloフォーラム

ログインの自動化は出来ますでしょうか?

shiba

2017年8月5日 9時47分

お世話になっております。

Armadillo-IoT-G3にて

下記フォーラムを参照に
https://armadillo.atmark-techno.com/forum/armadillo/988

/etc/rc.localに
______________________________________________________________________________
#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin

sed -i -e 's|^\(root:\)[^:]*\(:.*\)$|\1\2|' /etc/shadow

sed -i /etc/inittab \
-e 's|^::respawn:/sbin/getty.*$|::respawn:/bin/login root < /dev/ttymxc1 > /dev/ttymxc1 2>\&1|'
______________________________________________________________________________

を追加したのですが、rootユーザのログインパスだけ無になり、
______________________________________________________________________________
Debian GNU/Linux 8 armadillo ttymxc4

armadillo login: root
______________________________________________________________________________

上記のように起動時にログインを要求されてしまいます。
この入力を省略することは可能でしょうか?

またログイン時に特定の自作シェルスクリプトを起動させることは可能でしょうか?

よろしくお願いいたします。

コメント

y.nakamura

2017年8月5日 18時51分

中村です。

> 下記フォーラムを参照に
> https://armadillo.atmark-techno.com/forum/armadillo/988

このやり取りにかかわっていたので・・・

Armadillo-IoT G3 はDebian8なので/etc/inittabを使用しません。
ですので、参考にされた過去記事の方法では自動ログインできません。

/lib/systemd/system/ディレクトリにあるserial-getty@.serviceファイルを
次のように修正します。

修正前

...
[Service]
ExecStart=-/sbin/agetty --keep-baud 115200,38400,9600 %I $TERM
...

修正後

...
[Service]
ExecStart=-/sbin/agetty --autologin root --keep-baud 115200,38400,9600 %I $TERM
...

> またログイン時に特定の自作シェルスクリプトを起動させることは可能でしょうか?

/root/.profileの最後のところに実行したいコマンドを書き足せば、
ログイン後に自動でそれを実行してくれると思います。

--
なかむら

shiba

2017年8月7日 9時24分

中村様
回答有り難うございます。

自動ログインと起動時実行することができました。

つきましてもう一つお聞きしたいのですが、
フォーラム参照に、
____________________________________________________________________________
/etc/config/rc.local

#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin

# rootのパスワードを「なし」にする
sed -i -e 's|^\(root:\)[^:]*\(:.*\)$|\1\2|' /etc/shadow

____________________________________________________________________________

ここでrootユーザのパスを無しにした場合、Linuxコマンドの
shhによるリモートでのログインはrootユーザには入れなくなってしまいますでしょうか?
パスを要求されてしまい、無記入では認証エラーとなってしまいます。

よろしくお願いいたします。

y.nakamura

2017年8月7日 12時09分

> フォーラム参照に、
> ____________________________________________________________________________
> /etc/config/rc.local
>
> #!/bin/sh
>
> PATH=/bin:/sbin:/usr/bin:/usr/sbin
>
> # rootのパスワードを「なし」にする
> sed -i -e 's|^\(root:\)[^:]*\(:.*\)$|\1\2|' /etc/shadow
>
> ____________________________________________________________________________

Armadillo-IOT G3 には/etc/config/rc.localはないので、
/etc/rc.localでしょうか・・・

それから、参照されてる過去記事の方法は、Armadillo-400や800で、
ユーザランド(romfs)のイメージを修正することなく、起動時に一時的に
rc.localスクリプトでルートのパスワードをナシにしてしまう方法ですので、
Armadillo-IOT G3でやるなら、passwdコマンドを使うか、
vipw -s で/etc/shadowを直接編集する方がいいと思います。

> ここでrootユーザのパスを無しにした場合、Linuxコマンドの
> shhによるリモートでのログインはrootユーザには入れなくなってしまいますでしょうか?
> パスを要求されてしまい、無記入では認証エラーとなってしまいます。

sshでrootでログインするための設定が/etc/ssh/sshd_configにいくつかあります。
また、パスワードなしを許すかどうか(rootに限らず)という設定もあったはずです。

さらに・・・rootに関しては、/etc/securettyの設定も。

このあたりは Armadillo-IoT G3 に限った話ではありませんので、
ググれば情報はたくさんみつかると思いますよ。

--
なかむら

y.nakamura

2017年8月7日 13時05分

中村です。

先ほどの投稿の一部を訂正します。

> さらに・・・rootに関しては、/etc/securettyの設定も。

/etc/securettyはssh(sshd)には関係なかったです。
すみません。

--
なかむら