Решение было дано в комментарии muru .
sudo will read each file in /etc/sudoers.d, skipping file names that end in ‘~’ or contain a ‘.’ character...
https://www.sudo.ws/man/1.8.15/sudoers.man.html#Including_other_files_from_within_sudoers
Как указал Роайма в другом комментарии:
The dot in the username doesn't cause the issue. It's because you chose to put the sudo configuration in a file whose name contains a dot.
В этом-то и была проблема. И решение, которое я проверил, было просто:
sudo mv /etc/sudoers.d/user.name /etc/sudoers.d/username
См. документацию в man ln .
Вы использовали 3-ю форму
ln [OPTION]... TARGET... DIRECTORY
, который создаст ссылки для всех TARGET s в DIRECTORY .
Ваша команда создала (или попыталась создать )ссылки для всех файлов и каталогов (и других объектов, если таковые имеются )в /home/orca/www
, , но , возможно, это не удалось для некоторых из них, если имя уже существовало в /var
. (В этом случае ваша команда могла выводить сообщения об ошибках.)
Поскольку /var
обычно не пуст, вы не можете просто удалить все.
Лучшее, что я могу сейчас предложить, это удалить все имена, присутствующие в /home/orca/www
, из /var
, если это символическая ссылка.
Этот цикл покажет, что будет удалено:
for i in /home/orca/www/*
do
l=/var/"${i##*/}"
if [ -h "$l" ]
then
echo rm "$l"
fi
done
Проверьте вывод. Если это то, что вам нужно, удалите echo
, чтобы действительно выполнять команды rm
.
for i in /home/orca/www/*
do
l=/var/"${i##*/}"
if [ -h "$l" ]
then
rm "$l"
fi
done
С zsh
,
rm /var/*(@m-1)
Будут удалены все символические ссылки в /var
, которые были созданы за последние 24 часа.
Пока:
rm /var/*(@m-1e['[[ $REPLY:P = /home/orca/www/* ]]'])
удалит все символические ссылки, созданные за последние 24 часа, чей реальный путь(канонический абсолютный путь )соответствует шаблону /home/orca/www/*
(не будет работать должным образом, если /home
, /home/orca
, /home/orca/www
или любой из файлов там сами являются символическими ссылками ).
(замените rm
на ls -ld
, если вы просто хотите просмотреть список перед удалением файлов ).
В GNU find
вы также можете:
find /var -maxdepth 1 -mtime -1 -lname '/home/orca/www/*' -delete
Чтобы удалить все символические ссылки в /var
, созданные за последние 24 часа, цель которых соответствует шаблону /home/orca/www/*
.
(замените -delete
на -ls
, если хотите просмотреть список перед удалением файлов)