如何列出快照及其限制?

如何列出快照及其限制?

snap list显示所有快照,但未列出限制模型。是否可以列出所有快照及其信息和限制?

答案1

在网上很难找到。看起来这还不是官方的做法。

一些开发人员在 snapcraft 论坛上分享了如何使用 shell 脚本来执行此操作。

您可以在这里查看: https://forum.snapcraft.io/t/reliable-way-of-detecting-snap-confinement-mode/8896

否则,我发现它实际上显示在注释列中的“快照列表”响应中。如下所示:

在此处输入图片描述

仅了解默认设置,Snap 手册页说明了安装命令:

“install命令会在系统中安装指定的snap。如果没有其他选项,snap会按照稳定通道进行安装,严格的安全监禁”。

答案2

您可以使用它snap list来获取所有快照的列表,然后运行snap info --verbose它们获得限制水平

为了对所有已安装的 snap 进行上述操作,你可以使用一些管道:

snap list | tail -n +2 | cut -d' ' -f1 | xargs -i bash -c 'echo -n "{} = " && snap info --verbose {} | grep confinement  | rev | cut -d" " -f1  |rev'

上述命令执行以下操作:

  • snap list列出已安装的 snap
  • tail -n +2删除标题,这样你就只有实际的快照
  • cut -d' ' -f1只保留快照的名称
  • args -i bash -c '<cmd> {}'<cmd>为每个参数运行命令,同时{}用参数 进行替换
    • 因此,对于每个快照,它都会运行命令
      echo -n "{} = " && snap info --verbose {}|grep confinement|rev|cut -d" " -f1|rev
      ,但使用快照名称而不是{}
    • echo -n "{} = "只打印 snap 的名称,后面跟着=(和空格),没有换行符。这确保你知道哪个 snap 属于哪个限制
    • snap info --verbose {}|grep confinement|rev|cut -d" " -f1|rev打印给定 snap 的限制
      • snap info --verbose显示有关您的快照的信息,其中包括一行关于禁闭的信息
      • grep confinement给你与限制线
      • rev|cut -d" " -f1|rev 获取该行的最后一个单词其中包含禁闭

或者你可以这样做

snap list | tail -n +2 | cut -d' ' -f1 | xargs snap info --verbose | grep --color=never -E 'name|confinement'

这将执行以下操作:

  • snap list | tail -n +2 | cut -d' ' -f1获取所有 snap 名称,与之前相同
  • xargs snap info --verbosesnap info --verbose每次快照运行
  • grep --color=never -E 'name|confinement'获取所有行包含nameconfinement不显示颜色

相关内容