현재을 사용하고 grep '\s/location/\s.*noexec' /proc/mounts
있습니다.
(이것을 확인하는 올바른 방법입니까?)
답변
모든 Linux 및 UNIX 시스템에서 즉시 사용할 수있는 mount (8) 명령을 사용해야합니다.
당신이 실행하는 경우 mount
추가 인수없이, 그것은 모두가 현재 시스템에 파티션을 마운트 된 파일 시스템 유형을 나열합니다 및 같은 옵션을 장착 noexec
, rw
또는를 nosuid
.
예 :
% 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)
답변
Linux에서 이것을 실행한다고 가정하면 그렇습니다. noexec
쉼표 사이 또는 열의 시작 또는 끝에 있는지 확인하는 것이 조금 더 강력합니다 .
grep -Eq '^[^ ]+ /location [^ ]+ ([^ ]*,)?noexec[, ]' /proc/mounts
이것은 awk에서 더 명확 할 수 있습니다.
awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'