Найдите все каталоги, в которых у пользователя есть доступ к поиску, и повторите это каталоги в оболочке

Это перестало работать, потому что это не может найти исполняемый файл Netscape или сценарий обертки. Установите Netscape или попробуйте Firefox.

1
18.11.2018, 16:12
2 ответа

Я привычка дает Вам точный код, но может дать Вам шаги для достижения этого:

  • Найдите владельца каталога. Если это соответствует user на который Вы ищете, затем проверяете полномочия владельца на том каталоге. Если это r+x(5) или r+w+x(7), затем пользователь может искать в том каталоге, иначе нет.

  • Если владелец каталога не соответствует пользователю, проверьте группу каталога и узнайте ли вводимый user принадлежит той группе или нет. Если пользователь принадлежит. Проверьте полномочия группы на том каталоге. Если это r+x(5) или r+w+x(7), затем пользователь может искать в том каталоге, иначе нет.

  • Если вводимый user не принадлежит группе каталога, проверяют другие полномочия на том каталоге. Если это r+x(5) или r+w+x(7), затем пользователь может искать в том каталоге, иначе нет.

Я думаю, что вышеупомянутый алгоритм выполнит задачу, которую Вы хотите.

Править:

Метод 1:

Можно использовать, находят команду для этого:

$ find / -maxdepth 1 -type d -perm -u=rx

Это найдет все каталоги внутри / до одного уровня с полномочиями пользователя как по крайней мере (read+execute).

Метод 2:

$ stat <filename/directoryname>  | grep Access | head -1 | awk 'BEGIN{FS="[/)]"} {print $2}'  

Это даст Вам полномочия в rwx нотации (например, drwxr-xr-x)

$ stat <filename/directoryname>  | grep Access | head -1 | awk 'BEGIN{FS="[(/]"} {print $2}'

Это даст Вам полномочия в 755 нотациях (например, 0755)

3
27.01.2020, 23:21
  • 1
    , как проверить разрешение каталога? –  Alex Zern 29.03.2013, 19:58
  • 2
    даст Вам полномочия файла/каталога. В целом Ваш сценарий не может найти все каталоги, которые Вы хотите. Как пример, если у Вас есть перманент 711 на/a и перманенте 755 на/a/b (и Вы не владелец), Вы не можете искать/a, но можно искать/a/b. –  doneal24 29.03.2013, 20:12
  • 3
    @AlexZern: Я обновил ответ для Вашего вопроса. –  pradeepchhetri 29.03.2013, 20:26

Я не уверен, понимаю ли я ваш вопрос в его нынешней форме.

Если вас не волнует, что подкаталог с доступом для чтения помещается в каталог без доступа для чтения, вы можете просто сделать:

find . -type d -perm -u+r

Если вы хотите знать, имеет ли конкретный пользователь доступ для чтения к каталог, затем найдите группу (ы), членом которой является он / она:

groups $userID

И выполните:

find . -type d -group $groupID -perm -g+r
1
27.01.2020, 23:21

Теги

Похожие вопросы