# [Solved] User in /home gehören zu welcher (richtigen) Gruppe

## Louisdor

Moin!  :Wink: 

Ich hab da mal ne Frage zu den Usern.

Wenn ich mir die angelegten User in meinem /home anschaue, dann stelle ich fest, dass User alex in der Gruppe users ist, User john jedoch in der Gruppe john. 

```
amd64x2 home # ls -la

insgesamt 28

drwxr-xr-x  4 root root     40 20. Aug 07:15 .

drwxr-xr-x 24 root root   4096 13. Aug 20:31 ..

drwxr-xr-x 79 alex users 16384 20. Aug 07:02 alex

drwxr-xr-x  4 john john   4096 20. Aug 07:40 john

-rw-r--r--  1 root root      0  9. Feb 2006  .keep

amd64x2 home #
```

Was ist nun richtig?

Den User alex habe ich angelegt, als ich Gentoo installiert habe, den User john habe ich heute nach "Hinzufügen eines Benutzers für den täglichen Gebrauch" zum Testen angelegt.

Merci & Ciao,

aleX!

----------

## Necoro

Stimmt ... komisches Verhalten (*auch gerade bei sich bemerk*) ... wenn du das ausgeführt hast, was im Handbuch steht, sollte john auch in users sein. useradd scheint (entgegen der Dokumentation) die default group nicht zu würdigen, sondern nur wenn man sie explizit mit "-g $GROUP" angibt --- stattdessen legt es eine Gruppe mit dem gleichen namen an ...

----------

## Louisdor

 *Necoro wrote:*   

>  ... wenn du das ausgeführt hast, was im Handbuch steht, sollte john auch in users sein. 

 Ja, genau das habe ich zum Testen so eingegeben:

```
Login: root

Password: (Ihr root Passwort)

# useradd -m -G users,wheel,audio -s /bin/bash john

# passwd john

Password: (Hier das Passwort für john eintragen)

Re-enter password: (Das Passwort zur Kontrolle noch einmal eingeben)
```

Ciao,

aleX!

----------

## bbgermany

Hi,

ich gebe meistens noch den Parameter "-g" an. Zusammen mit "users" ist mein User dann in der passenden Primärgruppe. Zusätzlich nehm ich noch das Skeletondir auf. Also im Endeffekt so:

```

useradd -m -g users -G users,wheel,audio -s /bin/bash -k /etc/skel $username

```

MfG. Stefan

----------

## Necoro

 *bbgermany wrote:*   

> Hi,
> 
> ich gebe meistens noch den Parameter "-g" an. Zusammen mit "users" ist mein User dann in der passenden Primärgruppe. Zusätzlich nehm ich noch das Skeletondir auf. Also im Endeffekt so:
> 
> ```
> ...

 

Laut man-page sollte er wenn nix angegebn ist auch die defaults nehmen ("useradd -D" zeigt sie an) ... scheint er aber zu mindestens für -g nicht zu tun...

----------

## bbgermany

Hi,

laut "useradd -h" steht das aber für folgendes:

```

-g, --gid GROUP               force use GROUP for the new user account

```

MfG. Stefan

----------

## Necoro

 *man useradd wrote:*   

>  -g, --gid GROUP
> 
>       The group name or number of the user’s initial login group. The group name must exist. A group number must refer to an already existing group.
> 
>       The default group number is 1 or whatever is specified in /etc/default/useradd.

 

Aber die man-page scheint einfach mal veraltet zu sein ... die Option "-n" die in der normalen Hilfe auftaucht, gibt es in man nicht ... strange ...

----------

## pablo_supertux

Ich hab ein kleines Test gemacht und dabei entdeckt, dass -n und -g zusammen nicht passen

```

supertux ~ # useradd -n -g users ...

useradd: options -g and -n conflict

