AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 388840
Accepted
cadrian
cadrian
Asked: 2012-05-15 03:35:12 +0800 CST2012-05-15 03:35:12 +0800 CST 2012-05-15 03:35:12 +0800 CST

XDG_RUNTIME_DIR 的默认值好吗?

  • 772

XDG 基本目录规范是一个非常有趣的用户目录规范。它还提供了良好的默认值,除了XDG_RUNTIME_DIR.

现在我正在编写一个需要创建命名管道的软件。它是一个针对每个用户的客户端-服务器框架(服务器有一个 FIFO,每个客户端有一个 FIFO)。

如果XDG_RUNTIME_DIR未定义,我目前正在使用每个用户的子目录/tmp——但它不能确保所有指定的条件(即以“目录的生命周期必须绑定到正在登录的用户……”开头的段落)

够/tmp/myserver-$USER好吗?

编辑

我在其他地方看到了一些建议:

  • .非常不令人满意(至少因为它不是绝对路径)。
  • 我也看到了/var/run/user/$USER——还不错,但是那个目录不存在(至少在我运行 Debian测试的机器上是这样)
directory desktop defaults
  • 3 3 个回答
  • 30734 Views

3 个回答

  • Voted
  1. go2null
    2015-10-10T13:09:40+08:002015-10-10T13:09:40+08:00

    SystemD/run/user/$USER有点强制性。

    http://www.freedesktop.org/software/systemd/man/file-hierarchy.html

    非特权写访问

    非特权进程通常缺乏对大部分层次结构的写访问权。

    普通用户的例外是/tmp, /var/tmp,/dev/shm以及用户的主目录$HOME(通常在下面找到/home)和运行时目录$XDG_RUNTIME_DIR(在下面找到/run/user),它们都是可写的。

    仅适用于非特权系统进程/tmp,/var/tmp并且/dev/shm是可写的。如果非特权系统进程需要/var或中的私有可写目录/run,建议在守护程序代码中删除特权之前创建它,在引导期间通过 tmpfiles.d(5) 片段创建它,或者通过RuntimeDirectory= 服务单元的指令创建它(有关详细信息,请参阅 systemd.unit(5))。

    • 9
  2. Best Answer
    chutz
    2012-05-24T10:08:45+08:002012-05-24T10:08:45+08:00

    /tmp许多程序已经以类似的方式使用它。在我的系统上,我可以看到/tmp/orbit-$USER(由 Gnome 的 ORBit2 使用)和/tmp/.X11-unix/(Xorg 和 X11)目录,其中包含大量管道、嗯、套接字。我相信还有其他人,所以我看不出你在做什么。请做好准备,因为它是一个世界可写位置,恶意进程可以劫持该位置(在写入之前验证权限)。

    我也可以向$TMPDIR那些使用pam_mktemp的人推荐,因为这个目录只能由用户访问。

    • 6
  3. Selivanov Pavel
    2012-05-29T08:40:34+08:002012-05-29T08:40:34+08:00

    使用唯一 ID 创建目录 /tmp/service-$USER.id。例如,在 shell 中:

    mktemp -d /tmp/service-"$USER".XXX
    
    • 2

相关问题

  • 如何计算目录中的所有子文件夹?

  • 如何使用 rsync 保持完整路径?

  • 网站目录结构的良好约定是什么?

  • 是否可以使网络驱动器显示为文件夹?

  • 是否有一个很好的总结,说明 Linux 安装中每个主要文件夹中应该包含哪些内容?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve