Каталог и то, что создано внутри, — это то, что представляет сообщение пользователю, когда он становится sudo
, что обычно соответствует строкам:
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Файл каталога /var/db/sudo/lectured
должен принадлежать пользователю root, у которого есть uid 0
, но в вашем случае это не так. Эта команда покажет вам право собственности:
ls -d /var/db/sudo/lectured
Поскольку он не принадлежит пользователю root, вам необходимо сменить владельца на root через:
chown root:root /var/db/sudo/lectured
Разрешения также должны быть 700
. Вы можете изменить его на это, если необходимо, через:
chmod 700 /var/db/sudo/lectured
Если внутри есть файлы с неправильными правами собственности и разрешениями, вы можете использовать следующее:
chown -R root /var/db/sudo/lectured
cd
в папку и:
chmod 600 *
Если вы посмотрите на исходный код Apple macOS sort
, он мало изменился по сравнению с источником FreeBSD .
В частности, вы найдете ту же неудобную/неправильную обработку опции -t
, что и во FreeBSD .
case 't':
while (strlen(optarg) > 1) {
if (optarg[0] != '\\') {
errc(2, EINVAL, "%s", optarg);
}
optarg += 1;
if (*optarg == '0') {
*optarg = 0;
break;
}
}
Как видите, аргумент -t
принимается только в том случае, если он пуст (, и в этом случае NUL является разделителем )или содержит один байт или начинается с любого количества \
символов, за которыми следует либо один байт (, и в этом случае этот байт используется в качестве разделителя ), либо 0
, за которым следует что-либо, и в этом случае разделителем является NUL
.
Примеры:
-t ''
или -t '\0'
, или -t '\\\\\0'
, или -t '\\0whatever
ограничивают символ NUL -t '\t'
, -t '\\\t'
ограничиваетt
-t '\'
, -t '\\\\\'
разграничивает обратную косую черту. В любом случае, разделитель может быть только одним байтом , эта загадочная дополнительная обработка, вероятно, только здесь, поэтому -t '\0'
можно использовать для указания разделителя NUL для совместимости с GNUsort
(FreeBSD. sort
раньше был GNUsort
)или, возможно, (, так как тот коммит , который даже не касался опции -t
), так что -t '\\'
также можно было использовать для указания \
в качестве разделителя (не то, что GNU sort
принимает ).
Таким образом, вы не можете использовать многобайтовый -символ в качестве разделителя.
Не многие реализации sort
допускают многобайтовый символ -. GNU или busybox sort
тоже этого не делают. ast -open sort
делает это.
Здесь вы можете поменять местами ±
одиночный -байтовый символ (, предпочтительно тот, который вряд ли появится во входных данных, чтобы он не влиял на сортировку )перед сортировкой и последующее восстановление. К счастью, FreeBSD tr
и, предположительно, macOS tr
также поддерживают многобайтовые -символы (, в отличие от GNU tr
):
<input tr '±\1' '\1±' | sort -t $'\1'... | tr '±\1' '\1±'