質問: このようなDockerfileを見ていたのですが、`chown`をしている所がありました。 ``` FROM alpine:3.11 RUN adduser -D -u 1000 server COPY --from=builder /go/src/simple-udp/server /home/server/server RUN chown -R server /home/server && \ chmod o+x /home/server/server USER 1000 ENTRYPOINT ["/home/server/server"] ``` こういった`chown`はどういう意味で行っているのでしょうか。 私はアクセス権限の話に疎く、一般的な意味で`chown`の使い所がわからないのですが、一般的な用法はどのようなものなのでしょうか。
回答: `chown` に限らずLinuxでのアクセス権限は、対象のファイルやディレクトリへのアクセスを許可または禁止する仕組みになります。 Linuxでは複数ユーザーでの利用が前提なので、仮にファイルの所有者やアクセス権限という考え方が無かった場合、あなたが作った大事なファイルが別の誰かに勝手に書き換えられたり、最悪だと削除されてしまう可能性が出てきます。 また、人間のユーザーに限らずLinux上で動くプログラム(サーバ/デーモン)に対しても個別の "ユーザー" としての権限を割り当てておくことで、大事なファイルをユーザーが書き換えてしまう...といった事故を防ぐことができます。 ファイルに対するアクセス権限や所有者は、「ファイルの保護」や「責任の所在」を明確にするための仕組みと考えてみてください。