2016-10-25 8 views
1
私はコンテナを作成しました

内/に書き込むことができます。以下のDockerfileを使用して6.8イメージを:ドッカー - 非特権ユーザーは、CentOSのオフに基づいて、コンテナ

FROM centos:6.8 
RUN adduser -m test 
USER test 

その後、ドッキングウィンドウのビルドを使用して構築された画像:

docker build -t dockerdemo . 

その後、私はコンテナを起動します。

docker run -ti dockerdemo bash 

私はコンテナ内だとき、私はBに表示されますコンテナのルートディレクトリに「テスト」ユーザとして書くことができるE:

[[email protected] /]$ ls -ld/
drwxr-xr-x 29 root root 4096 Oct 25 09:49/
[[email protected] /]$ id -a 
uid=500(test) gid=500(test) groups=500(test) 
[[email protected] /]$ touch /test-file 
[[email protected] /]$ ls -l /test-file 
-rw-rw-r-- 1 test test 0 Oct 25 09:49 /test-file 

は私がtouchコマンドを実行したときPermission deniedを見て期待しています。

私はDockerfileを変更し、USER文を削除し、再構築し、その後、私のことができsuコンテナ内の「テスト」のユーザーに、私は私が期待する行動を取得する場合:

[[email protected] /]# su - test 
[[email protected] ~]$ id  
uid=500(test) gid=500(test) groups=500(test) 
[[email protected] ~]$ ls -ld/ 
drwxr-xr-x 29 root root 4096 Oct 25 09:50/
[[email protected] ~]$ touch /test-file 
touch: cannot touch `/test-file': Permission denied 

は私が誤解がありますユーザー権限がコンテナ内でどのように機能するか?

私の期待する動作を生み出す方法はありますか?

+0

通常のプロセス(cmd/entrypoint)ではなく、サイド/バックドアを通して 'コンテナ内'に移動すると、テストされません。確認のためにうわーをやってください。 – user2105103

+0

「サイド・バック・ドアを通して」と言ったときの意味はあまりよく分かりません。私はそれぞれ "docker run -ti image-name bash"で始めました。 –

+0

つまり、ドッカーがimage-nameを実行しただけであれば、広告されたとおりに動作します。ドキュメントから: USER命令は、イメージの実行時に使用するユーザー名またはUID、およびDockerfile内のRUN、CMD、およびENTRYPOINT命令に続くすべてのRUN、CMDおよびENTRYPOINT命令を設定します。あなたは、上記のどれも使用していないコンテナを実行しています。 – user2105103

答えて

1

シナリオが一致する脆弱性が1.12.2で発表されました。 Release 1.12.3が昨日この問題を修正するために出てきており、CVE-2016-8867がこの脆弱性に登録されました。これは内部コンテナの権限昇格であり、影響は限定的ですが、アップグレードの価値はあります。

+1

1.12.3へのアップグレードが私の問題を解決したことを確認できます!どうもありがとう。 –

関連する問題