2017-12-18 3 views
3

私は基本的にはデフォルトのユーザーを別のものにしながら、crond -fをrootとして実行しようとしています。Dockerコンテナ内のプロセスをrootとして起動することができますが、execコールのデフォルトユーザーをroot以外にすることはできますか?

これはイメージ上の他のファイルから機密情報を使用しているため、これらのファイルにroot権限でアクセスし、プロセスを開始して新しく作成したユーザーに切り替える必要があります。このようにして、cronジョブは必要な情報を得ることができます。一方、コンテナ内の機密ファイルは、execアクセス権を得ることができる人から保護されます。

USER root 

CMD ["./runCrons.sh"] 

USER newuser 

しかし、これは、rootとしてではなく、NEWUSERとしてcrondプロセスを実行しません:

は、このようなカップルの事を試してみました。

誰かが解決策を持っていれば、それは私にいくつかの掘り下げや実験を助けるでしょう。

+0

sudoの./runCrons.shをこのディスカッションのsudoersと一緒にお試しください。 https://stackoverflow.com/questions/25845538/using-sudo-inside-a-docker-container – dskow

+0

Stack Overflowは、プログラミングおよび開発に関する質問のサイトです。この質問は、プログラミングや開発に関するものではないので、話題にはならないようです。ヘルプセンターの[ここではどのトピックを参照できますか](http://stackoverflow.com/help/on-topic)を参照してください。おそらく、[Super User](http://superuser.com/)や[Unix&Linux Stack Exchange](http://unix.stackexchange.com/)の方が良いかもしれません。 – jww

答えて

1

Dockerイメージを構築する際に、sudoグループに属するユーザーを作成し、パスワードなしですべてのsudoコマンドを実行することができます。

docker build -t test

$ cat Dockerfile 

FROM debian:latest 
ENV user_name myuser 
RUN apt-get update 
RUN apt-get install -y sudo 
RUN useradd --create-home -s /bin/bash ${user_name} 
RUN echo "${user_name} ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/${user_name} 
WORKDIR /home/${user_name} 
USER ${user_name} 
CMD /bin/bash 

が次に画像を構築:

は須藤パスとユーザ命名MYUSERとテストと呼ばドッカー画像を作成する以下の例を考えます。

標準ユーザーのcron権限の問題を修正するには、cronスクリプトで使用されるすべてのコマンドが以下のようにsudoで始まることを確認してください。 sudoを使用した場合パスワードが期待されていないので

CMD ["sudo ./runCrons.sh"]

、すべてが正常に実行する必要があり、あなたが行ってもいいはずです。

関連する問題