Como verificar se uma partição está montada como 'noexec'?

11

Atualmente, estou usando grep '\s/location/\s.*noexec' /proc/mounts .
(Isso é uma maneira correta de verificar isso?)

    
por user 17.09.2013 / 16:53

2 respostas

11

Você deve usar o comando mount (8), que está disponível imediatamente em todos os sistemas Linux e UNIX.

Se você executar mount sem nenhum argumento adicional, ele listará todas as partições atualmente montadas em seu sistema, tipo de sistema de arquivos e quaisquer opções de montagem, como noexec , rw ou nosuid . / p>

Por exemplo:

% 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)
    
por 17.09.2013 / 17:13
4

Supondo que você esteja executando isso no Linux, sim, tudo bem. Seria um pouco mais robusto verificar se noexec está entre vírgulas ou no início ou no final de sua coluna.

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

Isso pode ser mais claro no awk:

awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'
    
por 18.09.2013 / 02:40

Tags