chown не меняет символическую ссылку

Я пытаюсь изменить пользователь /группу символической ссылки с помощью команды:

$ chown -h myuser: mygroup mysymbolic /

Но это не меняется. Я зарегистрирован как root. Для текущего пользователя /группы установлено значение root: root. Что пошло не так?

268 голосов | спросил rizidoro 9 12009vEurope/Moscow11bEurope/MoscowMon, 09 Nov 2009 16:02:39 +0300 2009, 16:02:39

9 ответов


339

Я помещал косую черту в конце цели:

chown -h myuser: mygroup mysymbolic /

просто удалил косую черту в конце и работал. Вот правильный способ:

chown -h myuser: mygroup mysymbolic
ответил rizidoro 9 12009vEurope/Moscow11bEurope/MoscowMon, 09 Nov 2009 16:16:42 +0300 2009, 16:16:42
25

Я пробовал это сам, и это работает для меня. Если у вас есть -h, он меняет владельца символической ссылки, но если вы не делаете этого, это изменяет владельца самого файла, а не ссылку.

Но, похоже, работа символической ссылки не связана с каталогом

ответил Arto Uusikangas 9 12009vEurope/Moscow11bEurope/MoscowMon, 09 Nov 2009 16:08:43 +0300 2009, 16:08:43
5

Мне не удалось chown создать каталог даже с помощью -h, но используя полный путь.

# ls -al
drwxr-xr-x 2 развернуть развертывание 4096 30 дек 10:29.
drwxr-xr-x 3 развернуть развертывание 4096 дек. 30 08:59 ..
lrwxrwxrwx 1 корень root 32 Dec 30 09:02 apps -> /И /приложений /
# chown -h deploy: развертывание приложений
# ls -al
drwxr-xr-x 2 развернуть развертывание 4096 30 дек 10:29.
drwxr-xr-x 3 развернуть развертывание 4096 дек. 30 08:59 ..
lrwxrwxrwx 1 корень root 32 Dec 30 09:02 apps -> /И /приложений /
# chown -h развернуть: развернуть приложения /
# ls -al
drwxr-xr-x 2 развернуть развертывание 4096 30 дек 10:29.
drwxr-xr-x 3 развернуть развертывание 4096 дек. 30 08:59 ..
lrwxrwxrwx 1 корень root 32 Dec 30 09:02 apps -> /И /приложений /
# pwd
/Var /WWW /HTML
# chown -h deploy: deploy /var /www /html /apps
# ls -al
drwxr-xr-x 2 развернуть развертывание 4096 30 дек 10:29.
drwxr-xr-x 3 развернуть развертывание 4096 дек. 30 08:59 ..
lrwxrwxrwx 1 deploy deploy 32 Dec 30 09:02 apps -> /И /приложений /
ответил Steve Tauber 30 MonEurope/Moscow2013-12-30T20:43:51+04:00Europe/Moscow12bEurope/MoscowMon, 30 Dec 2013 20:43:51 +0400 2013, 20:43:51
4

Является ли цель файлом или каталогом?

Если это каталог, попробуйте -H (верхний регистр H)

ответил 9 12009vEurope/Moscow11bEurope/MoscowMon, 09 Nov 2009 16:08:08 +0300 2009, 16:08:08
3

Восстановите эту ссылку myuser в доме myuser и mv эту ссылку в целевое местоположение sudo.

Например: (как myuser), ln -s somedir /linkname (будет некорректная ссылка, если somedir /не существует в каталоге пользователя)

Затем sudo mv linkname targetlocation (станет допустимой ссылкой при условии targetlocation /somedir /)

ответил wangdong 26 PMpThu, 26 Apr 2012 13:15:50 +040015Thursday 2012, 13:15:50
1

У меня была аналогичная проблема. Для меня я не мог chmod символическую ссылку даже как root, независимо от того, как я называл chmod. Чтобы добавить путаницу в это, наутилус показывал владельца /группу как ничто. Владелец был просто пустым. Поэтому я попытался изменить символическую ссылку, используя nautilus, запущенную как root, поскольку chmod не работал и nautilus разбился !!

Но я думаю, что понял эту проблему. В каталоге, на который ссылалась символьная ссылка, были разные разрешения, чем символическая ссылка. Поэтому я chmod'ed целевой каталог (с использованием -h) для моего имени пользователя /группы. Затем chmod'ed символическая ссылка на то же самое, и это сработало! И просмотр деталей символической ссылки в nautilus (с правами root) теперь больше не сбой.

Итак, для других, имеющих аналогичную проблему, проверьте разрешения целевого каталога /файла и убедитесь, что он совместим с разрешениями, на которые вы устанавливаете символическую ссылку.

ответил cgrey 16 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowTue, 16 Sep 2014 21:46:29 +0400 2014, 21:46:29
1

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

Например, если ваша цель находится внутри папки, которую пользователь, которому вы хотите назначить, не имеет достаточных прав, поведение ln -s таково, что оно ничего не будет делать при все.

ответил AnomalySmith 1 72015vEurope/Moscow11bEurope/MoscowSun, 01 Nov 2015 22:12:57 +0300 2015, 22:12:57
1

Для Solaris (подтвержденного на S11.3) для символической ссылки на каталог вам нужно будет запустить

root @ ac11x017: /var /tmp $ ls -lal dumpdir
lrwxrwxrwx 1 корень root 16 Jun 15 09:08 dumpdir -> /Данные /DUMPDIR /
root @ ac11x017: /var /tmp $ chown -RP oracle: oinstall dumpdir
lrwxrwxrwx 1 oracle oinstall 16 Jun 15 09:09 dumpdir -> /Данные /DUMPDIR /
ответил RaamEE 11 AM00000080000004831 2016, 08:24:48
1

просто.

chown -h myuser: mygroup <symlink>

должно быть достаточно и работать! А

ответил Aziz Zoaib 5 TueEurope/Moscow2017-12-05T14:02:14+03:00Europe/Moscow12bEurope/MoscowTue, 05 Dec 2017 14:02:14 +0300 2017, 14:02:14

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132