由于权限/所有权问题,无法在 Linux Mint 上运行文件

由于权限/所有权问题,无法在 Linux Mint 上运行文件

我在 Windows 10 上使用 VirtualBox 6.0.6 在 Linux Mint 中工作。我使用带有编程环境的 USB 驱动器(Portacle)。它包含一个可执行文件(portacle.desktop)。我发现自己无法运行该文件。总是弹出一个窗口:

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

单击“仍然启动”或“标记为受信任”没有任何效果。原来是文件选项“允许将文件作为程序执行”关闭了。然而,当我打开它时,它立即自行关闭。所有者是“mint”,更改它会导致“无法更改组。您没有更改“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

答案1

问题是 USB 驱动器上的可执行文件无法使用当前mount选项(这些选项是您未自行设置的默认选项)执行。此外,虚拟机 (VM) 内的根/主文件系统没有足够的空间来复制文件并在那里执行它们。

因此,您的选择是:

  1. 重新安装您的 USB 驱动器以允许执行文件;和
  2. 增加硬盘空间以便能够复制程序及其文件

广告 1 -您的mount命令显示 USB 驱动器已安装在,/media/mint/3424-9F51并且它包含showexec阻止执行的选项。在这种情况下命令

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

(以 root 身份运行,例如 prepend sudo)应该会带来所需的结果。请注意,该文件系统仍然不是 Linux 文件系统,您可能会遇到其他问题,例如文件名区分大小写。

广告 2 -为了调整虚拟机中的磁盘大小,您需要

(a) 在虚拟机关闭时使用来自主机的适当命令调整模拟硬盘(通常是“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) 将文件复制到新增加的 root/home 分区,例如

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

然后找到您的文件/home/mint/portacle-linux并尝试从那里开始工作。

除了 2 (a) 到 (c) 之外,您还可以向虚拟机添加额外的磁盘并将其用作分区/home,从而腾出空间来继续执行 (d)。这会更容易设置。如果您需要这方面的说明,请告诉我们。 (您需要复制/移动以前的所有文件,/home除非可以“重新开始”。)

答案2

这可能会晚一天并且少一美元。但是,我在 Mint 19.3 上遇到了类似的问题(“允许将文件作为程序执行”已关闭。但是,当我打开它时,它立即自行关闭。)它在尝试运行 .jar 程序时发生我的USB。我解决这个问题的方法是将 .jar 程序从 USB 复制到我的 Documents 文件夹。当我点击它时它立即执行。希望这可以帮助。

相关内容