“ls -ld / tmp” çıkışındaki “t” harfi nedir?

80

ls -ld /tmp komutunu çalıştırırken çıktı şu olurdu:

drwxrwxrwt 30 root root 20480 Mar 11 14:17 /tmp

Yani iki ana sorum var:

  • İzinlerden sonra t harfi nedir?
  • Bildiğim kadarıyla /tmp ile ilgili geçici dosyalar oluşturmak için kullanılır sistemdeki farklı kullanıcılar, bu yüzden nasıl izin verdi rwxrwxrwx (777)?

Bu benim için yanlış görünüyor. Lütfen ne olduğunu anlamak için yardımına ihtiyacım var.

    
sordu Community 11.03.2014 13:33

3 cevap

101

Peki, yapışkan bit nedir?

Yapışkan bir bit, yalnızca bu dizinin içindeki dosyanın sahibine, dizinin sahibine veya kök kullanıcının dosyayı silmesine veya yeniden adlandırmasına izin veren bir dizinde ayarlanan bir izin bitidir. Başka bir kullanıcı, başka bir kullanıcı tarafından oluşturulan dosyayı silmek için gerekli ayrıcalıklara sahip değildir.

Bu, diğer kullanıcıların tam izinlerine sahip olmasına rağmen, kritik klasörlerin ve içeriklerini (alt dizinler ve dosyalar) silmekten kaçınmak için bir güvenlik önlemidir.

/tmp neden t yapışkan biti kullanıyor?

/tmp dizini, geçici dosyalar oluşturmak için farklı Linux kullanıcıları tarafından kullanılabilir. Şimdi, bir kullanıcı bu dizinde başka bir kullanıcı tarafından oluşturulan bir dosyayı siler / yeniden adlandırırsa ne olur?

Bu tür sorunlardan kaçınmak için yapışkan bit kavramı kullanılır. Bunun için 777 verilir ama yapışkan bitleri korumak kötü bir fikir değildir.

Bir dizin için yapışkan biti nasıl ayarlayabilirim?

Masaüstümde test adlı dizinde yapışkan bir bit ayarlayacağım.

Sembolik yol ( t , yapışkan biti temsil eder):

chmod o+t ~/Desktop/test

veya

chmod +t ~/Desktop/test

Sayısal / sekizli yol (1, birinci konumda 1 numaralı yapışkan bit biti)

chmod 1757 ~/Desktop/test

Şimdi sonuçları test edelim:

ls -li ~/Desktop/test

1551793 drwxrwxrwt 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

Yapışkan biti silmek / çıkarmak için

chmod o-t ~/Desktop/test

Şimdi sonuçları test edelim:

ls -li ~/Desktop/test

1551793 drwxrwxrwx 45 hadi hadi 20485 Mar 11 14:35 ~/Desktop/test

Kaynak: “Yapışkan bir Bit nedir ve Linux'ta nasıl ayarlanır?” Linux Juggernaut'ta

    
verilen cevap Maythux 11.03.2014 13:37
22
  

Yapışkan bit, bir dosya veya dizinde yalnızca dosyanın / dizinin veya kök kullanıcının dosyayı silip yeniden adlandırmasına izin veren bir izin kümesidir. Başka bir kullanıcıya, başka bir kullanıcı tarafından oluşturulan dosyayı silmek için ayrıcalık verilmez.

Bazen, Linux sisteminin tüm kullanıcıları tarafından dosyalar oluşturmak için kullanılabilecek Linux dizinine ihtiyacınız olur. Kullanıcılar bu dizinde kolaylıklarına göre dosyalar oluşturabilir, silebilir veya yeniden adlandırabilir.

  

Şimdi, bir kullanıcı bu dizinde başka bir kullanıcı tarafından oluşturulan bir dosyayı yanlışlıkla veya kasıtlı olarak siler (veya yeniden adlandırırsa)?

     

Bu tür sorunlardan kaçınmak için yapışkan bit kavramı kullanılır. Bu amaçla / tmp kullanıldığından. Yukarıdaki senaryoyu önlemek için / tmp yapışkan biti kullanın.

Örneğin:

mkdir demo
chmod 777 demo

Ayrıca, bu klasörde farklı kullanıcılara sahip iki dosya oluşturdum ve bu izin 777'ye sahip.

ls -ld demo
drwxrwxrwx 2 guru guru 4096 Mar 11 18:17 demo

ls -l demo
-rwxrwxrwx 1 abhi abhi    0 Mar 11 17:11 file1
-rwxrwxrwx 1 anshu anshu   0 Mar 11 18:15 file2

Şimdi buradaki yapışkan biti aç

 chmod +t demo/
 ls -ld demo
 drwxrwxrwt 2 guru guru 4096 Mar 11 18:17 demo

Şimdi, bir kullanıcı (abhi) 2. kullanıcıyı (anshu) yeniden adlandırmak istiyorsa ne olur?

mv /home/guru/demo/file2  /home/guru/demo/file3
mv: cannot move '/home/guru/demo/file2' to  '/home/guru/demo/file3': Operation not   permitted  

Yapışkan bitin kaynağı

Linux'ta, yapışkan bit sadece, dizinlerde, yukarıda açıklanan kullanıma sahiptir. Tarihsel olarak, düzenli dosyalarda tamamen farklı bir şey için kullanıldı ve adı nereden geldi.

  

Bir program yürütüldüğünde, kullanıcı onu kullanmaya başlamadan önce programı belleğe yüklemek zaman alır. Bir program, örneğin bir editör, kullanıcılar tarafından sık sık kullanılıyorsa, başlangıç ​​zamanı gecikmesi bir geri dönüş oldu.

     

Bu zaman gecikmesini iyileştirmek için yapışkan bit tanıtıldı. OS, bir yürütülebilirdeki yapışkan biti AÇIK ise, yürütülebilir dosyanın metin bölümünün takas alanında tutulduğunu kontrol etti. Bu, program tekrar çalıştırıldığında yürütülebilir dosyayı RAM'a geri yüklemeyi kolaylaştırdı ve böylece zaman gecikmesini en aza indirdi.

Linux gibi modern sistemler, otomatik olarak yürütülebilir dosya ve diğer dosyaların önbelleklerini yönetir ve bunun için yapışkan bitlere ihtiyaç duymazlar.

Kaynak: “Geek İçerisindeki Örneklerle Açıklanan Linux Yapışkan Bit Kavramı”

    
verilen cevap g_p 11.03.2014 14:06
2

Yapışkanlık, paylaşılan dizinlerin yanlışlıkla silinmemesi için bir geçici çözüm yöntemidir. Bir dizinde bir yapışkanlık olduğunda, her kullanıcı tüm diğer izinleri alabilmesine rağmen yalnızca sahibi veya kökünü silebilir.

/tmp , işlemler ve kullanıcılar arasında en çok paylaşılan dizindir ve bu, kullanıcının dizini silememesini sağlamak için stickybit içerdiğinden, izin 777 olsa bile, ve yeteneğini vermek için olması gerekir. kullanıcılara ve izinlere çakışma olmadan dizini kullanmak için süreçlere.

    
verilen cevap user259474 18.03.2014 12:14

Etiketlerdeki diğer soruları oku