Разрешения группы Linux не применяются должным образом.

18

Я использую сервер Ubuntu 10.04 и испытываю некоторые противоречивые впечатления от пользователей / групп. Например:

sudo touch test_file                    # create empty file

sudo groupadd test                      # create 'test' group

sudo chown root:test test_file          # change group of file to 'test'

sudo chmod g+rwx test_file              # give write permissions to group

sudo usermod -a -G test {my-user}       # add my user to 'test' group

touch test_file                         # touch the file as my current user

Последняя строка выдает ошибку прав доступа.

Я гарантировал, что мой пользователь является частью группы «test» ( groups {my-user}подтверждает это). Группа test_file также определенно установлена ​​на 'test', и для группы установлены разрешения.

Почему мой пользователь не может записать файл в тестовый файл?

Гордон
источник

Ответы:

29

При добавлении пользователя в новую группу это не будет применяться ни в каких запущенных в данный момент процессах, а только в новых. Вы должны выйти из системы, а затем снова войти в нее.

Daenyth
источник
4
или взломайте su - usernameвашу работающую консоль. Вы не должны выходить из системы, чтобы войти таким образом :)
matthias krull
5

Как выход из системы, так и перезагрузка сервера не помогли мне.

Этот метод, однако, работает для меня: (ссылка на этот ответ )

chmod g+rwxs <parent folder>
контрольная сумма
источник
1
Что делает +sчасть? Благодарю.
tommy.carstensen
1
Он устанавливает бит setuid. Это позволяет запускать файл как владелец файла. Предположим, у вас есть файл, который вы хотите запустить от имени пользователя root, независимо от того, кто его запускает, вы должны установить бит setuid для этого файла.
Юлий
Ключ был x: похоже, что права на исполнение необходимы для touchработы.
asac - Восстановить Монику
0

Вы можете использовать newgrpкоманду для изменения идентификатора текущей группы пользователя. От man newgrp:

Команда newgrp используется для изменения текущего идентификатора группы во время сеанса входа. Если -указан необязательный флаг, среда пользователя будет повторно инициализирована, как если бы пользователь вошел в систему, в противном случае текущая среда, включая текущий рабочий каталог, останется неизменной.

Приостановлено до дальнейшего уведомления.
источник
1
Это также имеет эффект замены вашей текущей группы. Это не всегда хорошая идея.
Дейнит
Я бы понизил это, если бы мог. Переписывание групп может быть очень неприятным в будущем ... особенно с -Rопцией!
Эдвард
0

Перезагрузите компьютер, чтобы убедиться, что никакие застрявшие процессы не препятствуют правильному применению вашего пользователя и групп во время выхода из системы и входа в систему.

Эти шаги должны дать вашему пользователю группы testразрешение на запись наtest_file

sudo touch test_file 
sudo groupadd test
sudo chown root:test test_file
sudo chmod g+rwx test_file
sudo usermod -a -G test {my-user}

Перезагрузите компьютер или выйдите из операционной системы вашего пользователя. Перезапуск терминала не достаточно.

touch test_file

Пользователь может записывать в файл, потому что он является частью группы «test», и у группы есть разрешение rwx.

Эрик Лещинский
источник
3
Не требуется перезагрузка компьютера.
Кевин Панко