LINUX.ORG.RU

Как запретить изменение владельца файла?

 , ,


0

1

Здравствуйте.

Подскажите, пожалуйста, как можно решить мою затыку.

Есть txt файл, в него пишутся данные. Владелец test, но при выполнении по крону скрипта владелец меняется на root, не под root скрипту прав не хватает.

Иногда нужно через ssh удаленно в txt файл дописывать. Но когда владелец txt становится root удаленно я записать уже ничего не могу, мне прав не хватает.

Как быть?

Спасибо.


Можно, например, положить файл на отдельный раздел с FAT. При монтировании FAT нужно указывать uid/gid и их никто не может менять. Именно раздел держать не обязательно, можно сэмулировать раздел простым файлом. Аналогичные опции есть ещё для NTFS и NFS.

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

i-rinat ★★★★★
()

Звучит как XY проблема. Я бы копал в сторону организации нормального доступа к файлу, чтобы отпала необходимость в танцах с правами доступа.

mxfm ★★
()

добавил в скрипт строку с изменением владельца, пусть так будет

спасибо всем кто откликнулся

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

Владелец test, но при выполнении по крону скрипта владелец меняется на root, не под root скрипту прав не хватает.

Запускай уж всё от рута тогда. И chmod 777.

firkax ★★★★★
()

в крон както можно впихнуть от какого пользователя исполнять команду.
если не получится то костыль через sudo -u test команда команда выполнится от имени пользователя test
root вполне естественно имеет полные права в sudo

вообще какойто косяк в команде, при записи в имеющийся файл права не должны изменятся.
вар2: в команде крона создавай файл от имени test либо дополни изменением пользователя файла

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

Мда, ну зачем ты так.

1) у крона есть таблицы для всех юзеров а не только для рута

2) для переключения с рута на юзера есть su

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

Очевидно там не запись. Но он и сам не знает.

firkax ★★★★★
()

Я бы сделал по-другому:

  • Один файл чисто для записи, в него пишет только пользователь test.

  • Второй принадлежит root-у, с ним работает cron.

  • Добавить в скрипт копирование содержимого первого во второй с заменой.

Да, "колхоз", но "колхоз" быстрый и эффективный.

Korchevatel ★★★★★
()
# дефолт acl на директорию
# у новых файлов в директории будут дополнительные разрешения
setfacl -R -m default:user:test:rwX txt

# acl на файл
setfacl -m user:test:rw txt
anonymous
()
Ответ на: комментарий от i-rinat

А можно просто сразу после запуска скрипта в crontab добавить ; chown test:test /path/to/file.txt. ☺

mord0d ★★★★★
()

В кроне от рута запускай через sudo -u

И рули пермишенами через группу, не через владельца.

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