允许用户运行 backintime。我通常在 ubuntu 上以下列方式运行 backintime-kde:
sudo su
ssh-agent bash
backintime-kde4 --config /root/.config/backintime/config --profile-id 1
这是我发现的唯一适用于我的系统的方法。特别是
sudo backintime-kde4
和
kdesudo backintime-kde4
不管用。
我想允许没有运行权限的普通用户sudo su
也执行 backintime。我能否以某种方式从命令中创建一个 shell 脚本,任何用户都可以执行该脚本,这样他最多只需输入自己的密码(也可能是 ssh 密钥的密码)。
请不要建议使用其他方式运行 backintime。我只是寻找一种与上述方法等效的方法(这样 backintime 就可以以相同的测试方式运行)。但是用户应该能够在不获得一般 root 权限的情况下运行它。
答案1
似乎存在多个问题:
1.错误 #1276348
ssh-agent
backintime-kde
版本中缺少<= 1.0.34
。请安装此补丁和sudo patch /usr/bin/backintime-kde4 < backintime-kde4.diff
2.sudo
对比kdesudo
sudo
沒有變化$HOME
但kdesudo
有變化。
$ sudo env | grep ^HOME
HOME=/home/germar
$ kdesudo env | grep ^HOME
HOME=/root
BackInTime 需要与 Gnome 一起启动kdesudo
(或gksudo
在 Gnome 上启动)。这也是 BIT 没有自动找到您的配置的原因。
3. 权限混乱
您可能弄乱了权限。
/home/<USER>/.config/backintime/
并且/home/<USER>/.local/share/backintime/
应该只由<USER>
/root/.config/backintime/
并且/root/.local/share/backintime/
只能由 root 拥有和写入
4. 使各种用户能够以 root 身份运行 BackInTime
首先:这是非常危险的,我不建议这样做!
您的用户将拥有整个系统的写权限。他们可以更改每个配置、监视其他用户的主文件夹并破坏整个系统。这将破坏 Linux 的每个安全概念。
你应该为每个用户配置 BackInTime,这样他们就只需备份自己的主页。这样他们就根本不需要 root 权限,你和我就可以高枕无忧了 ;-)
如果你仍想这样做,你可以创建一个新组sudo addgroup backintime
并将你的用户添加为成员sudo adduser <USER> backintime
。然后将此行添加到/etc/sudoers
%backintime ALL=NOPASSWD: /usr/bin/backintime-kde4
注销并登录以<USER>
激活组成员身份,您应该能够运行kdesudo -c /usr/bin/backintime-kde4
而无需输入密码。但再次:不要这样做
免责声明:我是 BackInTime 开发团队的成员