Я изучаю Linux несколько дней, и теперь я пытался изучить расширенные права доступа к файлам, такие как установка UID, GID и липкого бита. В корневом каталоге я сначала сменил владельца каталога на Pavan и группу g1, а затем сделал следующее:
[root@localhost sdcdir]# ll
total 20
drwx------. 2 root root 16384 Mar 21 21:38 lost+found
drw-r----T. 2 Pavan g1 4096 Mar 22 11:41 testdir
[root@localhost sdcdir]# chmod 4660 testdir/
[root@localhost sdcdir]# ll
total 20
drwx------. 2 root root 16384 Mar 21 21:38 lost+found
drwSrw----. 2 Pavan g1 4096 Mar 22 11:41 testdir
После входа в систему как Pavan я не могу использовать CD или L в этом каталоге, я получаю следующую ошибку:
[Pavan@localhost sdcdir]$ ll
total 20
drwx------. 2 root root 16384 Mar 21 21:38 lost+found
drwSrw----. 2 Pavan g1 4096 Mar 22 11:41 testdir
[Pavan@localhost sdcdir]$ cd testdir/
bash: cd: testdir/: Permission denied
[Pavan@localhost sdcdir]$
Не могли бы вы указать мне, где я ошибся. Спасибо.
Справочник нуждается выполнять разрешение (x
), чтобы вы в него вошли. Пытаться
chmod 4770 testdir/
вместо.
Если вы хотите предоставить кому-либо доступ для входа в каталог, но не для (легкого) просмотра его содержимого, вы можете предоставить только разрешение на выполнение и вообще не давать разрешение на чтение:
chmod 4110 testdir/
http://en.wikipedia.org/wiki/File_system_permissions
Бит выполнения ... когда установлен для каталога, это разрешение дает возможность перемещаться по его дереву для доступа к файлам или подкаталогам, но не видеть содержимое файлов внутри каталога (если не установлено чтение).
Следовательно, вам нужен "chmod 4770 testdir"
HTH