Показать права доступа к файлам и каталогам из значения umask

Первая проблема, которую я вижу.

у вас есть команды

cd somewhere
do something

make создает новую оболочку для каждой строки. Таким образом, он создаст оболочку, изменит текущий рабочий каталог этой оболочки, закроет оболочку, создаст новую оболочку и что-то сделает. Это то, что вы хотите.

вам нужно сделать

cd somewhere; do something

т.е.

htmlproofer:
    cd $(TEMP_DIR_HTMLPROOF); $(WGET) --recursive --html-extension --convert-links --domains localhost --no-parent localhost:8000 - $(HTMLPROOFER). ;echo $(TEMP_DIR_HTMLPROOF)
    rm -r $(TEMP_DIR_HTMLPROOF)

примечание cd..приведет к неправильному действию (в сценарии оболочки ),а здесь ничего не делает (см. выше ), и не нужно (см. выше ). В сценарии оболочки cd -будет тем, что вы пытались сделать, хотя pushd и popd лучше.

0
07.04.2019, 17:17
2 ответа

Считайте это так, если у вас есть разрешения по умолчанию 666 означает, что у вас есть только r+wдля пользователя, группы и других, а по umask 541вы хотите удалить разрешения r+x,r,x.

Для пользователя:

By default you can read+write and by umask you want to remove read+executable 
permissions, but it will never happen because initially file has no executable 
permissions. So only read permission will be removed.

Для группы:

read permission will removed

Для других:

There is no executable permission in the file, so there will be no change.

Та же концепция применяется к каталогам.

0
28.01.2020, 02:40

Обратите внимание, что umask — это не вычитание, а логическая операция И, основанная на umask.

Думайте о разрешениях в двоичном формате:

Таким образом, разрешение 0666 будет

110 110 110

Теперь umask 0541 будет

101 100 001

Для вычисления результатов мы отрицаем umask:

010 011 110

, а затем И то, что с разрешением.

Так

110 110 110  AND
010 011 110
=== === ===
010 010 110

И это отображается в -w--w -rw-

1
28.01.2020, 02:40

Теги

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