Linux, çoğu Unix benzeri sistem gibi (Apple OS / X nadir istisnalardan biridir), örneğin hedeflerini çözme konusunda sembolik bağlantıların izinlerini yok sayar.
Bununla birlikte, diğer dosyalar gibi sembolik bağlantıların sahipliği, t
bit ayarlı dizinlerdeki girişlerini yeniden adlandırma veya bağlantılarını kaldırma izni söz konusu olduğunda önemlidir /tmp
.
İçindeki bir dosyayı kaldırabilmeniz veya yeniden adlandırabilmeniz için (symlink ya da değil) /tmp
, dosyanın sahibi olmanız gerekir. Bu, bir sembolik bağlantının sahipliğini değiştirmek isteyebilmesinin bir nedenidir (bağlantısını kaldırma / yeniden adlandırma izni vermek veya kaldırmak için).
$ ln -s / /tmp/x
$ rm /tmp/x
# OK removed
$ ln -s / /tmp/x
$ sudo chown -h nobody /tmp/x
$ rm /tmp/x
rm: cannot remove ‘/tmp/x’: Operation not permitted
Ayrıca, Mark Plotnick'in şimdi silinen cevabında belirtildiği gibi , yedekleme ve arşivleme uygulamalarının lchown()
sembolikleri orijinal sahiplerine geri yüklemeleri gerekir . Başka bir seçenek, symlink'i oluşturmadan önce euid ve egid'i değiştirmek olacaktır, ancak bu etkili olmayacak ve symlink'in çıkarıldığı dizindeki doğru yönetimleri karmaşık hale getirmeyecektir.
lrwxrwxrwx
. Achmod
burada bir anlam ifade etmiyor. Bağlantıyı izlemeniz sizi hedef izinlerine yönlendirir.