Permissions

即使有 777 權利,二元退貨許可也被拒絕

  • September 14, 2022
[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) 共享,其中使用二進製文件沒有問題。

知道什麼可能是錯誤的嗎?

值得一提的是selinux,每當我遇到一個我不能很快理解或摸不著頭腦的問題時,我都會setenforce 0暫時將 selinux 置於許可模式,看看是否是導致問題的原因。

但是在執行二進製文件時權限被拒絕,我想到的是noexec作為掛載選項。儘管我不確定這是否會導致權限被拒絕消息,或者是否會導致什麼都沒有發生。鍵入並查看noexecmount的掛載選項是否存在於二進製文件所在的位置。然後將二進製文件從該安裝的設備複製到其他沒有 noexec 安裝選項的文件夾位置,然後查看二進製文件是否有效。

引用自:https://unix.stackexchange.com/questions/717289