web-dev-qa-db-ja.com

root以外のユーザーが日付を設定できるようにbusyboxを設定するにはどうすればよいですか?

私はビジーボックスで構築された組み込みシステムを持っています。 「app」という名前のユーザーがプログラム/スクリプトをディレクトリにダウンロードすることを許可し、起動時に実行されます。

プログラムで日付を設定できるようにする必要があります。 「app」ユーザーとして実行されます。

非rootユーザーの「アプリ」が日付を設定できるようにbusyboxを設定するにはどうすればよいですか? suid権限を追加しようとしました:chmod u+s /bin/busybox.nosuidしかし、機能しません。また、busyboxはnosuidとsuidのバージョンが存在する理由について非常に貧弱ですが、どうやらそれらは異なるアプリでコンパイルされているようです。システムに「sudo」はありません。

root# which date
/bin/date
root# ls -l /bin/date
lrwxrwxrwx    1 root     root            19 Apr 22  2016 /bin/date -> /bin/busybox.nosuid
root# ls -l /bin/busybox.nosuid
-rwsr-xr-x    1 root     root            14 Apr 22  2016 /bin/busybox.nosuid
root# date
Thu Jan 15 03:43:24 CET 1970
root# date -s 10:30
Thu Jan 15 10:30:00 CET 1970
root# date
Thu Jan 15 10:30:01 CET 1970
root# su app
app$ date
Thu Jan 15 10:30:10 CET 1970
app$ date -s 11:00
date: can't set date: Operation not permitted
Thu Jan 15 11:00:00 CET 1970
app$ date
Thu Jan 15 10:30:21 CET 1970
4
AllenKll

「suid」バージョンのbusyboxを使用している場合は、次のようにrootとしてdateコマンドを実行することができます。

ファイル/etc/busybox.conf

...
[SUID]
date = ssx root.root
...
6
Guido