권한이 'x'인 동안에는 스크립트를 실행할 수 없습니다.

권한이 'x'인 동안에는 스크립트를 실행할 수 없습니다.

그러나 다음과 같은 경우 현재 디렉터리에 스크립트가 있습니다.

  1. 허가는-rwxr-xr-x
  2. 스크립트의 #!/bin/bash파일 상단에 shebang이 있습니다.
  3. 내 껍질은/bin/bash
  4. 나는 그것을 사용하여 실행할 수 있습니다bash script.sh

를 사용하여 실행할 수 없습니다 ./script.sh. 그것은 나에게 다음을 제공합니다:

bash: ./script.sh: 권한이 거부되었습니다.

왜 이런 일이 발생하며 해결책은 무엇입니까?

답변1

  • 파일이 "noexec" 옵션으로 마운트된 파일 시스템에 있으므로 실행이 허용되지 않습니다. findmnt -u -T .그러한 경우인지 알아보는 데 사용하십시오 . 루트 권한이 있는 경우 mount -o remount,exec <dir>이 옵션을 제거해야 합니다.

  • 실행은 다음에 의해 허용되지 않습니다.정책(SELinux, SMACK, 아마도 AppArmor). journalctl -n 100및 로 시작하는 시스템 로그를 확인하세요 dmesg. 이를 우회하는 방법(관리자인 경우)은 실제로 사용 중인 MAC 시스템에 따라 다릅니다.

답변2

글쎄요, 찾았어요: "log2ram"이에요

앞서 말했듯이 저는 Raspberry 4에서 Raspbian을 사용하고 있으며 SD 수명을 늘리기 위해 RAM에 로그를 배치했는데 이렇게 되었습니다.

===
pi@R4:~/logs $ cat /etc/log2ram.conf
[...]
PATH_DISK="/var/log;/home/pi/logs"
===

관련 정보