```

Was mir aufgefallen ist, dass wenn man -g weglässt, dann wird eine Gruppe erstellt, die gleich dem Benutzername ist und diese als die GID einträgt.

Benutzt man -g, dann wird die Gruppe als GID eingetragen, die angegeben wurde sofern sie existiert. Mein Fazit: -n wird implizit aufgerufen, wenn man -g nicht benutzt.

Getestet mit sys-apps/shadow-4.0.18.1-r1

edit: Interessant ist es, als ich die Testaccount mit userdel -f ... gelöscht habe, dann wurde bei den Account die Gruppe gelöscht (aus /etc/group), bei denen ich keine -g Option benutzt hatte.

----------

## Louisdor

Naja, nun bin ich aber immer noch nicht so richtig weitergekommen damit.

Was wäre nun richtig?

Wenn ich mit touch eine Datei erstelle, dann sieht es so aus:

```
alex@amd64x2 ~ $ ls -l Test_001.txt 

-rw-r--r-- 1 alex alex 0 22. Aug 11:24 Test_001.txt
```

Und, wo könnte ich das einstellen, dass es dann so aussieht?

```
alex@amd64x2 ~ $ ls -l Test_001.txt 

-rw-r--r-- 1 alex users 0 22. Aug 11:24 Test_001.txt

alex@amd64x2 ~ $
```

Hier mal noch die Info von useradd -D:

```
amd64x2 / # useradd -D

GROUP=100

HOME=/home

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=no

amd64x2 / #
```

und der Inhalt von /etc/skel/:

```
amd64x2 / # ls -la /etc/skel/

insgesamt 24

drwxr-xr-x   3 root root   70  9. Aug 16:17 .

drwxr-xr-x 104 root root 8192 22. Aug 09:03 ..

-rw-r--r--   1 root root  127  1. Aug 18:02 .bash_logout

-rw-r--r--   1 root root  193  1. Aug 18:02 .bash_profile

-rw-r--r--   1 root root  551  1. Aug 18:02 .bashrc

drwx------   2 root root    6  9. Aug 16:17 .ssh

amd64x2 / # ls -la /etc/skel/.ssh/

insgesamt 0

drwx------ 2 root root  6  9. Aug 16:17 .

drwxr-xr-x 3 root root 70  9. Aug 16:17 ..

amd64x2 / #
```

Merci & Ciao,

aleX!

----------

## STiGMaTa_ch

 *Louisdor wrote:*   

> Naja, nun bin ich aber immer noch nicht so richtig weitergekommen damit.
> 
> Was wäre nun richtig?
> 
> Wenn ich mit touch eine Datei erstelle, dann sieht es so aus:
> ...

 

1.) Die Doku ist fehlerhaft, die Manpages sind richtig:

 *Quote:*   

> -g, --gid GROUP
> 
> The group name or number of the user's initial login group. 

 

 *Quote:*   

> -G, --groups GROUP1[,GROUP2,...[,GROUPN]]]
> 
> A list of supplementary groups which the user is also a member of.

 

Das bedeutet, man muss die Option -g users -G alle,anderen,gruppen angeben. Dann funktioniert es auch.

```
useradd -m -g users -G wheel,audio -s /bin/bash john
```

2.) Wenn du es geändert haben willst gibt es zwei Möglichkeiten:

Möglichkeit 1: Du löschst den User und führst den Befehl korrekt - wie oben beschrieben - aus.

Möglichkeit 2: Als root musst du einfach in /etc/passwd in der Zeile von John das vierte Feld auf die GID 100 setzen. Ausserdem solltest du noch die Gruppe john aus /etc/group löschen.

Lieber Gruss

STiGMaTa_ch

----------

## musv

Kleine Anmerkung noch dazu, die mir grad so aufgefallen ist:

Obwohl mein Nutzer schon von jeher zur Grupper users gehört, existiert trotzdem eine Gruppe mit dem Namen meines Users.

----------

## STiGMaTa_ch

Ich habe auch noch einen Nachtrag  :Wink: 

In der englischsprachigen Originaldokumentation wird es auch mit den Optionen -g und -G angegeben:

 *Quote:*   

> mybox ~ # adduser -g users -G lp,wheel,audio,cdrom,portage,cron -m john

 

Lieber Gruss

STiGMaTa

----------

## Knieper

Das ist aber nur die Schnellinstallation. Im Original lautet es:

```
# useradd -m -G users,wheel,audio -s /bin/bash john
```

----------

## Louisdor

 *STiGMaTa_ch wrote:*   

> 2.) Wenn du es geändert haben willst gibt es zwei Möglichkeiten:
> 
> Möglichkeit 1: Du löschst den User und führst den Befehl korrekt - wie oben beschrieben - aus.

 Nee, mach ich lieber nicht so.  :Wink: 

 *STiGMaTa_ch wrote:*   

> Möglichkeit 2: Als root musst du einfach in /etc/passwd in der Zeile von John das vierte Feld auf die GID 100 setzen. Ausserdem solltest du noch die Gruppe john aus /etc/group löschen.

 Ok, ich habe nun meine zwei User mal angepasst und nun werden neue Dateien auch richtig erstellt:

```
alex@amd64x2 ~ $ ll Test*

