0

Linux の 'id' コマンドは、プロセスが属する groups= について報告します。これはいつ、どのように記入されますか?

私は suid/sgid プログラムを書いていますが、私のプロセスではグループが埋められないようで、おそらく偶然かもしれませんが、nfs マウントされたファイル システムに関する権限も正しく機能しません (ちなみに、 no_root_squash で遊んだことがありますが、役に立ちませんでした)

4

3 に答える 3

2

ほとんどの場合、補助グループは によって設定されloginます。

自分で設定したい場合は、関数getgrouplist()setgroups()fromが必要です。正常<grp.h>に呼び出すには root になる必要があることに注意してください。setgroups()

于 2009-09-28T22:08:57.267 に答える
1

ありがとう、 setgroups() はほとんど答えでした。しかし、本当にうまく機能する initgroups() を使用することになりました。呼び出しは、ルートから setuid を実行する前に行われました。

man ページでこれを見つけました 名前 initgroups - 補助グループ アクセス リストを初期化します

SYNOPSIS #include #include

   int initgroups(const char *user, gid_t group);

どうやら、グループが LDAP からのものである場合、それらを適切に入力するには、これを行う必要があります。

于 2009-10-09T17:13:45.627 に答える
0
  • 通常、複数のグループ メンバーシップはログイン時に設定されますが、あまり使用されません。SOP では、多くの場合、各ユーザーに独自のグループを付与します。

  • 通常、ネットワーク ファイル システムは、ローカル クライアントのルート権限を尊重しません。

于 2009-09-28T22:12:44.093 に答える