LINUX.ORG.RU

Права на файлы


0

1

День добрый. Подскажите как мне дать пользователю Usertest возможность менять атрибуты файлов, владелец которых www-data.

Если я правильно понял, то при смене группы пользователя изменится и его домашняя директория, а мне этого не надо...

(debian 7)

Добавь пользователя в группу www-data и дай группе право править файлы. Элементарно же. man chown.

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

Возможно я плохо описал ситуацию... или просто туплю... Есть сервер, на нем, ну скажем, 10 сайтов. У каждого сайта свой владелец. Этот владелец может менять только те файлы, которые он сам на сайт (через ftp или isp) закачал. А те файлы, которые закачаны скриптами (через файловые менеджеры и т.п.) - он менять не может, так как у них другой владелец и другая группа. Так вот мне нужно, чтобы каждый из юзеров мог менять атрибуты любых файлов в пределах его рабочего каталога разумеется...

я могу поменять владельца и группу для всех файлов, но не могу же я делать это постоянно.

usermod -G www-data Usertest

ни чего не дает, а chown вообще меняет владельца для файлов - а мне это не нужно... нужно править чужие файлы.. как root

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

chown вообще меняет владельца для файлов

Это тебе и нужно! Т.к. chown не только хозяина меняет, но и группу: chown -R SuperOdmin.www-data . поменяет хозяина всех файлов и директорий в текущей на SuperOdmin'а, а группу хозяйскую — на www-data. Ну, а чтобы у тебя и группа могла менять, делай дальше: chmod -R g+rwX .

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

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

мне надо что бы user мог менять свои файлы и файлы www-data

chown -R SuperOdmin.www-data
cannot access `.www-data': No such file or directory

darkozoid
() автор топика

Что-то я не припоминаю возможности сменить владельца (owner) без привилегий суперюзера. Т.о. тебе понадобится настроить sudo и опционально написать скрипт-обертку.

Можно запускать по cron'y автоматическую смену прав для соотв. файлов.

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

да я могу под root зайти... не проблема сменить права на файлы... мне не это нужно то... мне нужно не меняя права файлов и группу с владельцем, как то сделать так, чтобы другой пользователь (клиент) мог выставить для директории права 777 через ftp клиент

он заходит под своим логином и паролем и принадлежит другой группе но даже если у директории или файла уже 777 то все равно не возможно их изменить, только если ты не root user

darkozoid
() автор топика

Я так и не понял, чем не устроил вариант:

1. Создать группу, в которой будет и веб-сервер и пользователь.

2. Сделать эту группу владельцем корневого (для сайта) каталога.

3. Сделать этому каталогу «chmod g+s».

4. Ну и «chown -R» для уже имеющегося содержимого.

?

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

sudo... пользователю... в ftp клиенте...

у меня 53 пользователя и у каждого свой сайт а то и не один, на каждом сайте есть файлы группы www-data пользователя www-data

я захожу через фтп клиент (например пользователь atrlineseo) и хочу поменять права на файлы, они не меняются...

этот пользователь состоит в группе (дополнительной) www-data

хрен с ним... иду в isp (под root) меняю для конкретного файла группу на группу пользователя artlineseo, перехожу обратно в ftp клиент и опять не могу поменять атрибуты файла... значит их может менять только владелец файла - логично? (у файла права 777 )

как разрешить всем менять атрибуты файлов, а не только владельцу?

darkozoid
() автор топика

День добрый. Подскажите как мне дать пользователю Usertest возможность менять атрибуты файлов, владелец которых www-data.

никак.

нужно добавить юзера в www-data, и поставить SGID бит на каталог.

Если я правильно понял, то при смене группы пользователя изменится и его домашняя директория

неправильно. Юзер может входить в любое число групп.

emulek
()
Ответ на: комментарий от sdio

Что-то я не припоминаю возможности сменить владельца (owner) без привилегий суперюзера.

легко, если есть право g+w на каталоге. Надо убить файл и создать точно такой же. Да, ещё нужно правило g+r на файле.

emulek
()
Ответ на: комментарий от sdio

Можно запускать по cron'y

не будь мудаком. Ты же нормальный вроде-бы...

emulek
()
Ответ на: комментарий от darkozoid

Теперь появился ftp. Ты бы сразу расписывал ситуацию

Фтп сервер мог бы взять на себя такую функцию, но это маловероятно, т.к. они (ftp-servers) редко работают из под рута.

Сменить владельца нельзя без SU.

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

1. Создать группу, в которой будет и веб-сервер и пользователь.

2. Сделать эту группу владельцем корневого (для сайта) каталога.

3. Сделать этому каталогу «chmod g+s».

4. Ну и «chown -R» для уже имеющегося содержимого.

5. umask 0002 у юзера. Иначе каталоги/файлы будут g-w, и их не сможет менять апач. В частности, создавать свои файлы в разных cache.

emulek
()
Ответ на: комментарий от sdio

Теперь появился ftp. Ты бы сразу расписывал ситуацию

какая разница? umask проще будет задавать. В proftpd.conf.

Фтп сервер мог бы взять на себя такую функцию, но это маловероятно, т.к. они (ftp-servers) редко работают из под рута.

и правильно.

Сменить владельца нельзя без SU.

ты не можешь редактировать мои посты, но ты можешь их цитировать и перевирать цитаты.

emulek
()
Ответ на: комментарий от darkozoid

они будут появляться всегда новые

Следовательно, нужно внятно объяснить создателю файлов, чтобы не забывал делать на них chgrp. Или сделать обоим пользователям общую основную группу, тогда все автоматом будет ОК. Да, еще надо не забыть про umask.

я же не могу для каждого нового файла руками задавать владельца...

Можешь: по крону скрипт запускай, который будет нужное делать.

cannot access `.www-data'

