我需要检索所有用户的$XDG_CONFIG_HOME,$XDG_RUNTIME_DIR和$XDG_DATA_HOME.

我尝试:

sudo -Eiu user printenv | grep XDG_CONFIG_HOME

但是我什么也没得到.

如果我使用用户帐户登录,则使用简单命令:

printenv | grep XDG_CONFIG_HOME

工作正常.

我如何?

解决方法:

TLDR,这些变量在sudo情况下不可用,有些甚至在标准登录情况下甚至无法设置.

在我的Linux系统(debian 8)上,使用pam模块pam_systemd初始化用户会话时,定义了一些XDG变量.手册页中记录了定义为要初始化的变量,但其中包括XDG_RUNTIME_DIR.

此模块仅在登录情况下加载-即我需要ssh到系统,或通过控制台/ gui登录以通过pam_systemd模块初始化要初始化的用户会话.

在su或sudo情况下不会加载此模块.

结果,当您执行sudo模拟用户时,未设置此变量.

其他XDG变量仅在用户实际通过GUI登录时才适用.我没有在使用的GUI上设置这些变量,但是the docs for XDG variables指定了如果未设置它们应该默认使用的变量. XDG_CONFIG_HOME的默认值为$HOME / .config,XDG_DATA_HOME的默认值为$HOME / .local / share.

因此,您应该只期望在交互式登录用例中设置这些变量,而不是通过非交互式用例设置-sudo将被有效地指定为非交互式用例,即使您可以使用它进行交互式操作.

这些值是非常模板化的-例如我系统上的XDG_RUNTIME_DIR是/ var / run / UID,并且按照手册页的说明,在我上次注销后仍然无法生存;因此它不是放置永久文件的地方.

除非您作为用户更改这些值,否则我希望XDG文档the KDE compliance页面中指定的默认值将被使用.可能还有其他一些,但是我只是选择了KDE遵从性,因为它在系统管理指南中被称为.

标签:sudo,linux

来源: https://codeday.me/bug/20191120/2045677.html

xdg在Linux中的用法,linux-如何使用sudo获取XDG变量?相关推荐

  1. linux中gawk用法,Linux - gawk 命令

    gawk 是 awk 的 GUN 版 =========================================== 是一种<模式扫描和处理>语言.它搜索一个或多个文件,查看这些文 ...

  2. linux中xargs用法,Linux中xargs的用法

    xargs 大 多数 Linux 命令都会产生输出:文件列表.字符串列表等.但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件.ascii 文本 ...

  3. linux中mfsort用法,Linux命令――sort

    sort以文件的每一行为一个单位,相互比较,比较原则是从首字符向后,依次按ASCII码值进行比较,最后将他们按升序输出. 用法:sort [OPTION]... [FILE]... 参 数: -b   ...

  4. linux中pss用法,[Linux] Memory: VSS/RSS/PSS/USS

    Terms VSS- Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS- Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS- Prop ...

  5. Linux中 print用法,linux之find中的-print0和xargs中-0用法

    默認情況下, find 每輸出一個文件名, 后面都會接着輸出一個換行符 ('\n'), 因此我們看到的 find 的輸出都是一行一行的: [bash-4.1.5] ; ls -l total 0 -r ...

  6. Linux中find用法整理

    一.Linux中find常见用法示例 ·find    path    -option    [    -print ]    [ -exec    -ok    command ]    {} /; ...

  7. Linux中EOF用法

    Linux中EOF用法 理解:EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d就代表EOF. EOF一般会配合c ...

  8. Linux中wait用法

    Linux中wait用法: 系统中的僵尸进程都要由wait系统调用来回收. 函数原型: #include<sys/types.h> #include<sys/wait.h> p ...

  9. Linux中新建用户用不了sudo命令问题:rootr is not in the sudoers file.This incident will be reported解决

    Linux中新建用户用不了sudo命令问题:rootr is not in the sudoers file.This incident will be reported解决 参考:https://b ...

  10. Linux中find用法

    Linux中find常见用法示例 ·find   path   -option   [   -print ]   [ -exec   -ok   command ]   {} \; #-print 将 ...

最新文章

  1. 改善FLEX/FLASH性能的小技巧(转)
  2. docker安装redmine步骤
  3. seconds_behind_master监控复制推延的不足及pt-heartbeat改进方法
  4. [BUUCTF-pwn]——inndy_rop
  5. Android简单实现Socket通信,客户端连接服务器后,服务器向客户端发送文字数据
  6. java.lang.StackOverflowError递归的栈溢出错误
  7. 适用于树莓派Raspberry Pi的嵌入式QT平台(二) -- 在Windows下用Qt Creator开发编译Raspberry Qt 5应用程序...
  8. 微软十月补丁星期二值得关注的0day及其它
  9. 《从0到1学习Flink》—— Flink parallelism 和 Slot 介绍
  10. System.IO命名空间
  11. 实战:基于服务端开发和前后端分离开发区别
  12. 表格数据快速转换成SQL语句
  13. Springboot+Vue实现物业管理系统
  14. 热备份冗余技术HSRP
  15. netbeans 插件安装
  16. 16个Javascript的Web UI库、框架及工具包
  17. html扫码支付,WEB端第三方支付接入 - 支付宝 - 扫码支付
  18. merlin 实现中文语音合成基础知识和常见问题汇总
  19. 解析儿童编程中的基本概念与目标
  20. 推荐两个长宽数据互换函数pivot_longer和pivot_wider

热门文章

  1. 抖音直播睡觉一晚赚7.6万,心态崩了
  2. UI设计新手怎么求职 UI面试必备攻略是什么
  3. 深圳学位锁定怎么计算机,【实用】如何查询深圳房子学位是否锁定?(附操作步骤)...
  4. 微生物测序分析LEfSe
  5. 零基础学习CAD机械软件:02课CAD软件的启动和退出
  6. Timer 控件中的Elapsed事件与tick事件的区别
  7. JS_js数组倒序排列、字符串数组转为数字数组,反转数组/字符串/数字
  8. 服务器能不能用普通硬盘,服务器硬盘与普通硬盘之间的区别
  9. 用云原生的思维践行云原生,一切皆服务
  10. WordPress 网站基于REST API 开发“微信小程序”实战