Permissions

由於權限/所有權問題,無法在 Linux Mint 上執行文件

  • September 23, 2020

我在 Windows 10 上使用 VirtualBox 6.0.6 在 Linux Mint 中工作。我使用帶有程式環境的 USB 驅動器(Portacle)。它包含一個執行檔 (portacle.desktop)。我發現自己無法執行該文件。總是彈出一個視窗:

The application "portacle.desktop" has not been marked as trusted (executable).

點擊“仍然啟動”或“標記為受信任”沒有任何效果。原來,文件選項“允許將文件作為程序執行”已關閉。但是,當我打開它時,它立即自行關閉。所有者是“薄荷”,更改它會導致“無法更改組。您沒有更改 ‘portacle.desktop’ 組所需的權限”,即使以 root 身份執行也是如此。很多人都遇到過類似的問題,問到這裡,被告知要更改屬性/權限。更改權限並沒有解決問題。更改所有者(即使以 root 身份)給出了錯誤:

chown: changing ownership of 'portacle.desktop': Operation not permitted

試圖查看(或更改)文件屬性導致:

lsattr: Inappropriate ioctl for device while reading flags on portacle.desktop

搜尋,我發現幾個 同樣的問題,但他們的解決方案是特定的解決方法不適用於我的情況。我還嘗試將文件從 USB 驅動器移動到主驅動器。除了像文件夾突然被視為 140 TB 大小這樣的奇怪問題外,ioctl 問題並沒有消失,一切都或多或少地沿著相同的路線進行。

文件完整路徑:/media/mint/3424-9F51/real-lisp/portacle-linux/portacle.desktop

輸出mount | grep /dev

root@mint:/media/mint/3424-9F51/real-lisp/portacle-linux# mount | grep /dev
udev on /dev type devtmpfs (rw,nosuid,relatime,size=1998648k,nr_inodes=499662,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
/dev/sr0 on /cdrom type iso9660 (ro,noatime,nojoliet,check=s,map=n,blocksize=2048)
/dev/loop0 on /rofs type squashfs (ro,noatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
/dev/sda1 on /media/mint/3424-9F51 type vfat (rw,nosuid,nodev,relatime,uid=999,gid=999,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

輸出df

Filesystem     1K-blocks    Used Available Use% Mounted on
udev             1998648       0   1998648   0% /dev
tmpfs             403956    1092    402864   1% /run
/dev/sr0         1927648 1927648         0 100% /cdrom
/dev/loop0       1845760 1845760         0 100% /rofs
/cow             2019772   49900   1969872   3% /
tmpfs            2019772       0   2019772   0% /dev/shm
tmpfs               5120       4      5116   1% /run/lock
tmpfs            2019772       0   2019772   0% /sys/fs/cgroup
tmpfs            2019772       4   2019768   1% /tmp
tmpfs             403952      28    403924   1% /run/user/999

輸出free

             total        used        free      shared  buff/cache   available
Mem:        4039548     1201060     1581880      158384     1256608     2445112
Swap:             0           0           0

輸出du -ks /media/mint/3424-9F51/real-lisp/portacle-linux

2496752 /media/mint/3424-9F51/real-lisp/portacle-linux

問題是您的 USB 驅動器上的執行檔無法使用目前mount選項(這是您自己沒有設置的預設選項)執行。此外,虛擬機 (VM) 中的根/主文件系統沒有足夠的空間來複製文件並在那裡執行它們。

因此,您的選擇是:

  1. 重新掛載您的 USB 驅動器以允許執行文件;和
  2. 增加您的硬碟空間,以便能夠複製程序及其文件

**ad 1 -**您的mount命令顯示 USB 驅動器已安裝在,/media/mint/3424-9F51並且它包含showexec阻止執行的選項。在這種情況下,命令

mount -o remount,exec /media/mint/3424-9F51

(以 root 身份執行,例如 prepend sudo)應該會帶來預期的結果。請注意,文件系統仍然不是 Linux 文件系統,您可能會遇到其他問題,例如文件名區分大小寫。

**ad 2 -**為了調整虛擬機中的磁碟大小,您需要

(a) 在 VM 關閉時,使用來自主機的適當命令調整模擬硬碟(通常是“qcow2”文件)的大小,例如

qemu-img resize /var/lib/libvirt/images/linux_mint.qcow2 +2GB

(再次以 root 身份執行,替換您的文件名)這將增加 2 GB 虛擬硬碟空間。您至少需要 2496752k-1969872k 略多於 514 MB 才能複製文件,但硬碟將已滿;如果您想在將來使用該程序、保存文件和更新系統,請至少多使用 1 GB,可能更像 10 GB。

(b) 再次從 VM 外部調整模擬硬碟的系統分區大小。由於我不了解您在虛擬機中不尋常的分區設置(/cow顯然在模擬 DVD 上作為覆蓋文件系統),這需要更多的工作來弄清楚。

(c) 在我們剛剛調整大小的分區上調整文件系統的大小 - 這再次取決於您的設置

(d) 將文件複製到新增加的根/主分區,例如

rsync -uav /media/mint/3424-9F51/real-lisp/portacle-linux /home/mint/

然後在其中找到您的文件/home/mint/portacle-linux並嘗試從那裡開始工作。

作為 2 (a) 到 (c) 的替代方法,您可以向虛擬機添加一個額外的磁碟並將其用作/home分區,從而為 (d) 提供可用空間。這將更容易設置。如果您需要相關說明,請告訴我們。/home(除非可以“重新開始”,否則您需要複製/移動以前的所有文件。)

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