Ich richte eine Umgebung ein, in der ich mehreren Benutzern SSH-Zugriff auf meinen Server gebe. Sie sind alle vertrauenswürdig, aber ich möchte sie in einem Segment des Dateisystems zusammenfassen. Ich habe die Benutzer folgendermaßen erstellt:
adduser username -ingroup groupname
was ganz gut funktioniert. Wenn ich mich als einer von ihnen anmelde, kann ich Folgendes tun und bekomme alle richtigen Antworten:
$id -r -u -n
username
$id -r -g -n
groupname
Ich habe die primäre Gruppe meines eigenen Benutzerkontos groupname
folgendermaßen geändert:
$usermod myuser groupname
Ich habe mich dann abgemeldet und wieder angemeldet. Die Dateien, auf die die Gruppe Zugriff haben soll, befinden sich jetzt hier:
$ls -l / | grep groupname
drwxr-xr-x 3 root groupname 4.0K 2012-03-26 20:20 groupfiles
$cd /groupfiles
$ls -l
drwxrwxr-x 2 root groupname 4.0K 2012-03-26 20:32 project
Die Berechtigungen sind so angelegt, dass Mitglieder der Gruppe keine Dateien/Ordner ändern können, /groupfiles
aber sie können hinzufügen, bearbeiten und löschen unter/groupfiles/project
Mein Problem besteht darin, dass ich die falsche Gruppe erhalte, wenn ich dies tue:
$touch test
$ls -l test
-rw-rw-r-- 1 myuser myuser 0 2012-03-26 20:58 test
$id -r -g -n
groupname
Ich muss dafür sorgen, dass die von vim, touch usw. erstellten Dateien die richtige Gruppe haben. Ich bin mir newgrp()
der setgid
Bits bewusst. Diese sindnichtwas ich suche. Das funktioniert gut für die neuen Benutzer, die ich erstellt habe, aber nicht für meinen Benutzer. Ich bin nicht sicher, was passiert ist, aber jetzt funktioniert es gut. Ich habe diese Frage einfach für zukünftige Bastler hier gelassen.
Antwort1
Ich vermute, dass Sie folgendes Verhalten wünschen sudo usermod -g groupname myuser
.
Hinweis: Dieser Befehl ändert die Gruppeneigentümerschaft für alle Dateien in $HOME, aber nicht außerhalb von home. Sie können sie wieder ändernchgrp -R myuser $HOME
Sie müssen sich dann ab- und wieder anmelden, damit die Änderungen wirksam werden.
Wenn Sie Ihre primäre Gruppe „myuser“ nicht ändern möchten, sollten Sie newgrp verwenden.
sudo usermod -g admin bodhi
ssh localhost
touch file
newgrp bodhi
touch file2
ls -l file file2
-rw-r--r-- 1 bodhi admin 0 2012-03-26 19:28 file
-rw-r--r-- 1 bodhi bodhi 0 2012-03-26 19:29 file2