-rw-r--r-- 1 alex users    0 22. Aug 11:24 Test_001.txt

-rw-r--r-- 1 alex users    0 22. Aug 11:40 Test_002.txt

-rw-r--r-- 1 alex users    0 22. Aug 13:01 Test_003.txt

-rw-r--r-- 1 alex users    0 22. Aug 13:02 Test_004.txt

alex@amd64x2
```

Merci & Ciao,

aleX!

----------

## Louisdor

Für mich ist es nun erledigt, deshalb habe ich im Betreff ein [Solved] eingebaut.

Nun weiss ich worauf ich beim nächsten neuen User achten muss.

Vielen Dank an alle, die sich helfend beteiligt haben!

Ciao,

aleX!

----------

## tost

Eine interessante Diskussion und auch bei mir nach fast einem Jahr aktuell.

Ich wundere mich momentan nur darüber, dass die vorgeschlagene "Lösung" bei mir nicht funktioniert:

 *Quote:*   

> Möglichkeit 2: Als root musst du einfach in /etc/passwd in der Zeile von John das vierte Feld auf die GID 100 setzen. Ausserdem solltest du noch die Gruppe john aus /etc/group löschen. 

 

Habe die GID auf 100 gesetzt und die Gruppe john auch entfernt.

Ein ls -l liefert nun jedoch dieses Ergebnis:

```
-rw-r--r--  1  john  1000       0  5. Jan 01:43 test
```

Das john habe ich als Username jetzt einfach mal exemplarisch übernommen...

Wo liegt mein Fehler ?

Zumal auch alle anderen Dateien die zuvor john john waren nun so aussehen wie oben.

Grüße

tost

----------

## Max Steel

die Group ID der Gruppe john war davor schon 1000, die wird nicht abgeändert, sondern beibehalten solange du sie nicht änderst, aber alle neue Dateien werden richtig ge-group-idt.

Nun musst du natpürlich den DAteien neue gidds setzen per chown john:users ~/** -R

----------

## tost

Ok prima das gab den gewünschten Erfolg.

Ich dachte ich würde so bereits bei neu erstellten Dateien/Ordnern die richtigen Gruppen gesetzt haben.

Man lernt immer wieder dazu

Grüße

tost

----------

## ChrisJumper

Sehr interessant, gleich mal ein Lesezeichen gesetzt.

Für den Fall das ich mal wieder einen User hinzufügen muss ;)

Aber mal was anderes: Was mir aufgefallen ist, ist das die unterschiedlichen Linux-Distributionen da nicht einheitlich verfahren. Natürlich müssen sie das nicht. Aber ich frage mich...

...warum ist diese Primäre Gruppe hier (users) so wichtig?

...wieso wird bei/nach einer (K)ubuntu-Installation der User so angelegt wie zuerst das Beispiel "john" in diesem Thread (john:john)?

Zuerst dachte ich es dient dazu damit User nicht das Home-Verzeichnis von anderen Usern lesen können. Aber jetzt kommt es mir wie ein Fehler in der Installation vor.

Um noch ein bisschen mehr [OT] zu werden:

"Sinn und Zweck" ist doch die Differenzierung von Programmen in System/User-Bereiche. Und damit ein "other" (z.B. ein anonymer ftp/ssh-User) nicht die Rechte hat "Lokale Anwendungen oder Skripte" auszuführen oder einzusehen. Aber warum ist es dann so wichtig diese Primäre-Gruppe zu setzen?

Die "Schlimmsten" folgen könnte ich mir jetzt lediglich so Vorstellen:

Ein User der nicht in der Primären users-Gruppe ist (sondern die seines Namens), Verändert eine Software die andere User mitbenutzen (ohne Stiky-Bit) z.B. durch ein klick auf den Software-Internen-Update-Button. Und dann werden alle durch dieses Update veränderten Dateien mit falschen Group-Rechten gesetzt in dessen Gruppe die anderen natürlich nicht sind. Was zu einem Fehlverhalten führen könnte.

Andererseits, liegen die Dateien doch auf System-Ebene und ein Programm das vom User Ausgeführt werden darf darf nicht seine eigenen Programmdateien/System-Rechte ändern! Und irgendwie sind die Normalen Konfigurations-Dateien doch auch bei jedem User getrennt. Wozu also die Primäre user-Gruppe? Oh, es könnte einen Fall geben indem der Erste Benutzer das Anlegen von bestimmten Dateien initialisiert (z.B. ~/.App-Conf) und nur wenn diese nicht in den unterschiedlichen Home-Verzeichnissen liegen würden.

Oder ist das so wegen den mount-Einstellungen in der fstab? Ich zweifel das natürlich nicht an. Nur ist es mir grade nicht ersichtlich wo diese Trennung noch Anwendung findet.

Grüße Chris

----------

## Max Steel

du musst "globaler" denken, das ist dann interresant wenn du ein Ordner z.b. /media/mp3s per nfs freigibst und bei der konfiguration des servers angibst das er die Dinger mit der users Group setzen soll, (user is mal egal und auf root gesetzt), desweiteren darf @users rw machen.

Der Client nimmt das Paket so wies kommt nun, wenn keiner in users drinn is kann keiner drauf zugreifen, okay, man könnte die primäre dabei belassen und users als sekundäre Gruppe einsetzen weobei sie die selbe GID wie die Servergroup benutzt, wodurch das alles stimmt.

Aber, wenn es gleich richtig gesetzt wird, kann mann es auch nicht so einfach vergessen, da es ja standardmäßig gemacht wird.

Auf Gentoo allerdings wird das nicht gemacht.

Mir Persönlich hat diese Einstellung schon Stunden fürs suchen geklaut.

----------

## Fauli

 *ChrisJumper wrote:*   

> ...wieso wird bei/nach einer (K)ubuntu-Installation der User so angelegt wie zuerst das Beispiel "john" in diesem Thread (john:john)?
> 
> Zuerst dachte ich es dient dazu damit User nicht das Home-Verzeichnis von anderen Usern lesen können. Aber jetzt kommt es mir wie ein Fehler in der Installation vor.

 

Ich denke, der Grund ist Bequemlichkeit:

Wenn bei den Dateien in /home/john User und Gruppe "john:john" ist und die umask=027, also die Permissions standardmäßig "-rw-r-----", kann erstmal niemand auf die Dateien von John zugreifen.

Falls John doch mal eine seiner Dateien für die Mitglieder einer Gruppe (z. B. "users") zum Lesen freigeben möchte, reicht es aus, mit "chgrp" die Gruppe zu ändern. An den Permission-Bits braucht man in dem Fall gar nichts mehr zu ändern.

----------

