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
列出已安装的 snaptail -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 --verbose
snap info --verbose
每次快照运行grep --color=never -E 'name|confinement'
获取所有行包含name
或confinement
不显示颜色