Как избежать потери управляющих символов при чтении переменных из файла с помощью bash

Использование -Rdдействительно имеет смысл только при работе с каталогами. Чтобы изменить ACL для данного файла и добавить другого пользователя, вы просто делаете это:

$ sudo setfacl -m u:user1:rwx somefile
$ getfacl somefile
# file: somefile
# owner: root
# group: root
user::rw-
user:user1:rwx
group::r--
mask::rwx
other::r--
Согласно man setfaclстр.:
-R, --recursive
       Apply operations to all files and directories recursively. This 
       option cannot be mixed with `--restore'.

-d, --default
       All operations apply to the Default ACL. Regular ACL entries in the 
       input set are promoted to Default ACL entries. Default ACL entries in 
       the input set  are  discarded.  (A  warning  is issued if that 
       happens).
1
06.06.2021, 04:27
1 ответ

Вам нужно -rна внешнем read, а не только на внутреннем read -a. Вы также должны указать "${line}"и (вероятно )хотите IFS=, если вы явно не хотите удалить начальные пробелы:

while IFS= read -r line; do 
  IFS=: read -ra LINE <<< "${line}"; printf '%s\n' "${LINE[@]}"
done < ntlm-extract.ntds
somedomain.local\jcricket
5201
0020cfaecd41954fb9c9da8c61ccacd7
0020cfaecd41954fb9c9da8c61ccacd7

Я бы также предложил изменить имя переменной LINEна что-то такое, что не всегда должно быть в верхнем регистре.

2
28.07.2021, 11:26

Теги

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