sync
ちょうどその場所にという新しいディレクトリを作成しました/home/sync
。私はユーザーとしてディレクトリを作成しliam
、chown -R rslsync:rslsync /home/sync
。rslsync
私はグループliam
に私を追加しました。rslsync
test
次に、nowというディレクトリに別のフォルダを作成しました/home/sync/test
。rslsync
フォルダの場所を指定しようとすると、そのフォルダへの書き込み権限がないことを示す/home/sync/test
メッセージが表示されます。rslsync
私はそれを実行し、ls -l
それを示していますroot
root
。
トップレベルのディレクトリフォルダの所有者がrslsync
自分と同じグループの他のユーザーが作成したサブフォルダの1つにアクセスできないのはなぜですか?ここで何か抜けましたか?
編集する
drwxr-xr-x. 3 rslsync rslsync 18 Aug 26 17:09 /home/sync
drwxr-xr-x. 2 root root 6 Aug 26 17:09 /home/sync/test
test
私が使用するフォルダを作成するとき、それ以外のsudo
フォルダを作成することはできません。
グループリアムはこんな感じです。
liam : liam wheel rslsync
答え1
デフォルトでは、作成された新しいディレクトリとファイルは作成プロセスのユーザーとグループを継承します。プロセスは明示的に別のグループ(プロセスがメンバーである)に設定できます。それ以外の場合は、ディレクトリに次のものが必要です。setuid/setgidビットが設定されると、所有者/グループはディレクトリと一致するように設定されます。
デフォルトのファイル権限はプロセスによって決定されます。マスク。一般的なumask値(022
および027
)は、ファイルとディレクトリを誰でも書き込むことができません。
ディレクトリの所有者とグループは、root:root
ディレクトリに書き込めないためです。また、説明によると、ファイルを作成したようです。根(sudoを使う?)ユーザーの代わりにリアム。
さらに、Linuxのファイル権限チェックは、現在のディレクトリから始まるフルパスに対して行われます。パスのディレクトリにプロセスユーザー/グループに対する実行(+ x)権限がない場合、アクセスは拒否されます。
ファイル権限を設定するもう1つの方法は、POSIXアクセス制御リストを使用することです。man 5 acl
。 ACLのサポートは、使用しているファイルシステムによって異なります。これを有効にするには、フラグをインストールする必要があります。
答え2
Linuxでは、各ファイルまたはフォルダの所有権と権限は、親ディレクトリの状態に関係なく、他のすべてのフォルダやファイルとは別に処理されます。任意の場所に新しいフォルダを作成すると、そのフォルダを作成したユーザーの所有権が得られます。これはLinuxセキュリティモデルにとって良いことで決定的なものです。
ls
コマンドが「root:root」を提供した場合、rootはファイル/フォルダを作成しました(または誰かが作成しましたが、chown root:root
明らかにユーザーrslsync(またはliam)は「root」グループに属していません(そして属してはいけません)。まさにその理由です。グループ「root」は権限フラグの「グループ」フィールドにある権限を取得しませんが、「その他」フィールドに指定された権限を取得します。これらのフィールドの標準権限には権限がありません。すべて...
答え3
あなたの質問に回答しました。
ls -l ショールート:ルートあなたが書いたchown -R rslsync:rslsync。
これは、少なくとも rslsync ユーザーが次に属さない場合を意味します。根 このディレクトリにグループを書き込むことはできません。
ここで焦点を当てていないのは、ユーザーがフォルダをliam
作成した理由root:root
ですが、これは別の質問です。
groups
ユーザーに出力を表示できますか?
答え4
解決策が見つかりました。
.service ファイルに移動
sudo vi /usr/lib/systemd/system/resilio-sync.service
この行を現在のユーザー名に変更してください。
ユーザー=aurelien.izoulet
グループ=aurelien.izoulet
環境=”SYNC_USER=aurelien.izoulet”
環境=”SYNC_GROUP=aurelien.izoulet”
systemctl を再起動します。
sudo systemctl daemon-reload
その後、rslsyncサービスを再起動すると機能します!