プロジェクトを自動的に生成する拡張機能を備えたファイルシステムマネージャを作成しています...ファイルシステム実行可能ファイルは、次のファイルのみを編集または削除できる必要があります。/home/USER/00_Files
ユーザーとグループを作成しましたsudo adduser --system --no-create-home --group filesystem
。
その後、ホームフォルダ/etc/passwd
をfilesystem:x:131:140::/nonexistent:/usr/sbin/nologin
。
現在私が理解しているのは、ファイルシステムの実行可能ファイルを自分の作成したユーザーとして実行し、グループファイルシステムを所有するようにする必要があることです00_Files
。
私のIDE(または端末の私)のような他のプログラムは00_Files
。
今質問は、
ユーザーとして実行可能ファイルを実行する方法ですfilesystem
。このグループにすべてのファイルを
自動的に所有させるにはどうすればよいですか?設定する必要がある他のファイル権限がありますか?filesystem
00_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
名前空間を作成するために権限が必要かどうかはわかりません。