ユーザーとして実行可能ファイルを実行するfilesystem

ユーザーとして実行可能ファイルを実行するfilesystem

プロジェクトを自動的に生成する拡張機能を備えたファイルシステムマネージャを作成しています...ファイルシステム実行可能ファイルは、次のファイルのみを編集または削除できる必要があります。/home/USER/00_Files

ユーザーとグループを作成しましたsudo adduser --system --no-create-home --group filesystem
その後、ホームフォルダ/etc/passwdfilesystem:x:131:140::/nonexistent:/usr/sbin/nologin

現在私が理解しているのは、ファイルシステムの実行可能ファイルを自分の作成したユーザーとして実行し、グループファイルシステムを所有するようにする必要があることです00_Files

私のIDE(または端末の私)のような他のプログラムは00_Files

今質問は、
ユーザーとして実行可能ファイルを実行する方法ですfilesystem。このグループにすべてのファイルを
自動的に所有させるにはどうすればよいですか?設定する必要がある他のファイル権限がありますか?filesystem00_Files

ベストアンサー1

ユーザーとして実行可能ファイルを実行するfilesystem

# execute as root
chown filesystem /path/to/executable
chmod u+s /path/to/executable
# execute as any user
/path/to/executable

ただし、SUIDではなくSGIDを使用して実行する方が合理的ですfilesystem。したがって、ユーザーは実行可能ファイルを変更できません。

# execute as root
chown root:filesystem /path/to/executable
chmod u-s,g+s /path/to/executable
# execute as any user
/path/to/executable

どちらの場合も、グループを/home/USER検索可能にする必要があります(x権限)filesystem(ディレクトリのグループにするか、ACLを使用して)。

1 つのグループがすべての新しいファイルを所有できるようにする

すべての既存のファイルとディレクトリのグループにします。

chgrp -R /home/USER/00_Files

すべてのディレクトリにSGIDビットを設定します。

find /home/USER/00_Files -type d -exec chmod g+s {} \;

その他のファイル権限の設定

このグループがすべての既存のファイルとディレクトリを書き込むことができるように設定します。

chmod -R g+w /home/USER/00_Files

グループに将来のすべてのファイルとディレクトリに対する書き込み権限を付与します。

find /home/USER/00_Files -type d -exec setfacl -m d:g::rwx {} \;

安全上の理由から

セキュリティ上の理由から、filesystemこのディレクトリツリーの外側のユーザー/グループには書き込み権限を持つファイルやディレクトリがあってはなりません。

まったく異なるアプローチは、ターゲットディレクトリツリーのみを含む独自のインストールネームスペース/ chrootで実行可能ファイルを実行することです。実行可能ファイルが静的にリンクされている場合、これは簡単です。しかし、root名前空間を作成するために権限が必要かどうかはわかりません。

おすすめ記事