Дозволи Групи 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

Останній рядок створює помилку дозволів.

Я переконався, що мій користувач є частиною групи "тест" ( groups {my-user} це підтверджує). Група test_file також безумовно встановлена ​​на "test", а групові дозволи встановлені.

Чому мій користувач не може написати запис у файл тестового файлу?

Відповіді:


28

При додаванні користувача до нової групи, яка не буде застосована в будь-яких поточних процесах, тільки нові. Потрібно вийти з системи, а потім увійти знову.


3
або рубати su - username у вашу працюючу консоль. Ви не повинні виходити, щоб увійти таким чином :)
matthias krull

4

Як вихід з системи, так і перезавантаження серверних методів не працювали для мене.

Однак цей метод працює для мене: (посилання на це відповідь )

chmod g+rwxs <parent folder>

1
Що робить +s частина робити? Дякую.
tommy.carstensen

1
Вона встановлює біт setuid. Це дозволяє запускати файл як власник файлу. Припустимо, у вас є файл, який ви хочете запустити від імені користувача root, незалежно від того, хто виконує цей файл, ви встановите біт setuid для цього файлу.
Julius

Ключ був x: потрібні права виконання touch працювати.
antoine-sac

0

Ви можете використовувати newgrp команда для зміни поточного ідентифікатора групи користувача. Від man newgrp:

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


1
Це також призводить до заміни поточної групи. Це не завжди гарна ідея.
Daenyth

Я б проголосував про це, якби я міг. Перезапис груп може бути дуже розчаровує в майбутньому ... особливо. с -R варіант!
Edward

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