私のdebian8コンピュータにある既存の証明書を使用してnode.js httpsサーバーを設定したいと思います。
証明書グループはlibretodoapi
(node.jsアプリケーションを実行するために作成したユーザー/グループ)に設定されます。権限640はファイルへの読み取りアクセスを許可する必要があります。
root@nijin:/# ls -l /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
-rw-r----- 1 root libretodoapi 1704 Jan 11 23:11 /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
つまり、ファイルにアクセスしようとするとlibretodoapi
失敗します。
root@nijin:/# sudo -u libretodoapi cat /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
cat: /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem: Permission denied
以前のフォルダはすべてルートディレクトリに属します。
root@nijin:~# namei -lo /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
f: /etc/letsencrypt/archive/api.libretodo.org/privkey1.pem
drwxr-xr-x root root /
drwxr-xr-x root root etc
drwxr-xr-x root root letsencrypt
drwx------ root root archive
drwxr-xr-x root root api.libretodo.org
-rw-r----- root libretodoapi privkey1.pem
私はどこかに間違いがあると信じていません。むしろ、この動作を説明できるUnix権限を理解していないようです。私が何を逃したのか知っていますか?
答え1
階層のすべてのディレクトリ(ルート(/
)からファイルの親ディレクトリまで)には、x
ユーザー/グループの権限が必要なファイルにアクセスできます。
ディレクトリに対する実行権限により、ユーザーはディレクトリにアクセスでき、読み取り権限を使用するとユーザーはその内容を一覧表示できます。