`listpw` Параметр по умолчанию не работает с sudo 1.8.24

Я наткнулся на аналогичную проблему (в разделе «Контекст» )и получил следующее ftfy _строку _от _line.py решение:

#!/usr/bin/env python3
import ftfy, sys
with open(sys.argv[1], mode='rt', encoding='utf8', errors='replace') as f:
  for line in f:
    sys.stdout.buffer.write(ftfy.fix_text(line).encode('utf8', 'replace'))
    #print(ftfy.fix_text(line).rstrip().decode(encoding="utf-8", errors="replace"))

Использование encode+replace + ftfy для автоматического -исправления Mojibake и других исправлений.

Контекст

Я собрал >10GiB CSV базовых метаданных файловой системы, используя следующий скрипт gen _basic _files _metadata.csv.sh , работающий по существу:

find "${path}" -type f -exec stat --format="%i,%Y,%s,${hostname},%m,%n" "{}" \;

Проблема , с которой я столкнулся, заключалась в непоследовательном кодировании имен файлов в разных файловых системах, что приводило к UnicodeDecodeErrorдальнейшей обработке с помощью приложений Python(csvsql для большей конкретики ).

Поэтому я применил описанный выше скрипт ftfy, и это заняло

Обратите внимание, что ftfy работает довольно медленно, обработка данных >10 ГБ заняла:

real    147m35.182s
user    146m14.329s
sys     2m8.713s

а sha256sum для сравнения:

real    6m28.897s
user    1m9.273s
sys     0m6.210s

на Intel (R )Core (TM )i7 -ЦП 3520M @ 2,90 ГГц + 16 ГБ ОЗУ (и данные на внешнем диске)

2
14.11.2018, 07:06
1 ответ

FWIW Я также могу воспроизвести это на 1.8.27, но это исправлено в 1.8.28

Если вы удалите запись listpw=never, ваша строка ALL ALL=(ALL) NOPASSWD: /usr/bin/falseактивирует правило принятия, а sudo -lперестанет запрашивать пароль.

1
24.03.2020, 08:00

Теги

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