Папка ~ / .ssh
не может быть доступна для записи никому, кроме владельца. Полностью удалите разрешения группы (команда ниже на сервере), и все будет в порядке:
chmod g-rwx ~ylia/.ssh
Если у вас GNU или BSD find
, это должно подойти:
find -lname '/home/Steven/*' -delete
Вы можете изменить свой скрипт и использовать grep
и либо readlink
, либо realpath
для извлечения файлов в нужный подкаталог, например.:
for z in /usr/local/bin/*
do
if [ -h "${z}" ] && readlink -f "${z}" | grep -q '^/home/Steven'
then rm "${z}"
fi
done
Команда readlink -f
возвращает полный путь к файлу, на который указывает символическая ссылка. Команда grep -q '^/home/Steven'
возвращает значение true, если путь начинается с подстроки '/home/Steven', и значение false в противном случае.
Слово предостережения :здесь есть некоторая двусмысленность, связанная с символическими ссылками, которая может повлиять на результат. Команда readlink -f
будет рекурсивно разрешать ссылку, поэтому приведенная выше команда завершится ошибкой, если файл в каталоге /home/Steven
сам по себе является точкой символической ссылки за пределами этого каталога. Если это нежелательное поведение, вы можете вместо этого использовать команду realpath
.