Beberapa waktu lalu ketika dalam percakapan di IRC, satu pengguna di saluran saya menyarankan seseorang mengatur direktori agar dapat mewarisi userid pada file untuk memecahkan masalah yang dialami orang lain. Pada saat itu saya berbicara dan berkata "linux tidak mendukung direktori setuid". Setelah itu, orang yang memberikan saran tersebut menunjukkan kepada saya pastebin ( http://codepad.org/4In62f13 ) dari sistemnya untuk menghormati izin setuid yang ditetapkan pada direktori.
Hanya untuk menjelaskan, ketika saya mengatakan "linux tidak mendukung direktori setuid" apa yang saya maksud adalah bahwa Anda dapat pergi "direktori chmod u + s" dan itu akan mengatur bit pada direktori. Namun, linux (seperti yang saya mengerti) mengabaikan bit ini (pada direktori).
Cobalah sekuat tenaga, saya tidak bisa meniru pastebin itu. Seseorang pernah memberi saran kepada saya bahwa mungkin untuk meniru perilaku dengan selinux - dan bermain-main dengan aturan, dimungkinkan untuk memaksa uid pada file, tetapi tidak dari izin direktori setuid (yang bisa saya lihat). Membaca di internet sangat tidak informatif - sebagian besar tempat mengklaim "tidak, setuid pada direktori tidak bekerja dengan linux" dengan sesekali "itu dapat dilakukan dalam keadaan tertentu" (seperti ini: http://arstechnica.com/ etc / linux / 2003 / linux.ars-12032003.html )
Saya tidak ingat siapa orang aslinya, tetapi sistem aslinya adalah sistem debian 6, dan sistem file yang dijalankannya adalah xfs yang dipasang dengan "default, acl". Saya sudah mencoba mereplikasi itu, tetapi tidak berhasil sejauh ini (mencoba sejauh ini dengan berbagai versi debian, ubuntu, fedora dan centos)
Adakah yang bisa memberi saya petunjuk tentang apa atau bagaimana Anda mendapatkan sistem untuk menghormati setuid pada direktori?
sumber
grpid|bsdgroups
ataunogrpid|sysvgroups
) yang berarti file dalam direktori dapat dibuat dengan grup direktori daripada grup pemilik; mungkin bermain dengan itu?Jawaban:
Setuid untuk direktori tidak berperilaku seperti setgid. Kecuali, keluaran shell berasal dari FreeBSD, seseorang bosan dan bersenang-senang dengan pengeluaran Anda.
http://en.wikipedia.org/wiki/Setuid#setuid_and_setgid_on_directories
sumber
Sebagian jawaban / kerjakan:
Saya mencoba melakukan hal yang sama, saya memutuskan untuk tidak melawannya dan mencoba metode lain. Apa yang saya coba adalah daftar kontrol akses, untuk mengatur izin default. (Catatan: Anda mungkin harus mengaktifkannya terlebih dahulu).
Di sini testuser digunakan untuk menjalankan tes, dan pengguna normal dapat menghapus hasilnya, tanpa harus menggunakan root (setiap kali).
sumber
Dari RHEL
man chmod
Secara numerik jika saya ingat dengan benar,
chmod 4711 ./dir
menambahkan bit set UID,chmod 2711 ./dir
menambahkan bit set gid untuk6711
pengaturan uid + gid inheritance sesuai dengan demonstrasi di pastebin.Per halaman manual
chmod u+s
==chmod 4XXX
danchmod g+s
==chmod 2XXX
sumber
=755
atau00755
menggunakan angka