أحاول تغيير المستخدم/مجموعة ارتباط رمزي باستخدام الأمر:
$ chown -h myuser:mygroup mysymbolic/
لكنه لا يتغير. لقد قمت بتسجيل الدخول كجذر. تم تعيين المستخدم/المجموعة الحالية إلى الجذر: الجذر. ماذا حصل؟
كنت أضع شرطة مائلة في نهاية الهدف:
chown -h myuser:mygroup mysymbolic/
فقط إزالة القطع المائلة في النهاية ويعمل. إليك الطريقة الصحيحة:
chown -h myuser:mygroup mysymbolic
لقد جربت هذا بنفسي وهو يعمل لي. إذا كان لديك -h فإنه يغير مالك الرابط الرمزي ، لكن إذا لم تقم بذلك ، فإنه يغير مالك الملف نفسه وليس الرابط.
ولكن لا يبدو أن عمل الرابط الرمزي مرتبط بدليل
لم أتمكن من chown
directory حتى مع -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/
هل الهدف ملف أم دليل؟
إذا كان دليلًا ، فجرّب -H (الحالة العليا H)
أعد إنشاء هذا الرابط بواسطة myuser في منزل myuser ، وقم بتنزيل هذا الرابط إلى الموقع المستهدف بواسطة Sudo.
على سبيل المثال: (مثل myuser) ، ln -s somedir/ linkname
(سيكون رابطًا مقطوعًا إذا كان somedir/غير موجود في دليل المستخدم)
ثم ، Sudo mv linkname targetlocation
(سيصبح رابطًا صالحًا شريطة targetlocation/somedir/
موجود)
ببساطة.
chown -h myuser:mygroup <symlink> [without trailing slash]
يجب أن يكون كافيا والعمل!
كان لدي مشكلة مماثلة. بالنسبة لي ، لم أستطع chmod الرابط الرمزي حتى كجذر بغض النظر عن كيف اتصلت chmod. لإضفاء مزيد من الارتباك على هذا ، كان نوتيلوس يظهر للمالك/المجموعة على أنه لا شيء. كان المالك فارغًا فقط. لذا حاولت تغيير الرابط الرمزي باستخدام nutilus الذي يعمل كجذر لأن chmod لا يعمل و nutilus تحطمت !!
لكنني أعتقد أنني اكتشفت المشكلة. الدليل الذي يشير إليه الارتباط الرمزي كان له أذونات مختلفة عن الارتباط الرمزي. لذلك أنا chmod'ed الدليل الهدف (باستخدام -h) لاسم المستخدم/المجموعة. ثم chmod'ed الرابط الرمزي لنفسه وانها عملت! وعرض تفاصيل الرابط الرمزي في nautilus (مع أذونات الجذر) لم يعد يتعطل الآن.
لذلك بالنسبة للآخرين الذين يواجهون مشكلة مماثلة ، تحقق من أذونات الدليل/الملف الهدف وتأكد من أنه متوافق مع الأذونات التي تقوم بتعيين الارتباط الرمزي لها.
لاحظ أن تغيير owner
الخاص بالارتباط سيمكن أن يعمل فقط إذا كان الهدف هو يمكن الوصول إليه بواسطة المستخدم الجديد الذي تريد تعيينه إليه.
على سبيل المثال ، إذا كان هدفك داخل مجلد لا يمتلك المستخدم الذي تريد تعيينه له حقوقًا كافية ، فإن سلوك ln -s command
لن يؤدي إلى شيء على الإطلاق.
[email protected]:/var/tmp$ ls -lal dumpdir
lrwxrwxrwx 1 root root 16 Jun 15 09:08 dumpdir -> /data/dumpdir/
[email protected]:/var/tmp$ chown -RP Oracle:oinstall dumpdir
lrwxrwxrwx 1 Oracle oinstall 16 Jun 15 09:09 dumpdir -> /data/dumpdir/