Armadilloフォーラム

Alpine:3.22にアップグレードするとvsftpdのバーチャルユーザーでログインできない

k.sato

2025年9月1日 16時32分

==========
製品型番:Armadillo-640
ABOSバージョン:3.21.3-at.12
カーネルバージョン:5.10.237-0-at
その他:コンテナ:alpine 3.22
==========

佐藤と申します。
お世話になっております。

コンテナのAlpineバージョンを3.18→3.19→3.20とアップグレードしても
設定が引き継がれてFFFTPにてログインできていたのですが、
Alpine:3.22にアップグレードしたところ
FFFTPからのログイン時にパスワード要求されてしまうようになりました。

●FTP サーバの構築(ABOS)
https://armadillo.atmark-techno.com/forum/armadillo/17264

上記にてvsftpd + pam.dにてバーチャルユーザでログインできるようになっていました。

htpasswdにて新しくpasswdファイルを作成してもダメでした。
設定ファイルを添付します。

またATDEからcurlで確認してみたのですが下記のようになりました。

atmark@atde9:~$ curl -v ftp://user:passwd@10.1.2.3
*   Trying 10.1.2.3:21...
* Connected to 10.1.2.3 (10.1.2.3) port 21 (#0)
< 220 (vsFTPd 3.0.5)
> USER adminuser0
< 331 Please specify the password.
> PASS adminuser0
< 530 Login incorrect.
* Access denied: 530
* Closing connection 0
curl: (67) Access denied: 530

どのあたりがアップグレード前後で変わってしまったのでしょうか?

以上、よろしくお願い致します。

ファイル ファイルの説明
etc.zip Armadill-640コンテナ内のFTP関係設定ファイル
コメント

at_dominique.m…

2025年9月2日 10時35分

マルティネです。

> どのあたりがアップグレード前後で変わってしまったのでしょうか?

alpine 3.22 で pam のディレクトリが変わりましたので、pam_pwdfile.so を /lib/security ではなく /usr/lib/security にインストールする必要があるそうですが、それでしょうか。
この点以外は前の alpine バージョンと変わらないように見えます

よろしくお願いします

マルティネ様

佐藤です。
回答ありがとうございます。
> > どのあたりがアップグレード前後で変わってしまったのでしょうか?
>
> alpine 3.22 で pam のディレクトリが変わりましたので、pam_pwdfile.so を /lib/security ではなく /usr/lib/security にインストールする必要があるそうですが、それでしょうか。
> この点以外は前の alpine バージョンと変わらないように見えます
インストール先を/usr/lib/securityに変更したところ
FFFTPで今まで通りログインできるようになりました。
ありがとうございました。

> alpine 3.22 で pam のディレクトリが変わりましたので、pam_pwdfile.so を /lib/security ではなく /usr/lib/security にインストールする必要があるそうですが、それでしょうか。
今後のために教えていただきたいのですが
これはどのように調べればよいのでしょうか?

以上、よろしくお願い致します。

at_dominique.m…

2025年9月2日 11時59分

マルティネです

> > alpine 3.22 で pam のディレクトリが変わりましたので、pam_pwdfile.so を /lib/security ではなく /usr/lib/security にインストールする必要があるそうですが、それでしょうか。
> 今後のために教えていただきたいのですが
> これはどのように調べればよいのでしょうか?

vsftpd のログ違って pam のエラーは syslog に出力されますので、ファイルを見つかりませんなどのエラーが表示されていたと思います。
デフォルト状態ですとコンテナの syslog は保存されてないですが、他の syslog の処理なければ「add_volumes /dev/log:/dev/log:ro」をコンテナのコンフィグに追加すれば ABOS側の /var/log/messages で確認できます

(ついでに vsftpd.conf に syslog_enable=YES を設定するとログがそこにまとまって、今後またなにかの問題があれば解析しやすいかもしれません)

よろしくお願いします

マルティネ様
佐藤です。

ありがとうございます。
my_project.conf と vsftpd.conf を修正します。

また、コンテナの環境がalpine:3.22にアップデートできましたので、
ABOSも先日、展開された8月の製品アップデートのswuでアップデートしてみました。
https://armadillo.atmark-techno.com/news/20250828/software-update-a600
https://armadillo.atmark-techno.com/resources/software/armadillo-640/ba…
「baseos-600-3.22.1-at.1.swu」

すると起動時にエラーが発生し、自作コンテナ(my_project)が起動できなくなってしまいました。

reset_bootcount          | [ ok ]
chronyd                  | * Starting chronyd ... [ ok ]
sshd                     | * Starting sshd ...error: my_project: add_armadillo_env: Could not add armadillo env
podman-atmark            | * Could not start all containers
podman-atmark            | [ !! ]
podman-atmark            | * ERROR: podman-atmark failed to start
 [ ok ]
abos-web                 | * Starting abos-web ... [ ok ]
 [ ok ]
local                    | * Starting local ... [ ok ]
 
Welcome to Alpine Linux 3.22
Kernel 5.10.240-0-at on armv7l (/dev/ttymxc0)
 
armadillo login:

これはmy_project.confの下記をコメントアウトすればよいのでしょうか?

# Add environment variables set by Atmark Techno.
add_armadillo_env

それとも、この設定は必要で他で対策をするのでしょうか?

以上、よろしくお願い致します。

at_dominique.m…

2025年9月3日 10時16分

マルティネです

> error: my_project: add_armadillo_env: Could not add armadillo env

申し訳ございません、こちらの問題を確認できました。
se050 非搭載の Armadillo (旧モデル)で se050 を使えないという意味でエラーをリターンしていましたが、
ここではエラーしない方が正しいですね。報告ありがとうございます。
今月のアップデートで訂正します。

> これはmy_project.confの下記をコメントアウトすればよいのでしょうか?

> # Add environment variables set by Atmark Techno.
> add_armadillo_env

そうですね、$AT_SERIAL_NUMBER 等の AT_から始まる環境変数をコンテナで利用しない場合はこの行を削除しても問題ありません。
変数が必要の場合は Armadillo の /usr/bin/podman_start ファイルを直接に編集して add_armadillo_env() 関数内の error "add_armadillo_env: Could not add armadillo env" を削除して persist_file してください。
次のアップデートでこの変更が修正版で上書きされます。

大変お手数ですがよろしくお願いします。

マルティネ様
佐藤です。

> > これはmy_project.confの下記をコメントアウトすればよいのでしょうか?

> > # Add environment variables set by Atmark Techno.
> > add_armadillo_env

> そうですね、$AT_SERIAL_NUMBER 等の AT_から始まる環境変数をコンテナで利用しない場合はこの行を削除しても問題ありません。
> 変数が必要の場合は Armadillo の /usr/bin/podman_start ファイルを直接に編集して add_armadillo_env() 関数内の error "add_armadillo_env: Could not add armadillo env" を削除して persist_file してください。
> 次のアップデートでこの変更が修正版で上書きされます。
AT_から始まる環境変数は使用していないのでコメントアウトします。

> 今月のアップデートで訂正します。
承知しました。
よろしくお願い致します。