即使有 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 运行时结果相同。
  • 阿科Linux
  • 目录还与另一台计算机(Arch)共享,在其中使用二进制文件没有问题。

知道可能存在什么问题吗?

答案1

值得一提的是SELinux,每当我遇到一个我不能很快理解或摸不着头脑的问题时,我都会setenforce 0暂时将 selinux 置于宽容模式,看看这是否是导致问题的原因。

执行二进制文件时权限被拒绝我想到的是不执行作为安装选项。虽然我不确定这是否会导致没有权限消息或者它是否导致什么也没有发生。键入mount并查看安装选项是否不执行存在于二进制文件所在的位置。然后将二进制文件从该安装的设备复制到没有 noexec 安装选项的其他文件夹位置,并查看二进制文件是否有效。

相关内容