権限が777ですが、ユーザーはディレクトリに入ることができません。

権限が777ですが、ユーザーはディレクトリに入ることができません。

Raspberry Piでユーザーを作成しnils、アクセス権を持つことを望みました/media/christoph。すべてを試して、フォルダの権限を777に再帰的に設定して終了しようとしましたが、それでも機能しませんでした。

christoph@christoph-pi:~$ su - nils
Password: 
nils@christoph-pi:~$ cd /media/
nils@christoph-pi:/media$ cd christoph/
-su: cd: christoph/: Permission denied
nils@christoph-pi:/media$ ll
total 12
drwxr-xr-x   3 root      root 4096 Mar 25 00:42 ./
drwxr-xr-x  22 root      root 4096 Jul 13 16:27 ../
drwsrwsrwt+  3 christoph git  4096 Aug  6 17:05 christoph/
nils@christoph-pi:/media$ id
uid=1001(nils) gid=1001(nils) groups=1001(nils),1003(git)
nils@christoph-pi:/media$ logout
christoph@christoph-pi:~$ cd /media/
christoph@christoph-pi:/media$ sudo ls -alZ
total 12
drwxr-xr-x   3 root      root ? 4096 Mar 25 00:42 .
drwxr-xr-x  22 root      root ? 4096 Jul 13 16:27 ..
drwsrwsrwt+  3 christoph git  ? 4096 Aug  6 17:05 christoph

nilsこのフォルダに入るためのユーザー権限をどのように付与しますか?

答え1

これは+アクセス制御リスト(ACL)の表示であり、ユーザーのすべての権限を削除してターゲットディレクトリまたはnilsファイルで使用できるようにするには、次のものを使用する必要があります。

setfacl -x u:nils /media/christoph

または、次のコマンドを使用して権限を付与する必要があります。たとえば、読み取りと正しい権限が必要な場合は、次のようにします。

setfacl -m u:nils:rw /media/christoph

答え2

+最後の権限は、lsファイルにACLセットがあることを示します。 ACL は標準権限をオーバーライドします。

例えば

$ mkdir X
$ chmod 777 X
$ ls -ld X
drwxrwxrwx 2 sweh sweh 4096 Aug  6 11:34 X/
$ setfacl -m 'u:vbox:---' X
$ ls -ld X                 
drwxrwxrwx+ 2 sweh sweh 4096 Aug  6 11:34 X/

したがって、この時点では、次のようにACLを含む777ディレクトリがあります。+

$ sudo su vbox
vbox:/tmp$ cd X
bash: cd: X: Permission denied
vbox:/tmp$ ls -ld X
drwxrwxrwx+ 2 sweh sweh 4096 Aug  6 11:34 X
vbox:/tmp$ getfacl X
# file: X
# owner: sweh
# group: sweh
user::rwx
user:vbox:---
group::rwx
mask::rwx
other::rwx

ユーザーはvboxディレクトリに入ることができません。getfacl理由が表示されます。

関連情報