Дайте чтение доступа только к записи к определенной папке?

по большей части вам не нужно беспокоиться о таких вещах, как:

if    [ -e "$file" ]
then  echo exists
else  echo not exists
fi

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

sh -c 'exec <not_exist; echo can i\?' my_zero

my_zero: 1: my_zero: cannot open not_exist: No such file

скриптовая оболочка POSIX умирает с причиной, записанной в stderr, когда специальная встроенная оболочка является объектом любого неудачного перенаправления оболочки. к специальным встроенным командам относятся:

: continue break exec set . shift unset
times trap exit export readonly eval return

их особый статус можно понизить, вызвав их с помощью команды :

sh -c 'command exec <not_exist; echo can i\?' my_zero

my_zero: 1: my_zero: cannot open not_exist: No such file
can i?

, и поэтому наиболее простой и эффективный способ надежной работы с файлами чтения / записи - поставить файл непосредственно в дескрипторе файла, с которым вы собираетесь взаимодействовать, и позволить оболочке обрабатывать любые / все сообщения об ошибках по мере необходимости. это просто произойдет, если это произойдет, и если вы напишете свои сценарии с прицелом на то, чтобы действия говорили сами за себя.

sh -c '
    cat_fname()
        for   f
        do    exec   <"$f"
              printf "\n%-5s%-$((${#f}+2))s%s\n" === "$f" ===
              cat
        done
    cat_fname a[1-9]/a[1-9].txt not_exist /dev/fd/0'

===  a1/a1.txt  ===
1 1 1 11 1 1 1 1

===  a2/a2.txt  ===
2 2 2 12 2 2 2 2

===  a3/a3.txt  ===
3 3 3 13 3 3 3 3

===  a4/a4.txt  ===
4 4 4 14 4 4 4 4

===  a5/a5.txt  ===
5 5 5 15 5 5 5 5

===  a6/a6.txt  ===
6 6 6 16 6 6 6 6

===  a7/a7.txt  ===
7 7 7 17 7 7 7 7

===  a8/a8.txt  ===
8 8 8 18 8 8 8 8

===  a9/a9.txt  ===
9 9 9 19 9 9 9 9
sh: 4: cannot open not_exist: No such file
0
10.07.2018, 22:31
1 ответ

Каталог rcarsсначала должен быть частью rcarsгруппы, (владелец папки или корень может выполнить эту операцию ).

Синтаксис:chgrp <groupName> -R <folderName>

 chgrp rcars -R rcars 

Затем группе rcarsпотребуются rwправа доступа к каталогу.

Синтаксис:chmod g+rw <folderName>

 chmod g+rw -R rcars 

Чтобы запретить другим доступ:

chmod o-rw -R rcars
  • -Rдля рекурсивного разрешения (всех подкаталогов -и файлов в нем ).
0
28.01.2020, 04:18

Теги

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