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
danidacar
sumber

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.

Karlson
sumber
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.

Homolka yang kaya
sumber
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.

Andrew Lambert
sumber
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!

Di sini Jadilah Serigala
sumber
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
1

Saya yakin file yang Anda coba hapus ada di / tmp.

Lihat Linux - anggota grup tidak dapat menghapus file dengan izin rw

/ tmp biasanya memiliki set mode "lengket" alias "penghapusan terbatas" (o + t). Dengan mode ini disetel, hanya pemilik file yang dapat memindahkan atau menghapus file di direktori itu tanpa izin apa pun.

Dagelf
sumber