web-dev-qa-db-ja.com

freefilesyncはどのパーミッションで実行されますか?

here のようにwebdavを使用してwebdavフォルダーをマウントしました。このディレクトリをマウントするには、次のコマンドを使用します。

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

ただし、 freefilesync を使用してこのフォルダーを同期しようとすると、次のエラーが表示されます。

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を使用していますが、これは冗長な情報であると想像できます。

UPDATE 5/7/2016:最上位マウントポイントの権限は次のとおりです。

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   8448  1.9  0.2 753820 46684 ?        Sl   11:24   1:05 /home/bruni/Downloads/Software/Linux/FreeFileSync/FreeFileSync

2wayを同期したくありません。

2
Bruni

+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として保存したと仮定しています。

ただし、自動スクリプトからジョブを実行する場合は、明示的または暗黙的に使用する変数がyr実行環境(cronudev、...)で認識されていることを確認してください。

  • $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パスワードを入力する必要がない場合、またはunattendedを実行する場合は、/etc/sudoers.d/およびSudoに移動します。 -ファイル10_userまたは選択した名前を編集します。

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

ここで、adminは、ユーザーと、ルート権限でFreeFileSyncを実行する権限を持つユーザーを含むユーザーグループです。 sudoersルールの文法と構文については、man 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に完全にアクセスできなくなります。後者の場合、thisを使用すれば、夕方にも家に帰り、年中ケーキを食べることができます。何をしているかを確認してください。

上記はプレーンなVanilla 14.04.4 LTSデスクトップでうまくテストされていますが、さらにセキュリティを強化できます賢い。そうすることはそれほど複雑ではありませんが、この質問の範囲外です。
HTH

1
Cbhihe