Grup yazma izinlerinin olduğu bir dosyayı neden silemiyorum?


26

Aşağıdaki izinlere sahip bir dosyam var:

root:datave chmod775 olarak ayarlayın.

Benim normal kullanıcım, haydi onu boby diyelim, datagrupta

Neden dosyayı kullanıcı boby'siyle silemiyorum?

 rwxrwxr-x 18 root data 4096 2011-12-30 22:02 depolama
 kullanıcım grup verilerinde ancak depoya yazamıyor

Yanıtlar:


32

Çünkü bir dosyayı silerek, sadece dosyayı değiştirmez, aynı zamanda dizini de değiştirirsiniz.

Yani eğer dosyanız:

rwxrwxr-x

Yapabileceksiniz:

cp /dev/null <filename>

Ancak, dizin izinleriniz:

rwxr-xr-x  root  data  <directory name>

Sonra sistem dosyayı çıkarmanızı önler.


Dizinde drwxrwxr-x var, sanırım önünde d ile bir ilgisi var
danidacar 19

2
@ user56301 d, sadece bu dosyanın bir dizin olduğunu gösterir. Dizinin mülkiyeti nedir?
Karlson

drwxrwxr-x 18 kök veri
danidacar 19

Aşağıdakileri kullanıcı olarak çalıştırmayı deneyin boby:cd <directory> ; touch test_file ; rm test_file
Karlson

@ user56301 bu dizinde bir dosya oluşturabilir misiniz? yapamazsanız, o zaman kesinlikle orada bir dosyayı silemezsiniz.
Rich Homolka,

12

Dosya silme, dosya izinlerine değil (*) dizin izinlerine dayanır.

Dosyayı içeren dizinde yazma izniniz var mı?

(*) Uyar, yalnızca dosyanın sahibinin onu silebileceğini zorladığın bir dizine sahip olabilirsin. Bu geçici direkler için kullanışlıdır.


: Ayrıca burada bir göz superuser.com/questions/784952/... aynı tartışılmaktadır.
Meetai.com

1

Eğer içeren dizin kullanıcının bobyveya datagrubun kendisine yazmasına izin vermiyorsa, bu davranış açıklanabilir.


2
Yani tüm yolun grup iznine ihtiyacı var mı? Böyle çalışır.
danidacar

1
@ user: Yolun tamamı değil - yalnızca dosyanın ani ana dizini. Siz sadece müdürün içeriğini değiştiriyorsunuz. Daha yüksek ebeveynler hiç önemi yok .
yerçekimi

Cevapları güncelledim
danidacar

1
Bu tam olarak doğru değil. Sadece içeren dizinde yazma izinlerine ihtiyacınız var. İzinler, herhangi bir kullanıcı, grup veya başka olabilir, size izin veren grup izinleri olmak zorunda değildir.
Rich Homolka,

@Rich: AFAIK, sadece bir set kontrol edilir. Sahibi sizseniz, sistem 'grup' veya 'başkalarını' değil, yalnızca 'sahip' izinlerini kontrol eder. Eğer gruptaysanız, sistem 'başkalarının' izinlerini kontrol etmez. ( touch foo; chmod 6 foo; ls -l foo; cat foo)
yerçekimi

1

Aynı şeyi denedim ve aynı problemle karşılaştım.

Yeni bir terminal oturumu başlatmak sorun. Bu şu şekilde başarılabilir:

  1. Çıkış yapıp tekrar giriş yapmak
  2. 6 tty'den birine gitme (Ctrl + Alt + F1-6) (Not: Ctrl + Alt + F7, GUI oturumunuzdur)
  3. su bobykullanıcı için yeni bir oturum başlatmak için kullanılır boby.

Şerefe!


Daha önce boby olarak oturum açtığını söyledi
Kanadalı Luke, MONINSTATE MONICA

bobyEski oturumun bayat gözüktüğü ve grup ilişkilendirme değişikliklerini yansıtmadığı için tekrar giriş yapması gerekiyor .
İşte Kurtlar

1

İddiaya girerim silmeye çalıştığın dosya / tmp.

Linux'a bakın - grup üyesi rw izniyle dosyayı silemiyor

/ tmp genellikle "yapışkan" aka "sınırlı silme" modu ayarına sahiptir (o + t). Bu mod ayarlandığında, herhangi bir izin ne olursa olsun, sadece dosya sahibi o dizindeki dosyaları taşıyabilir veya silebilir.

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.