Назад | Перейти на главную страницу

Тестовый файл для определенных разрешений

У меня есть сценарий, в котором я хотел бы протестировать файл для определенных разрешений, в частности 0644, если это не так, тогда chmod его.

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

MYFILE=./myfile

Для удобочитаемости использую u=rw,go=r вместо восьмеричного 0644. Я предполагаю, что вы хотите установить недостающие разрешения, но если есть дополнительные разрешения, вы хотите оставить их такими, какие они есть. Шаг за шагом:

PREV_PERM="`find \"\$MYFILE\" \! -perm -u=rw,go=r -ls`"
echo "$PREV_PERM"
chmod u+rw,go+r "$MYFILE"

или вместо этого объедините его в аккуратный однострочник:

find "$MYFILE" '!' -perm -u=rw,go=r -ls -exec chmod u+rw,go+r "$MYFILE" ';'