我想编写一个软件,该软件必须将文件保存在 中/usr/share/xy/
。该软件将使用 和 写入和读取这些数据fprintf()
。fscanf()
目录的所有者/xy/
是 root,组也是。现在我在文件sudo
中使用 启动该软件.desktop
。
现在我的问题是,是否可以不输入密码启动它们。软件在后台保存数据时需要多大的操作?
谢谢 再见 Nick
答案1
你的程序不应该/usr/share/xy/
默认使用 来保存文件。相反,它应该使用$XDG_DATA_HOME/xy
($XDG_DATA_HOME
如 XDG 基础目录规范)。
这避免了您的权限问题和多用户环境中的问题。
答案2
从安全角度来看,以标准用户身份写入根拥有的文件夹的概念是一个坏主意。
应用程序绝不应该写入/usr/share/xy
。
标准应用程序应该写入用户文件夹 - 类似于~/.config/xy
或~/.cache/xy
堆栈溢出有一个用于查找主文件夹的问答 - 您只需要strcat
.config 或 .cache,测试子文件夹 xy 是否存在,如果不存在,则在写入文件夹之前创建该文件夹。