Linuxには、プライマリグループとセカンダリグループの2種類のグループコンセプトがあります。新しいグループを作成するのは簡単です。
sudo groupadd gname
今、新しく作成されたグループgname
がどのグループに属しているかを知りたいです。それらを変換する方法はありますか?
ユーザーなしで2つの新しいグループを作成する
sudo groupadd writers
sudo groupadd editers
新しいユーザーを追加します。
sudo useradd -m mywriter -p yourpassword
sudo useradd -m myediter -p yourpassword
グループに新しいユーザーを追加します。
sudo usermod -a -G writers mywriter
sudo usermod -g editers myediter
今4つのグループがあります。
cat /etc/group | tail -4
writers:x:1007:mywriter
editers:x:1008:
mywriter:x:1009:
myediter:x:1010:
私の作家を入力してください
$ touch /tmp/mywriter.txt
$ ls -al /tmp/mywriter.txt
-rw-r--r-- 1 mywriter mywriter 0 Aug 23 21:24 /tmp/mywriter.txt
私の編集者に行く
$ touch /tmp/myedier.txt
$ ls -al /tmp/myediter.txt
-rw-r--r-- 1 myediter editers 0 Aug 23 21:27 /tmp/myediter.txt
グループ1---mywriterの場合:
id mywriter
uid=1009(mywriter) gid=1009(mywriter) groups=1009(mywriter),1007(writers)
mywriter
uid=gid=1009 なので、デフォルトのグループです。
グループ 2 の場合 --myediter
id myediter
uid=1010(myediter) gid=1008(editers) groups=1008(editers)
二次グループですか?
グループ合計をwriters
分類する方法はediters
?
答え1
グループ自体はプライマリまたはセカンダリではありません。グループはグループです。
重要なのはどのように使うのかです。
一般的なログインセッションを見てみましょう。 (説明の便宜のために単純化しますが、より複雑な場合でも同じロジックが適用されます。)
ログインプロセスがグループメンバーシップを設定するときに最初に行うことは、ファイルを表示することですpasswd
。
私のコンピュータでは、次のようになります。
sweh:x:500:500:Stephen Harris:/home/sweh:/bin/ksh
2番目の数字が決定します。基本的なグループ。だから私のメイングループはグループID 500です。
次に、私のユーザー名がリストされている項目を確認するためにグループファイルを調べます。
% grep -w sweh /etc/group
wheel:x:10:sweh
sweh:x:500:
apache:x:48:sweh
news:x:13:news,sweh
これにより、私はグループ10、48、13にリストされていることがわかります。これらは中学校グループ。
次のコマンドを使用してこれを確認できますid
。
% id
uid=500(sweh) gid=500(sweh) groups=500(sweh),10(wheel),13(news),48(apache)
このgid
値はデフォルトグループをリストします。値groups
一覧みんな私のグループ。基本以外のすべては二次的です。
passwd
ログインごとおよびの項目によって、プライマリグループとセカンダリグループが異なる場合がありますgroup
。
したがって、「メジャー」と「マイナー」はコンテキストベースであることがわかります。ユーザーそのユーザーを定義する方法。グループ自体に基づいていません。
答え2
それはである: それである基本的なまたは中学校グループは、完全に特定のユーザーIDに接続する方法によって異なります。一部のシステムではusermod
たとえば、プログラムには、このグループをセカンダリグループとして指定するオプションがあります。