чуун не змінює символічну ланку


312

Я намагаюся змінити користувача / групу символічного посилання командою:

$ chown -h myuser:mygroup mysymbolic/ 

Але це не змінюється. Я ввійшов як root. Поточному користувачеві / групі встановлено root: root. Що пішло не так?


Яку операційну систему ви використовуєте? Відповідно до сторінки manaul, параметр -h впливає лише на системи, які можуть змінити право власності на символічне посилання.
Jichao

Ви знаходитесь на кріпленні NFS?
Ортомала Локні

Все, що закінчується, /- це каталог. Ви маєте на увазі mysymbolic, що символічне посилання, а не mysymbolic/, ймовірно, каталог, на який він вказує.
Девід Шварц

Відповіді:


381

Я ставив косу рису в кінці цілі:

chown -h myuser:mygroup mysymbolic/ 

щойно зняв косу рису і врешті-решт працює. Ось правильний спосіб:

 chown -h myuser:mygroup mysymbolic

9
не працює для мене на ubuntu
Radek,

2
Ого, на це знадобилися години, щоб знайти.
визначається

54
@Radek Він працював на Ubuntu, поки я пам’ятав -hпрапор.
IQAndreas

29
Працює для мене на Ubuntu з кінцевою косою рисою -hта без неї.
friederbluemle

8
Я не можу повірити через 4 роки, я зіткнувся зі своїм минулим самопочуттям тієї ж проблеми, місіс '-h'!
Ентоні Д'Андреа

29

Я сам спробував це, і це працює на мене. Якщо у вас є -h, він змінює власника символічного посилання, але якщо ви цього не зробите, він змінює власника самого файлу, а не посилання.

Але, здається, робота символічного посилання пов'язана з каталогом


2
Для чого це варто, сторінка man в OS X набагато зрозуміліша за -h варіант, ніж та, що використовується в (Arch) Linux. "-H Якщо файл символічне посилання, змініть ідентифікатор користувача та / або ідентифікатор групи самого посилання". системи, які можуть змінити право власності на
симпосилання

6

Я навіть не зміг до chownкаталогу, -hале працював повний шлях.

# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# chown -h deploy:deploy apps/
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 root   root     32 Dec 30 09:02 apps -> /u/apps/
# pwd 
/var/www/html
# chown -h deploy:deploy /var/www/html/apps
# ls -al
drwxr-xr-x 2 deploy deploy 4096 Dec 30 10:29 .
drwxr-xr-x 3 deploy deploy 4096 Dec 30 08:59 ..
lrwxrwxrwx 1 deploy deploy   32 Dec 30 09:02 apps -> /u/apps/

5

Це цільовий файл чи каталог?

Якщо це каталог, то спробуйте -H (верхній регістр H)


ціль - каталог

дивіться мою відредаговану відповідь про каталог

6
Вибачте за некромантію потоку, але я хотів би зазначити, що правильний синтаксис є з малого "h".

4

просто.

chown -h myuser:mygroup <symlink> [without trailing slash]

повинно вистачити і працювати!  


3

Відтворіть це посилання мійсером у домі мого користувача та перейдіть посилання на цільове місце за допомогою sudo.

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

Потім sudo mv linkname targetlocation(стане дійсним посилання за умови targetlocation/somedir/наявності)


Ваша відповідь без деталей і важко до кінця зрозуміти. Будь ласка, перегляньте свою відповідь, щоб надати більш детальну інформацію.
Джеймс Мерц

1

У мене була схожа проблема. Для мене я не міг chmod символічне посилання навіть як root, незалежно від того, як я називав chmod. Щоб додати плутанину в цьому, nautilus показував власника / групу як нічого. Господар був просто порожнім. Тому я спробував змінити символічне посилання, використовуючи nautilus, що працює як root, оскільки chmod не працював, і nautilus вийшов з ладу !!

Але я думаю, я вирішив проблему. Каталог, на який вказувала символічна посилання, мав різні дозволи, ніж символічне посилання. Тому я chmod'ed цільовий каталог (використовуючи -h) моє ім'я користувача / групи. Тоді chmod'ed символічне посилання на те саме і воно спрацювало! І перегляд подробиць символічного посилання в nautilus (з дозволом root) тепер більше не збоїв.

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


1

Зауважте, що зміна ownerсимвольної посилання може працювати лише в тому випадку, якщо цільовій доступ є новий користувач, якому ви хочете призначити її.

Наприклад, якщо ваша мета знаходиться в папці, якій користувач, якому ви хочете призначити її, не має достатньо прав, ln -s commandповедінка така, що вона взагалі нічого не зробить.


1

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

root@ac11x017:/var/tmp$ ls -lal dumpdir
lrwxrwxrwx   1 root     root          16 Jun 15 09:08 dumpdir -> /data/dumpdir/
root@ac11x017:/var/tmp$ chown -RP oracle:oinstall dumpdir
lrwxrwxrwx   1 oracle   oinstall      16 Jun 15 09:09 dumpdir -> /data/dumpdir/
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.