Что такое стандартная команда для печати даты в формате RFC 3339?

Почти наверняка, потому что опция Defaults проходит проверку подлинности, установлен на на. Из sudoers страницы справочника:

пройдите проверку подлинности, Если установлено, пользователи должны аутентифицировать себя через пароль, прежде чем они смогут выполнить команды. Это значение по умолчанию может быть переопределено тегами NOPASSWD и PASSWD. Этот флаг идет по умолчанию.

Другими словами, Ваш флаг NOPASSWD переопределяет требование пароля, но только для указанных команд. При любом другом обстоятельстве требуется пароль. Это значение по умолчанию было добавлено для закрытия лазейки безопасности, вызванной sudo -l команда.

19
19.03.2014, 23:44
6 ответов
[117245] Кажется, что вы можете сделать несколько форматов, используя переход на реализацию GNU [117588] date[117589] (версия 5.90 или выше), [117590]--rfc3339=[117591].

Примеры

Если вы хотите добавить [117592]T[117593], как взлом:

Если вы хотите, чтобы это было за миллисекунды:

Ссылки

Дата и время в Интернете: Timestamps

30
27.01.2020, 19:44
[117267] С GNU [117614] дата [117615] (5.90 или выше):

Заменить [117616]%N[117617] на [117618]%3N[117619] на миллисекунды, [117620]%6N[117621] на микросекунды. ...

enter image description here

AFAIK, ни в одной из спецификаций POSIX, Unix или LSB не указано ни одной команды, которая могла бы отображать время с суб-секундной гранулярностью, но в RFC 3339 дробная часть является необязательной.


POSIX/Unix/LSB strftime поддерживает [117622]%z[117623] для отображения смещения TZ как [117624]-0800[117625], поэтому наиболее переносимым, вероятно, будет:

18
27.01.2020, 19:44
[117293]GNU [117635]дата[117636] имеет встроенный формат ISO-8601 - не так ли близко и даже idential к RFC-3339? [12105]
8
27.01.2020, 19:44

Как насчет старого доброго:

$ date +%Y-%m-%dT%T%z
2015-10-29T14:47:06+0200
8
27.01.2020, 19:44

Вы также можете форматировать время в соответствии с RFC3339 (ISO8601) проще:

$ date -u +"%Y-%m-%dT%H:%M:%SZ"
2016-11-08T08:52:55Z

ПРИМЕЧАНИЕ: Этот формат также используется в Соглашении о схеме меток RC 1.0

7
27.01.2020, 19:44
echo "Local date only:"
date '+%Y-%m-%d'
echo
echo "Local date and time:"
date '+%Y-%m-%dT%H:%M:%S%z' | sed 's@^.\{22\}@&:@'
echo
echo "UTC date and time:"
date -u '+%Y-%m-%dT%H:%M:%SZ'

Эти команды совместимы с POSIX -, за исключением спецификации преобразования %z. Однако %zшироко поддерживается и одинаково работает в Linux, MacOS, FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, Solaris, Minix и Haiku. Он также работает с инструментами Busybox, Toybox и sbase (, базовыми системными утилитами Suckless.org ). Поскольку %zвыводит смещение часового пояса в формате ±HHMM, нам нужен канал sed, чтобы добавить двоеточие и изменить его на ±HH:MM.

ПРИМЕЧАНИЕ :Команда dateпроекта Heirloom имеет несовместимый вывод %z:, она не печатает знак +.

1
27.01.2020, 19:44

Теги

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