А, звиняй: там двоеточие, а не точка.

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от sdio

Надо убить файл и создать точно такой же

Спасибо, кушай сам.

всякие sed/vim и прочий unix-like имено так и делают. А ты всё-таки мудак :(

emulek
()
Ответ на: комментарий от darkozoid

и хочу поменять права на файлы, они не меняются...

Зачем, если доступ в этот каталог есть только у пользователя, веб-сервера и суперпользователя?

drake
()
Ответ на: комментарий от Eddy_Em

Следовательно, нужно внятно объяснить создателю файлов, чтобы не забывал делать на них chgrp

chgrp делается само, если корень(сайта) с установленным SGID. Т.е. юзеру этого и знать не нужно. Но он может сменить grp, если хочет, что-бы апач не лазил в какие-то его каталоги.

Можешь: по крону скрипт запускай

не будь мудаком. Пожалуйста...

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

1. Формально: это не смена владельца файла, а копирование с побочными эффектами

2. Формально: user1 не может сменить владельца файла user2 на user3 без SU привилегий.

И последнее, ты реально достал своими каментами в каждой теме, валерьянки попей.

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

и хочу поменять права на файлы, они не меняются...

Зачем, если доступ в этот каталог есть только у пользователя, веб-сервера и суперпользователя?

он верно мыслит. Ему надо менять именно права, а не владельца. Владельца юзер менять не может, а вот права — может. Может менять права группы, и может менять саму группу(на те, в которые он входит). Потому юзер может как угодно ограничить доступ к своим файлам для других юзеров.

emulek
()
Ответ на: комментарий от sdio

Формально: это не смена владельца файла, а копирование с побочными эффектами

да. Тебе шашечки или ехать? Зачем ты ТСу предлагаешь sudo/crond? Если есть способ без этого мудачества?

Формально: user1 не может сменить владельца файла user2 на user3 без SU привилегий.

Формально: ТС спрашивал буквально:

День добрый. Подскажите как мне дать пользователю Usertest возможность менять атрибуты файлов, владелец которых www-data.

ему насрать, надо-ли менять владельца, а если надо, то насрать на формальности. Ему нужно ехать. Что-бы всё само получалось, и по возможности без его участия(в частности без опосредованного через кронд, и без передачи привилегий через sudo).

emulek
()
Ответ на: комментарий от sdio

И последнее, ты реально достал своими каментами в каждой теме, валерьянки попей.

я лучшее пива попью. А ты — не будь мудаком.

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

Если есть способ без этого мудачества?

Продемонстрируй, не будь чудаком

$ ls -la
drwxrwsr-x  2 user1 users   26 Jan 21 10:19 .
-rw-rw-r--  1 user1 users    6 Jan 21 10:12 aaa

user1,user2 в группе users и в группе users2

покажи как user2 командой chmod, chgrp меняет права на файл aaa

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

нужно добавить юзера в www-data, и поставить SGID бит на каталог.

вот спасибо тебе добрый человек....

не забудь поставить umask 0002, а то не будут работать каталоги типа cache/ в этих сайтах. Апач не сможет там создавать свои временные файлы. Впрочем, это нужно только для каталогов cache & upload и прочих таких, обычно апачу достаточно read-oonly по дефолту. Но юзеры часто не в силах поменять права самостоятельно (а те, кто может, их и без тебя поменяет), потому лучше разрешить по умолчанию в конфиге ftp-сервера.

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

Я немного о другом. В данном случае все пользователи, которые могут попасть в этот каталог (веб-сервер и пользователь) - это по факту один субъект. Менять права в данном случае бессмыссленно (они автоматически должны быть 777-like для всех пользователей). Этому субъекту (конечному пользователю) нафиг не нужно знать о «внутренней кухне» и «каких-то там правах».

drake
()
Ответ на: комментарий от sdio

покажи как user2 командой chmod, chgrp меняет права на файл aaa

sed -i '' aaa

$ ll zzzzz 
-rw-r--r-- 1 root root 0 янв 21 12:38 zzzzz
$ sed -i '' zzzzz 
$ ll zzzzz 
-rw-r--r-- 1 drb users 0 янв 21 12:38 zzzzz
$ chmod 01234 zzzzz 
$ ll zzzzz 
--w--wxr-T 1 drb users 0 янв 21 12:38 zzzzz*
emulek
()
Ответ на: комментарий от drake

В данном случае все пользователи, которые могут попасть в этот каталог (веб-сервер и пользователь) - это по факту один субъект.

в том то и дело, что субъектов два:

1. администратор сайта (который «юзер»)

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

Ну и кроме того, у ТСа юззеров много, потом юзер А не может править сайт Б, а может только свой А править. А если по твоему, то может. Это плохо.

Этому субъекту (конечному пользователю) нафиг не нужно знать о «внутренней кухне» и «каких-то там правах».

да. Но возможна ситуация, когда юзер Б хочет сделать гадость юзеру А. Система не должна этого допустить.

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

я извеняюсь, что опять встреваю, но не работает ни хрена...

chmod -R u+s www

и ничего... опять зайдя под логином клиента на фтп не могу сменить права... а мне именно это и нужно..

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

Учись не прикидываться шлангом

сам не прикидывайся. Я с того и начал: Права на файлы (комментарий) что ТС просит невозможного — сменить владельца. Но хотя формально это сделать невозможно, существует способ таки этого достигнуть. А ты мне продолжаешь доказывать то, что я сказал первым же словом в этой теме.

Это уже после копирования (sed'ом)

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

1. ftp-сервер сможет удалить файл т.к. хозяин каталога — юзерА

2. ftp-сервер сможет создать новый файл с хозяином юзерА

3. апач может удалить или изменить файл, т.к. группа файла www-data и есть право g+w на файле и на каталоге(из-за umask).

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

Этим апачем может управлять злоумышленник.

У «хостера» может быть админка, позволяющая управлять файлами через веб-интерфейс. И её поведение не должно отличаться от FTP клиента.

и прочитать файл, который ему читать нельзя

Использовать веб-сервер для хостинга «фоточек с НГ»? Серьёзно?

А если по твоему, то может.

$ ls -ld site-name.com
drwxrwx--- 10 root client1 4096 Dec 13 13:13 site-name.com

Как пользователь из группы client2 (не веб-сервер) сможет прочитать файл внутри этого каталога?

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

Этим апачем может управлять злоумышленник.

У «хостера» может быть админка, позволяющая управлять файлами через веб-интерфейс. И её поведение не должно отличаться от FTP клиента.

и что? Админка ACL будет ставить?

Использовать веб-сервер для хостинга «фоточек с НГ»? Серьёзно?

при чём тут это?

drwxrwx--- 10 root client1 4096 Dec 13 13:13 site-name.com

Как пользователь из группы client2 (не веб-сервер) сможет прочитать файл внутри этого каталога?

ты предлагаешь веб сервер вводить в группы юзеров что-ли? Ну так конечно тоже можно, делай. Потом расскажешь о результатах (:

Только никому не рассказывай, что это я разрешил (:

emulek
()
Ответ на: комментарий от sdio

Ты еще не понял, что емулек обычный 3.14здабол?

вот именно. Дай всем своим юзерам sudo, и забей. Не слушай меня.

PS: как стать твоим юзером?

emulek
()
Ответ на: комментарий от drake

Кстати, umask, возможно придётся задавать в конфигах.

можно и в конфигах. Это зависит от политики безопасности хостинга. Лучше, если права g+w будут сами юзеры задавать, только на те каталоги, куда может писать апач.

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

ты предлагаешь веб сервер вводить в группы юзеров что-ли?

Эээээ... Ну да... А какой смысл тогда какой в sgid? Можно же в конфиге ftp-сервера задать нужную группу (тем более, что права и так там будут ограничиваться).

UPD: Хотя хз, надо будет попробовать просто.

drake
()
Последнее исправление: drake (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.