Разрешения группы 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

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


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
Не требуется перезагрузка компьютера.
Кевин Панко
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.