Mengapa saya tidak bisa menghapus file di mana saya memiliki izin menulis grup?


26

Saya punya file dengan izin berikut:

root:data, dan chmoddiatur ke 775.

Pengguna normal saya, sebut saja dia boby, ada di datagrup.

Mengapa saya tidak bisa menghapus file dengan boby pengguna?

 rwxrwxr-x 18 root data 4096 2011-12-30 22:02 penyimpanan
 pengguna saya ada di data grup tetapi tidak bisa menulis ke penyimpanan

Jawaban:


32

Karena dengan menghapus file, Anda tidak hanya memodifikasi file tetapi juga memodifikasi direktori.

Jadi jika file Anda adalah:

rwxrwxr-x

Anda dapat melakukan:

cp /dev/null <filename>

Tetapi jika izin direktori Anda adalah:

rwxr-xr-x  root  data  <directory name>

Maka sistem akan mencegah Anda menghapus file.


Saya punya drwxrwxr-x pada direktori, saya pikir itu ada hubungannya dengan d di depan
danidacar

2
@ user56301 d hanya menunjukkan bahwa file ini adalah direktori. Apa kepemilikan direktori?
Karlson

drwxrwxr-x 18 root data
danidacar

Coba jalankan sebagai pengguna bobyberikut ini:cd <directory> ; touch test_file ; rm test_file
Karlson

@ user56301 dapatkah Anda membuat file di direktori itu? jika Anda tidak bisa, maka Anda pasti tidak dapat menghapus file di sana.
Rich Homolka

12

Penghapusan file didasarkan pada perms direktori, bukan perms file (*).

Apakah Anda memiliki izin menulis di direktori yang berisi file?

(*) Peringatan, Anda dapat memiliki direktori tempat Anda menegakkan bahwa hanya pemilik file yang dapat menghapusnya. Ini berguna untuk direktori sementara.


Lihat juga di sini: superuser.com/questions/784952/… di mana hal yang sama dibahas.
Meetai.com

1

Jika direktori yang berisi tidak mengizinkan pengguna bobyatau datagrup untuk menulis kepadanya, maka itu akan menjelaskan perilaku ini.


2
Jadi seluruh jalur memerlukan izin kelompok? Itu bekerja seperti itu.
danidacar

1
@ pengguna: Bukan seluruh jalur - hanya direktori induk langsung file. Anda hanya mengubah konten direktori. Orang tua yang lebih tinggi tidak masalah sama sekali .
grawity

Saya memperbarui jawabannya
danidacar

1
Ini tidak sepenuhnya benar. Anda hanya perlu menulis perms pada direktori yang berisi. Perm dapat berupa pengguna, grup, atau lainnya, tidak harus perm grup yang memungkinkan Anda.
Rich Homolka

@ Rich: AFAIK, hanya satu set yang diperiksa. Jika Anda adalah pemilik, sistem hanya akan memeriksa izin 'pemilik', bukan 'grup' atau 'orang lain'. Jika Anda berada di grup, sistem tidak akan memeriksa izin 'orang lain'. ( touch foo; chmod 6 foo; ls -l foo; cat foo)
grawity

1

Saya mencoba hal yang sama, dan mengalami masalah yang sama.

Memulai sesi terminal baru masalahnya. Ini dapat dicapai dengan:

  1. Keluar dan masuk kembali
  2. Pergi ke salah satu dari 6 ttys (Ctrl + Alt + F1-6) (Catatan: Ctrl + Alt + F7 adalah sesi GUI Anda)
  3. gunakan su bobyuntuk memulai sesi baru bagi pengguna boby.

Tepuk tangan!


Dia menyebutkan bahwa dia sudah login sebagai boby
Luke Kanada. Reinstate MONICA

Dia perlu masuk lagi karena boby- sesi lama tampaknya basi dan tidak mencerminkan perubahan asosiasi grup.
Here Be Wolves

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.