LINUX.ORG.RU
ФорумAdmin

Права доступа к файлам.

 ,


1

2

Прошу помощи у сообщества. Не могу разобраться с правами.

В системе есть 2 пользователя (обычных, созданных командой adduser). user и test

логинимся под test и создаем файл

test@bafusvm:~$ touch file
test@bafusvm:~$ chmod 662 ./file 
test@bafusvm:~$ ls -al file
-rw-rw--w- 1 test test 0 мая   19 23:44 file
test@bafusvm:~$ 

то есть по идее просто разрешаем группе писать в файл. Что собстванно нам и надо. Дать возможность писать в file еще кому либо кроме владельца. добавляем пользователя user в группу test

test@bafusvm:~$ sudo adduser user test

Все. Теперь я ожидаю, что пользователь user будет иметь права на запись в указанный файл. По крайней мере так пишут во всех мануалах. Если пользователь в группе, то значит к к нему применяются права группы.

Но по факту я получаю permission deny на любые попытки записи в файл из под пользователя user. Тогда я вообще не понимаю, как работают права в Linux и нафига нужны группы.

Спасибо.


Ответ на: комментарий от thesis

Действительно ШТО, вас удивляет?

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

И какие основания для того, чтобы в эту группу нельзя было бы добавить еще какого нибудь пользователя, дабы обеспечить нужный функционал?

merlex
() автор топика
Ответ на: комментарий от merlex

И какие основания для того, чтобы в эту группу нельзя было бы добавить еще какого нибудь пользователя, дабы обеспечить нужный функционал?

Можно, добавляй:

sudo gpasswd -a test user

или создавай сразу в группе:

adduser --ingroup test user

а не то, ШТО в цитате выше

man adduser; man gpasswd

Psych218 ★★★★★
()
Последнее исправление: Psych218 (всего исправлений: 1)
Ответ на: комментарий от Psych218

Стоп. А вчем разница? Если что вот вывод групп в которых состоит user

user@bafusvm:/home/test$ sudo id user
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),33(www-data),46(plugdev),108(sambashare),120(lpadmin),1001(test)

как видим test там уже присутствует.

кроме того смотрим вывод команды adduser -h, там помимо прочего

....
adduser USER GROUP
   Add an existing user to an existing group
....

так, что я в замешательстве, что вас смутило. Ну ок пробуем добавить пользователя в группу еще разок

дословно как вы написали

user@bafusvm:/home/test$ sudo gpasswd -a test user
Adding user test to group user

судя по выводу перепутаны аргументы. Мне надо бы наоборот пользователя user в группу test, то есть.

user@bafusvm:/home/test$ sudo gpasswd -a user test
Adding user user to group test

Но проблема как бы таже. В файл мы писать не можем.

user@bafusvm:/home/test$ ls -al file 
-rw-rw-r-- 1 test test 4 мая   20 00:22 file
user@bafusvm:/home/test$ echo "123" > file
bash: file: Permission denied
user@bafusvm:/home/test$ 
merlex
() автор топика
Ответ на: комментарий от GoNaX

Ничего необычного, кроме того что добавил g+w

bafuser@bafusvm:/home/test$ ls -ald /home/test
drwxrwxr-x 5 test test 4096 мая   19 23:44 /home/test
merlex
() автор топика
Ответ на: комментарий от merlex

Все ребята всем спасибо.

Дело было в том что не перелогинился после добавления пользователя в группу.

sudo gpasswd -a test user

а не то, ШТО в цитате выше

man adduser; man gpasswd

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

bafuser@bafusvm:/home/test$ sudo gpasswd -h
Usage: gpasswd [option] GROUP

Options:
  -a, --add USER                add USER to GROUP

ну можно еще man adduser посмотреть.

merlex
() автор топика
Ответ на: комментарий от merlex

Поумничать всегда приятно.

А как же.
Просто вот эта фишка adduser с добавлением юзера в группу - она не универсальная, поэтому про нее лучше не знать или забыть, как мы тут и сделали.
Слазил на дебьян - он так умеет. Слазил на центось - не умеет. Ну и нафиг тогда.

thesis ★★★★★
()
Ответ на: комментарий от thesis

ну вот Дебьяном (на сервере) и Убунтой (на ноуте) я и пользуюсь.

merlex
() автор топика
Ответ на: комментарий от kvap

Теперь да. Спасибо в этом и была ошибка.

А не подскажете как можно «перелогинить» какого нибудь «www-data» под которым nginx крутится, не перезагружая систему?

merlex
() автор топика
Ответ на: комментарий от merlex

А не подскажете как можно «перелогинить» какого нибудь «www-data» под которым nginx крутится, не перезагружая систему?

Попробуй sudo service nginx restart

Ну или sudo systemctl restart nginx на новых версиях Дебиана и Убунты.

proud_anon ★★★★★
()
Ответ на: комментарий от merlex

Отличная история, но, во-первых, у тебя в тегах указан линукс, в во-вторых - gpasswd тебе советовал не я.

thesis ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.