首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将密钥文件访问限制为只允许keepassxc可执行文件

将密钥文件访问限制为只允许keepassxc可执行文件
EN

Unix & Linux用户
提问于 2023-02-18 19:34:37
回答 1查看 93关注 0票数 1

我希望能够在我的$HOME中保护一个KDBX密钥文件,这样,除了keepassxc (和根用户)之外,没有人可以访问它,<#>excluding甚至我自己也可以访问它。

我唯一的方法是在可执行文件/S上使用setgid位,并给出相应的密钥文件组成员资格,但不幸的是,GTK+应用程序是GTK+应用程序,它不喜欢setuidsetgid位,一旦检测到就会终止。

要使用一个虚拟的KDBX库和一个密钥文件来设置测试环境:

代码语言:javascript
复制
sudo addgroup keepassxc

sudo chgrp keepassxc $(which -P keepassxc)
sudo chmod g+s $(which -P keepassxc)

# to revert back afterwards:
# sudo delgroup keepassxc
# sudo chgrp root $(which -P keepassxc)
# sudo chmod g-s $(which -P keepassxc)

# create test files
keepassxc-cli db-create -p -k key.file test.kdbx
chmod -rwx,g+r key.file
sudo chown root:keepassxc key.file

# access test
keepassxc --keyfile key.file test.kdbx # should succeed
sha256sum key.file                     # should fail

但是,就像我说的,keepassxc终止于

代码语言:javascript
复制
Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.

(process:102257): Gtk-WARNING **: 19:45:45.157: This process is currently running setuid or setgid.
This is not a supported use of GTK+. You must create a helper
program instead. For further details, see:

    http://www.gtk.org/setuid.html

Refusing to initialize GTK+.

我再也不想胡闹下去了。setu/gid比特的限制是有充分理由的。

你知道我的方法有什么解决办法吗?这样更好吗?是否有一个简单的模板/解决方案提到的助手程序?只有巴什?是否有更好的方法来实现对单个可执行文件的有限文件访问的目标?

EN

回答 1

Unix & Linux用户

发布于 2023-03-04 14:21:01

经过深入研究并感谢@muru,我找到了一个实用的、seemingly安全的解决方案。

使用sudo可以为特定用户和特定命令的主机进行组切换。不需要更改keepassxc二进制文件的权限。

在设置组和密钥文件(请参阅上面问题中的代码块)之后,创建一个新的sudoers文件,如下所示:

代码语言:javascript
复制
# creation
echo "$USER $HOSTNAME=(:keepassxc) NOPASSWD:NOEXEC:NOFOLLOW: /usr/bin/keepassxc" \
| sudo tee /etc/sudoers.d/keepassxc

# validation
sudo visudo -sc /etc/sudoers.d/keepassxc

这允许$USER只使用组成员(:keepassxc)执行命令/usr/bin/keepassxc。命令字符串必须准确,因此,如果您想在某一天将额外的参数传递给keepassxc或更改绝对路径,则必须在sudoers文件中也反映这一点,或者被sudo拒绝。

从非特权的$USER环境启动keepassxc的最后一个命令是sudo -g keepassxc /usr/bin/keepassxc,它很容易成为别名。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/736029

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档