chown sembolik bağlantıyı değiştirmiyor


312

Sembolik bir bağlantının kullanıcısını / grubunu şu komutla değiştirmeye çalışıyorum:

$ chown -h myuser:mygroup mysymbolic/ 

Ama değişmiyor. Root olarak giriş yaptım. Geçerli kullanıcı / grup root olarak ayarlanmıştır: root. Ne yanlış gitti?


Hangi işletim sistemini kullanıyorsunuz? Manaul sayfasına göre, -h seçeneği sadece sembolik bağlantının sahipliğini değiştirebilen sistemleri etkiliyor.
Jichao

NFS bağında mısınız?
Ortomala Lokni

İle biten her şey /bir dizindir. Demek istediğim mysymbolic, hangisinin sembolik bağ olduğu, mysymbolic/hangisinin muhtemelen işaret ettiği dizin değil.
David Schwartz,

Yanıtlar:


381

Hedefin sonuna bir eğik çizgi koyuyordum:

chown -h myuser:mygroup mysymbolic/ 

Sonunda eğik çizgi kaldırıldı ve çalışır. İşte doğru yol:

 chown -h myuser:mygroup mysymbolic

9
ubuntu'da benim için çalışmıyor
Radek

2
Vay, bu bulmam saatlerimi aldı.
tanımlar

54
@Radek -hBayrağı hatırladığım sürece benim için Ubuntu'da çalıştı .
IQAndreas

29
Ubuntu benim için çalışır ile -h ve olmadan eğik çizgiyle.
friederbluemle

8
4 yıl sonra inanmıyorum, aynı problemi yaşayarak geçmişimde kendime çarptım, '-h'!
Antony D'Andrea

29

Bunu kendim denedim ve bu benim için çalışıyor. -H varsa, sembolik bağlantının sahibini değiştirir, ancak bunu yapmazsanız, dosyanın sahibini değiştirir, bağlantıyı değiştirmez.

Fakat sembolik bağlantının çalışması bir dizine bağlı görünmüyor


2
Buna değer ne olursa olsun, OS X'teki man sayfası -h seçeneğinde (Arch) Linux'takinden çok daha net. “-H Dosya sembolik bir bağsa, kullanıcı kimliğini ve / veya bağlantının kendisinin grup kimliğini değiştirin.” Vs. “-h, --no-dereference başvurulan herhangi bir dosya yerine sembolik bağlantıları etkiler (yalnızca yararlı sembolik bağlantıyı değiştirebilecek sistemler) ”
Matijs

6

chownDizini bile kullanamadım -hama tam yolu kullandım.

# 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

Hedef bir dosya mı yoksa dizin mi?

Eğer bir dizinse -H (büyük H harfi) deneyin.


hedef bir dizin

dizinle ilgili düzenlediğim cevabı gör

6
İş parçacığı için üzgünüm, ama doğru sözdiziminin küçük harfle 'h' olduğunu belirtmek isterim.

4

basitçe.

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

yeterli olmalı ve çalışmalı!  


3

Bu bağlantıyı kullanıcımın evinde evimde yeniden oluşturun ve bu bağlantıyı sudo ile hedef konuma çevirin.

Örneğin: (kullanıcım olarak), ln -s somedir/ linkname (kullanıcının dizininde bir miktar / varsa) kopuk bir bağlantı olacaktır)

Sonra, sudo mv linkname targetlocation( targetlocation/somedir/mevcut bir link geçerli olacak )


Cevabınız detaysız ve tam olarak anlaşılması zor. Lütfen daha fazla ayrıntı sağlamak için cevabınızı değiştirmeyi düşünün.
James Mertz,

1

Ben de benzer bir problem yaşadım. Benim için chmod'u nasıl çağırdığımdan bağımsız olarak, sembolik bağlantıyı kök olarak bile kodlayamadım. Bu kargaşayı eklemek için, nautilus sahibi / grubu hiçbir şey olarak göstermiyordu. Sahibi sadece boştu. Bu yüzden chmod çalışmıyor ve nautilus çöktü çünkü root olarak çalışan nautilus kullanarak sembolik bağlantı değiştirmeye çalıştı!

Ama sanırım sorunu çözdüm. Sembolik bağın işaret ettiği dizin, sembolik bağdan farklı izinlere sahipti. Bu yüzden hedef dizini (-h kullanarak) kullanıcı / grup adıma ekledik. Sonra aynı sembolik bağlantıyı chmod'ed ve işe yaradı! Ve sembolik bağlantının ayrıntılarını nautilus'ta (kök izinleriyle) görüntülemek artık çökmez.

Bu yüzden benzer bir problemi yaşayan diğer kişiler için, hedef dizinin / dosyanın izinlerini kontrol edin ve sembolik bağlantıyı ayarladığınız izinlerle uyumlu olduğundan emin olun.


1

ownerİşaret bağlantısının değiştirilmesinin yalnızca hedefe atamak istediğiniz yeni kullanıcı tarafından erişilebilir olması durumunda çalışabileceğini unutmayın.

Örneğin, hedefiniz atamak istediğiniz kullanıcının yeterli haklara sahip olmadığı bir klasörün içindeyse, ln -s commanddavranış hiçbir şey yapmaz.


1

Solaris için (S11.3'te doğrulandı), bir dizine sembolik bir bağlantı için çalıştırmanız gerekir.

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/
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.