LINUX.ORG.RU

Автоматически менять владельца файла

 , ,


0

3

Привет!

В общем у меня довольно странная хотелка, но может кто подскажет - есть группа пользователей group, которые могут править файл filename. Хочу, чтоб владельцем этого файла становился тот пользователь этой группы, которые его изменил. Inotify, на сколько я понял при поверхностном с ним знакомстве, данных о пользователе не сохраняет, а настраивать auditd нет технической возможности. Можно ли что-то придумать для этого кейса?

//Сразу скажу - файлы уже живут в vcs, хочется какого-нибудь «решения на хосте».

Добавить костыль в виде дополнительного скрипта, который сначала меняет текущего владельца, а потом стартует нужное приложение. Ну это так, первое, что в голову пришло. Может кто разовьет идею.

Deleted ()

В таких ситуациях надо думать не над решением странной задачи, а над причиной её возникновения и решать истинную задачу, а не мнимую.

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

Хочу знать кто последним правил файл. Самый простой вариант, на мой взгляд, это хранить эту информацию в «атрибутах» файла.

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

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

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

Изменения файлов отслеживать через auditd, или другие механизмы, по событию запускать скрипт.

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

Да, про auditd я знаю, но дело в том что у меня нет возможности менять его конфигурацию. Интересуют как раз другие механизмы, желательно чтоб могли работать от непривилегированного пользователя.

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

Это не проблема.
Проблема глубже.
Копай.

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

Куда копать то? Хочу знать кто последним правил файл, не прибегая к правке файла через VCS. Со стороны ОС это означает использование auditd (этот вариант мне не доступен) либо что-то еще, о чем я не знаю, по-этому спрашиваю тут. Какая проблема то?

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

Какая-то проблема в тебе точно есть, раз ты не знаешь зачем ты этого хочешь.

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

Я знаю зачем я это хочу - десяток пользователей может править файл в рабочей копии svn. Я не хочу бегать по всем 10 человекам с «Кто тут правил $filename и забыл закоммитить? Чьи там правки?», в то же время не хочу их (правки) перетирать версией из репы. Хочу иметь возможность задать этот вопрос нужному человеку, вот и все. Как по мне так это довольно нормальное желание, разве что оно кажется странным в общей концепции пользования ПК.

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

Открой для себя git и не страдай хернёй

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

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

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

проблема в том, что у тебя 10 человек работают с одним чекаутом

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

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

ты и правда не того хочешь, задача - как не пользоваться cvs? так чтоль
настрой уже права доступа пользователям,чтоб не таскали репу целиком, да по рукам бей, раз комитить забывают

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

У тебя через жопу рабочий процесс организован и проблема именно в этом.
Прикручивание к нему ещё кучи костылей только усугубит жопу.

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

Я знаю зачем я это хочу - десяток пользователей может править файл в рабочей копии svn. Я не хочу бегать по всем 10 человекам с «Кто тут правил $filename и забыл закоммитить? Чьи там правки?», в то же время не хочу их (правки) перетирать версией из репы. Хочу иметь возможность задать этот вопрос нужному человеку, вот и все. Как по мне так это довольно нормальное желание, разве что оно кажется странным в общей концепции пользования ПК.

Т.е. ты хочешь сказать что кто-то из 10 человек правил файл полдня, а потом ему становится наплевать на своё авторство и он якобы забывает закоммитить. Почему не наплевать тебе? Там есть что-то ценное? Ну, так закоммить от своего имени и получили тройную квартальную премию за отличные производственные показатели.

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

Плюсую. И вообще, одна из главных целей (D)VCS – дать возможность разным пользователям работать над своими копиями проекта, не мешая друг другу, а тут это отбрасывается под 0. Дело в том, что проект очень много весит?

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

Нет, проект весит не много, дело в другом - на хосте есть окружение для «запуска» файлов из этого проекта. Воспроизвести это окружение локально не получится, а без тестов писать в локальной рабочей копии, потом коммитить в VCS, потом забирать обновления на хосте в каталог проекта и проверять - куча ненужных операций. По-этому на хосте есть один каталог с рабочей копией проекта, есть группа пользователей с возможностью эти файлы менять и коммитить в репозиторий.

alozovskoy ★★★★★ ()

Хотелка и правда странная.

Но я бы взял incron, натравил бы его на нужную директорию/файл, по событию IN_OPEN забирал бы имя файла, каким-то любимым методом смотрел кто сейчас файл правит (lsof, к примеру), ну и делал бы соответствующий chown.

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

Открой для себя CI. Он сам все эти операции проделает, а у разработчика будет повод подышать воздухом на балконе да посмотреть на город, пока он всё это делает.

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

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

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