私はresiliosyncをインストールしただけで正常に動作します。デフォルトでは「rslsync」ユーザーを作成します。私のホームディレクトリにすべての同期プロジェクトを含む既定のフォルダがあります。もちろん、現在rslsyncはそのフォルダにアクセスできません。
私のホームディレクトリに「sync」というディレクトリを作成しました。同期ディレクトリには、「dropbox」と「resilio」という2つのフォルダも作成しました。 "resilio"フォルダを "rslsync"が使用する方法で実行されるファイルのデフォルトの場所として使用したいと思います。
ユーザー「rslsync」に、自分のホームディレクトリの「resilio」フォルダへの読み取り、書き込み、および実行アクセスを許可する最良の方法は何ですか?自分のユーザーグループに「rslsync」ユーザーを追加するだけで、必要なすべてのアクセス権を取得できますか?
答え1
プログラムは、パスする必要があるファイルとディレクトリが次のいずれかの条件を満たす場合にファイルにアクセスできます。
- プログラムの実行中にアクセス権を持つユーザーです。
- プログラムの実行中にアクセス権を持つすべてのグループ。
- 誰でもアクセス可能です。
(実際にすべての場合に当てはまるわけではありませんが、ここでは十分近似値です。)
どのユーザーがどのグループのメンバーであるかは表示されません。この情報は、ユーザーがログインしている場合にのみ使用されます。これにより、そのログインセッションのプログラムがこれらのグループとして実行されます。したがって、ユーザーをグループに追加しても問題は解決されません。
ユーザーには、rslsync
そのディレクトリとそのディレクトリにつながるディレクトリチェーン全体へのresilio
アクセスを許可する必要があります。にアクセスするには、/home/liam/sync/resilio
プログラムにディレクトリナビゲーション権限(x
通常のファイルの場合は「実行」を意味する属性)と読み取り権限が必要です。/
/home
/home/liam
/home/liam/sync
/home/liam/sync/resilio
/home/liam/sync/resilio
あなたはそれを使用することができますアクセス制御リスト:
setfacl -m u:rslsync:x /home/liam /home/liam/sync
setfacl -R -m u:rslsync:rx /home/liam/sync/resilio
setfacl -R -d -m u:rslsync:rx /home/liam/sync/resilio
最初の行は、rslsyncが先行ディレクトリを通過できることを保証します。 2行目では、rslsyncがrootにルートを持つディレクトリツリー全体にアクセスできるようにします/home/liam/sync/resilio
。このフラグを持つ3行目は、-d
新しく作成されたファイルのデフォルトACLを設定します。このフラグがないと、rslsyncは新しく作成されたファイルを読み取ることができません。
一部のアプリケーションは、デフォルトのACLよりも制限的なACLを使用してファイルを生成できます。これは特にファイルを別の場所からコピーした場合に発生します。この場合、rslsync はこれらのファイルを読み取ることができません。 rslsyncが常にファイルを読み取ることができるようにする別の方法があります。つまり、/home/liam/sync/resilio
別の権限を使用してツリーの代替ビューを作成することです。あなたはこれを行うことができますファイルシステムバインディング。他のユーザーがbinfsファイルシステムにアクセスできるようにするには、rootとしてインストールする必要があります。次の行を使用できます/etc/fstab
。
bindfs#/home/liam/sync/resilio /var/lib/rslsync/resilio fuse ro,force-user=rslsync,perms=u+rD:go=
答え2
コマンドを使用して、各ファイルとフォルダの権限、所有者、およびグループを確認できますls -al
。
たとえば、次のような応答を受け取ることができます。
-rw-r--r-- 1 user user 148 Aug 26 10:58 a-file
drwxrwxrwx 0 user group 512 Aug 26 10:59 a-folder
各行の先頭にある文字を参照してください。この文字は権限を表します。デフォルトでは、すべてのファイルとフォルダには所有者、グループ、およびその他の権限があります。
- 最初の文字
-
またははd
ファイルかフォルダかを示します。 - 次の3文字は、
rwx
所有者ユーザーの権限に関する情報を提供します。このフォルダのr
読み取り、w
書き込み、実行、または移動に使用されます。x
- 次の3文字はグループの権限を表します。ファイルは所有者とは別のグループに属することができます。
- 最後に、残りの3文字は他人の許可を表します。
ユーザーと同じグループに「rslsync」を追加すると、必要なものよりも多くの権限を付与できます。たとえば、ユーザーが管理者グループに属している場合は、管理タスクを実行したり、個人用ファイルにアクセスする権限を付与したりできます。
ユーザー "rslsync" にrwx
"resilio" フォルダー ( ) へのフル アクセス権を付与するには、ファイルを rslsync グループに割り当て、そのグループにフォルダーへのフル アクセス権を付与するだけです。 rslsyncグループの名前が同じ場合:
# change the group of the resilio folder
$ chgrp -R rslsync resilio
# set full access to the group
$ chmod -R g+rwx resilio
このようにして、ユーザーはファイルの所有者として保持され、「rslsync」はフォルダとファイルへのフルアクセス権を持ち、グループは互いに分離されたままになります。