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


14

현재을 사용하고 grep '\s/location/\s.*noexec' /proc/mounts있습니다.
(이것을 확인하는 올바른 방법입니까?)


1
최신 버전의 Linux에서만 작동하면 괜찮습니다.
jordanm

1
확인 Q / A
dawud

답변:


13

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

5
Linux에서는 /proc/mounts을 선호합니다 mount. /etc/mtab업데이트되지 않은 경우 (예 : /읽기 전용 이므로 ) 출력이 mount최신 상태가 아닐 수 있습니다. 또한 일부 옵션 (not noexec) mount의 경우, 커널 및 마운트 버전의 일부 조합 (예 : atime 관련 옵션)에 대해 잘못된 결과를 가져올 수있는 필터링 된 출력을 제공합니다.
Gilles 'SO- 악의를 멈춰라'

파일 또는 디렉토리가 마운트 된 파티션을 찾으려면-df -P file / goes / here | 꼬리 -1 | cut -d ''-f 1
brainLoop

4

Linux에서 이것을 실행한다고 가정하면 그렇습니다. noexec쉼표 사이 또는 열의 시작 또는 끝에 있는지 확인하는 것이 조금 더 강력합니다 .

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

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

awk -v location="/location" '$2 == location {exit(!($4 ~ /(^|,)noexec($|,)/))} END {exit(2)}'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.