因此,当您使用 Yubikeys 或智能卡时,这是一个令人头疼的问题,但要禁用 GUI 中的智能卡支持,您必须将其从会话环境中删除。
不幸的是,这会带来一些麻烦,因为即使你按照这个问题的答案,软件包更新有时会覆盖/usr/share/gnome-session/sessions/gnome-login.session
并/usr/share/gnome-session/sessions/ubuntu.session
撤消这些更改。今天这个问题困扰了我很久,我花了将近一个半小时才调试好这个问题,并在我的 22.04 系统上恢复到可用状态。
我的作为一个疯狂的高级用户,解决方案是创建一个之前需要的 SystemD 单元graphical.target
,并在启动过程中强制删除org.gnome.SettingsDaemon.Smartcard
两个文件中的引用作为永久修复,但我想知道是否有办法覆盖会议在启动过程中提到,所以我不有更改某些更新期间被覆盖的文件。
系统从哪里获得什么的定义会议文件使用sessions
,我是否可以覆盖它,以便加载风俗 .session
文件始终永远不会包含我需要删除的行,从而不必采用我的“高级用户”方法?
答案1
我从 IRC 获得了一个我认为可行的答案,它涉及使用dpkg-divert
。
本质上,dpkg-divert
可以保存本地规则,这样当特定文件将被包覆盖时,我可以告诉它将文件存储在其他地方。
为此...
sudo dpkg-divert --divert /usr/share/gnome-session/sessions/gnome-login.session.dist --rename /usr/share/gnome-session/sessions/gnome-login.session
... 是给我使用的命令。它将/usr/share/gnome-session/sessions/gnome-login.session
写入重定向到/usr/share/gnome-session/sessions/gnome-login.session.dist
,从而保留我的登录会话设置,这样我的系统就不会崩溃。
从那里,我只需复制一份gnome-login.session.dist
,gnome-login.session
系统将不再覆盖我想要在每次更新中保持相同的文件,而它将继续保留gnome-login.session
我的更改(理论上)。
感谢 IRC 聊天提供的解决方案!