freefilesync 在什么权限下运行?

freefilesync 在什么权限下运行?

我已经按照说明使用 webdav 安装了一个 webdav 文件夹这里。为了挂载此目录,我使用以下命令:

sudo mount -t davfs -o uid=bruni,gid=users https://serveraddress /home/bruni/mountpoint

但是,当尝试使用同步此文件夹时免费文件同步我收到以下错误:

Cannot set directory lock for "/path/to/mountpoint".

Cannot write file "/path/to/mountpoint/sync.ffs_lock".

Error Code 13:Permission denied (open)

请注意,该问题与 TLS 加密无关,因为当我不使用 https 时(当我在办公室时)也会出现该问题。

另请注意我能够从终端甚至 nautilus 在已安装的目录中创建文件所以我的问题是,为什么 freefilesync 不能用,我该如何解决这个特定问题?

我使用 Ubuntu 16.04 和 Freefilesync 8.2,但我可以想象这是多余的信息。

更新日期:2016/5/7: 以下是顶级挂载点的权限:

ls -l
drwxr-xr-x 16 bruni users    488 Jun 14 14:19 Infolog

此处应在目录中创建锁定文件

ls -l
drwxr-xr-x 16 bruni users 0 May  31 22:07 id54843

id54843 是一个目录,位于 Infolog 深处。

Freefilesync 正在以 bruni 身份运行

bruni   8448  1.9  0.2 753820 46684 ?        Sl   11:24   1:05 /home/bruni/Downloads/Software/Linux/FreeFileSync/FreeFileSync

我不想进行双向同步。

答案1

+1:有趣的问题。

Freefilesync 可能需要特权来备份其解析的卷中的某些文件。据我所知,保留文件的所有权sudo并不好。rwx

如果从 cli 执行它,正确的语法是:

$ sudo -i -g bruni /usr/bin/FreeFileSync "${HOME}"/.FreeFileSync/backup-jobref.ffs_batch 2> "${HOME}"/.FreeFileSync/backup-jobref.ffs_log

以上假设您在 FreeFileSync 的 GUI 中先前定义了一个批处理作业并将其保存为:"${HOME}"/.FreeFileSync/backup-jobref.ffs_batch

但是,如果您打算通过自动脚本运行该作业,请确保您明确或隐式使用的变量在您的执行环境中是已知的(cron,,udev...):

  • $HOME
  • $DISPLAY
    不要在脚本中留下未定义的内容,例如:
    # define local default display and pass it on to any child process
    DISPLAY=:0 ; export DISPLAY

DISPLAY=:0 ; export DISPLAY如果您在执行 FreeFileSync 的远程实例时对远程卷进行远程管理,则可能不适合您的用例。在这种情况下,您必须适当地定义 DISPLAY。

如果你不想sudo每次运行备份作业时都要输入密码,或者你希望它运行无人看管,然后转到:/etc/sudoers.d/并使用 sudo 编辑该文件10_user或您选择的任何名称:

%admin yr_host = NOPASSWD: /usr/bin/FreeFileSync

包含admin您和您授权以 root 权限运行 FreeFileSync 的用户组。请访问man sudoers以了解sudoers规则的语法和句法。

更多细节sudoers超出了 OP 的范围,但为了更完整一点,只加 2 条评论。

1)规则模式sudoers

# who where = tags:(as_whom) what
# "who" is either a group or a collection of users
# "where" is a host or a collection of hosts
# "tags" is the permission granted to "what" is being allowed
# "as_whom" specifies under whose guise the cmd(s) are executed;
#   can be a user "user:" or a group ":group" 
#   or a user and group "user:group"
# "what" is a cmd or a collection of cmds

2)警告:弄乱sudoers可能会让用户微笑,或者造成安全黑洞,或者使自己和其他人sudo完全无法访问。在后一种情况下,晚上你仍然可以回家吃蛋糕。确保​​你知道自己在做什么。

上面的测试在普通的 14.04.4 LTS 桌面上对我来说很好,但是安全方面需要进一步加强。这样做并不复杂,但又超出了这个问题的范围
。HTH

相关内容