Armadilloフォーラム

SWUアップデートで、更新したファイルに権限を付与する方法

kirihara

2024年8月26日 9時55分

SWUアップデートにより、「LTE再接続サービス」の/usr/bin/coonection-recoverと、/etc/local.d/配下のシェルスクリプトを更新しようとしています。

.descファイルにより

swdesc_files --extra-os --dest /usr/bin/ "connection-recover"
swdesc_files --extra-os --dest /etc/local.d/ "test.start"
 
swdesc_option POST_ACTION=reboot

を記載することで、ファイルの更新ができたので、実行権限が消えてしまい、動作しませんでした。

試しに.descファイルにて、「swdesc_option POST_ACTION=reboot」の手前の行で、

swdesc_command_nochroot  "chmod 777 /usr/bin/ "connection-recover"
swdesc_command_nochroot  "persist_file /usr/bin/ "connection-recover"

を追加して試してみましたが、同様に実行権限は付与されませんでした。

更新後のファイルに権限を付与して、正常にconnection-recoverなどを動作させる方法はありますでしょうか。

ちなみに、変更範囲を絞るために、あえてArmadillo Base OSごとのアップデートは行っていません。

よろしくお願いします。

コメント

at_satoshi.ohta

2024年8月26日 10時38分

太田です。

.descファイルの

swdesc_option POST_ACTION=reboot

の前にswdesc_command_nochrootのコマンドではなく、下記のコマンドを記述して
再度SWUイメージを作成、インストールするとどうなるでしょうか?

swdesc_command --extra-os 'chmod 777 /usr/bin/connection-recover'

ちなみにシェルスクリプトの シェバンは「#!/bin/sh」になっているでしょうか?
「#!/bin/bash」だとABOSではbashをデフォルトでは使用できないので、エラーになります。
ご確認頂ければと思います。

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

at_dominique.m…

2024年8月26日 11時04分

kiriharaさん、

よこからすみません、
マルティネです。

> swdesc_command --extra-os 'chmod 777 /usr/bin/connection-recover'

別の chmod コマンドで構いませんが 755 にしてください。

また、参考までに「swdesc_files」でファイルを転送する場合でも実行権限が保存されていますので、ソースファイルを chmod していただければ Armadillo上でも実行可能になるはずです。
(実行権限以外のモードは「--preserve-attributes」を指定するとさらに保存されますが、今回は不要です)

よろしくお願いします。

太田様

ご回答ありがとうございました。
記載の方法で試したところ、うまくいきました。

「#!/bin/sh」についても情報ありがとうございました。
こちらは問題なく「#!/bin/sh」になっておりました。

at_satoshi.ohta

2024年8月26日 11時21分

太田です。

無事に解決できてなによりです。
今後ともどうぞよろしくお願いいたします。