Изменить основную группу пользователя - сделать новые файлы в этой группе

Я настраиваю среду, в которой я предоставляю SSH доступ нескольким пользователям на моем сервере. Им всем доверяют, но я хочу загнать их в сегмент файловой системы. Я создал пользователей так:

adduser username -ingroup groupname

, который работает достаточно хорошо. Когда я вхожу в систему как один из них, я могу сделать это и получить все правильные ответы:

$id -r -u -n
username
$id -r -g -n
groupname

Я переключил основную группу своей учетной записи пользователя на groupname, выполнив следующее:

$usermod myuser groupname

Затем я вышел из системы и снова вошел в нее. Теперь файлы, к которым я хотел бы, чтобы группа имела доступ, находятся здесь:

$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

Права доступа являются заданными, члены группы не могут изменять файлы. / папки в /groupfiles, но они могут добавлять, редактировать и удалять в /groupfiles/project

Проблема, с которой я сталкиваюсь, заключается в том, что когда я делаю это, я получаю неправильную группу:

$touch test
$ls -l test
-rw-rw-r-- 1 myuser myuser 0 2012-03-26 20:58 test
$id -r -g -n
groupname

Мне нужно сделать так, чтобы файлы, созданные vim, touch и т. Д., Имели правильную группу. Я знаю о newgrp() и setgid битах. Это не , что я ищу. Это хорошо работает для новых пользователей, которых я создал, , но не работает для моего пользователя. Я не уверен, что случилось, но сейчас работает нормально. Я просто оставил этот вопрос здесь для будущих тинкеров.

6
задан 29 January 2014 в 16:23

1 ответ

Я предполагаю, что вам нужно поведение sudo usermod -g groupname myuser.

Примечание: эта команда меняет владельца группы для всех файлов в $ HOME, но не за пределами home. Вы можете изменить их обратно chgrp -R myuser $HOME

Затем вам необходимо выйти и снова войти, чтобы изменения вступили в силу.

Если вы не хотите менять свою первичную группу «myuser», вам стоит использовать newgrp.

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
0
ответ дан 29 January 2014 в 16:23

Другие вопросы по тегам:

Похожие вопросы: