gpt4 book ai didi

linux - systemd - 如何从系统服务访问当前用户名?

转载 作者:行者123 更新时间:2023-12-04 13:35:32 26 4
gpt4 key购买 nike

我想创建系统服务,它(对于每个用户)将在用户登录后立即启动,并在用户的 $HOME 中使用 root 特权执行一些工作。

这是示例服务:

[Unit]
Description= My User service
After=dbus.service

[Service]
StandardError=journal
ExecStart=/bin/sh -c "cp -r $HOME/.config /root/backup/$USER/$(date)/" #<- just a sample root task

[Install]
WantedBy=default.target

但是 $HOME 或 $USER 变量不可用。如何访问它们?

最佳答案

您可以使用 unit specifiers实现这一点:%h代表用户的主文件夹%u获取用户名

[Unit]
Description= My User service
After=dbus.service

[Service]
StandardError=journal
ExecStart=/bin/sh -c "cp -r %h/.config /root/backup/%u/$(date)/" #<- just a sample root task

[Install]
WantedBy=default.target

关于linux - systemd - 如何从系统服务访问当前用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62283235/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com