Bir bölümün 'noexec' olarak monte edilip edilmediğini nasıl kontrol edebilirim?


14

Şu anda kullanıyorum grep '\s/location/\s.*noexec' /proc/mounts.
(Bunu kontrol etmenin doğru bir yolu var mı?)


1
Sadece Linux'un yeni sürümlerinde çalışmanız gerektiği sürece sorun değil.
jordanm

1
Bu Q / A'yı kontrol edin
dawud

Yanıtlar:


13

Tüm Linux ve UNIX sistemlerinde kutudan çıkan mount (8) komutunu kullanmalısınız.

Eğer çalıştırırsanız mountherhangi bir ek argüman olmadan, tüm şu anda sisteminizde bölümleri monte dosya sistemi türünü listeler ve herhangi gibi seçenekleri, montaj noexec, rwya nosuid.

Örneğin:

% mount
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
/dev/sda1 on /boot type ext4 (rw,relatime,data=ordered)
/dev/mapper/basement-root on / type ext4 (rw,relatime,data=ordered)

5
Linux'ta /proc/mountstercih etmenizi öneririm mount. Eğer /etc/mtabgüncellenmemiştir (çünkü örneğin /salt okunur), çıkış mountyukarı güncel olmayabilir. Ayrıca, bazı seçenekler için (değil noexec), mountçekirdek ve bağlama sürümlerinin bazı kombinasyonları için yanıltıcı olabilecek filtrelenmiş çıktı verir (örneğin, atime ile ilgili seçeneklerle).
Gilles 'SO- kötü olmayı kes

Dosya veya dizinin üzerinde bulunduğu bölümü bulmak için - df -P file / goes / here | kuyruk -1 | kes -d '' -f 1
brainLoop

4

Bunu Linux'ta çalıştırdığınızı varsayarsak, evet, bu iyi. noexecVirgül arasında veya sütunun başında veya sonunda olup olmadığını kontrol etmek biraz daha sağlam olacaktır .

grep -Eq '^[^ ]+ /location [^ ]+ ([^ ]*,)?noexec[, ]' /proc/mounts

Bu awk ile daha açık olabilir:

awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'
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.