파티션이 "noexec"로 마운트되었는지 확인하는 방법은 무엇입니까?

파티션이 "noexec"로 마운트되었는지 확인하는 방법은 무엇입니까?

현재 를 사용하고 있습니다 grep '\s/location/\s.*noexec' /proc/mounts.
(이것을 확인하는 방법이 맞나요?)

답변1

모든 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)

답변2

Linux에서 실행한다고 가정하면 문제가 되지 않습니다. noexec쉼표 사이나 열의 시작이나 끝 부분을 확인하는 것이 더 안정적입니다.

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

이것은 awk에서 더 명확할 수 있습니다.

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

관련 정보