777 권한이 있어도 바이너리 반환 권한이 거부되었습니다.

777 권한이 있어도 바이너리 반환 권한이 거부되었습니다.
[adela@zen ~]$ dir-open /
bash: /home/adela/.toolbox/bin/dir-open: Permission denied

이상한 점은 디렉터리와 바이너리 모두 777 권한을 가지고 있고 바이너리를 실행할 수 없다는 것입니다 - 권한이 거부되었습니다.

~/.toolbox/bin 디렉토리, ls -la가 있습니다:

drwxrwxrwx  3 adela adela 4,0K 14. zář 18.34 ./
drwxr-xr-x 10 adela adela 4,0K  5. zář 19.38 ../
-rwxrwxrwx  1 adela adela  302 22. čen 16.13 checksum*
-rwxrwxrwx  1 adela adela 1,3K 18. čec 17.21 dir-open*
-rwxrwxrwx  1 adela adela  937  4. zář 21.05 nas-open*
-rwxrwxrwx  1 adela adela  300  1. úno  2021 po-to-xls*
-rwxrwxrwx  1 adela adela  565  8. zář 16.18 run*
drwxrwxrwx  2 adela adela 4,0K  5. zář 19.03 .stfolder/
-rwxrwxrwx  1 adela adela 1,8K  1. úno  2021 subtitles-renamer*
-rwxrwxrwx  1 adela adela  104 31. říj  2021 terminal*
-rwxrwxrwx  1 adela adela  300  1. úno  2021 xls-to-po*

bin 디렉터리는 $PATH에도 있습니다.

/home/adela/.toolbox/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/var/lib/snapd/snap/bin

스크립트 중 하나의 내용:

#!/bin/bash
# This script makes file manager open just right.
# called from ~/.toolbox/bin/dir-open

APP="pcmanfm"
DESKTOP=$(wmctrl -d | grep \* | awk '{print $1}') # number of active desktop
APPSINDESKTOP=$(wmctrl -l -x | awk -v var="$DESKTOP" '($2 == var)' | grep -ic "$APP") # windows in active desktop
WIN=$(wmctrl -l -x | awk -v var="$DESKTOP" '($2 == var)' | grep -i "$APP" | awk '{print $1}' | sed -n "1p")
window=$(printf "%d\n" $WIN)


if [[ $APPSINDESKTOP -ge 1 ]]; then
  ACTIVE=$(xdotool getwindowfocus)
  if [[ $ACTIVE = $window ]]; then
    if [ -z "$1" ]; then
        xdotool windowminimize $window # Minimize
      else
        $APP "$1" # New tab
    fi
  else
    if [ -z "$1" ]; then
      wmctrl -ia $WIN # Focus window
    else
      $APP "$1" # New tab
      wmctrl -ia $WIN # Focus window
    fi
  fi
else
  echo "no app on active desktop"
  if [ -z "$1" ]; then
      $APP "/mnt/DATA" -n & # add -n for pcmanfm
    else
      $APP "$1" -n & # add -n for pcmanfm
  fi
  sleep 0.3
  WIN=$(wmctrl -l -x | awk -v var="$DESKTOP" '($2 == var)' | grep -i "$APP" | awk '{print $1}' | sed -n "1p")
  wmctrl -i -R $WIN -e 0,$POSX,$POSY,$WIDTH,$HEIGHT # Resize existing window
  # wmctrl -ia $WIN # Focus window
fi

echo -e "Debug info: \n\nDesktop: $DESKTOP \nWindow: $WIN \nAppsInDesktop: $APPSINDESKTOP\n"

exit 0
  • 어떤 바이너리도 실행되지 않습니다.
  • sudo로 실행해도 결과는 동일합니다.
  • 아르코리눅스
  • 디렉토리는 바이너리를 사용하는 데 아무런 문제가 없는 다른 컴퓨터(Arch)와도 공유됩니다.

문제가 무엇인지 아시나요?

답변1

그것을 언급할 가치가 있다SELinux, 빨리 이해하지 못하거나 알아낼 수 없는 문제에 직면할 때마다 setenforce 0일시적으로 selinux를 허용 모드로 전환하여 그것이 문제의 원인인지 확인합니다.

하지만바이너리 파일을 실행하는 동안 권한이 거부되었습니다.내가 생각한 건실행되지 않음설치 옵션으로. 이것이 이어질지 확실하지 않지만허가가 거부되었습니다메시지를 보내거나 아무 일도 일어나지 않는 경우. mount설치 옵션을 입력 하고 확인하세요.실행되지 않음바이너리가 있는 곳에 존재합니다. 그런 다음 noexec 설치 옵션 없이 탑재된 장치의 바이너리를 다른 폴더 위치에 복사하고 바이너리가 작동하는지 확인하세요.

관련 정보