2

У меня есть скрипт, который делает «su - oracle», затем запускает exp. Мне нужно сохранить этот файл в каталоге /app /dumps, к которому у пользователя "backups" есть доступ для чтения + записи файла.

Как правильно настроить каталог /app /dumps, чтобы "резервные копии" имели право изменять любые файлы в каталоге, но "оракул" все еще может записывать данные в каталог?

3 ответа3

0

Самый простой способ обойти это - использовать битик каталога вместе с соответствующими правами группы.

  1. Создать новую группу: groupadd orabak
  2. Добавьте обоих пользователей в группу: usermod -G orabak oracle; usermod -G orabak backups
  3. Установите липкий бит группы в каталоге: chmod g+s /app/dumps
  4. Убедитесь, что когда пользователи oracle и backups пишут файлы, они делают это с установленным битом записи группы (вы можете использовать для этого umask)
0

Вы должны быть в состоянии выполнить то, что вы хотите сделать с помощью этих двух команд:

chown oracle:backups /app/dumps
chmod 2370 /app/dumps

chown устанавливает владельца каталога для пользователя oracle, а группу для резервного пользователя.

chmod делает следующее:

  • Устанавливает бит setgid
  • Предоставляет владельцу (оракулу) доступ на запись / выполнение
  • Предоставляет группе (резервные копии) доступ на чтение / запись / выполнение

Установка setgid для каталога означает, что файл, созданный в каталоге, будет наследовать группу каталога, а не создателя. В вашем случае это означает, что любые файлы, записанные там оракулом, будут иметь резервные копии в виде группы.

Оракул может писать в каталог, но не читать из него. Если это необходимо, измените разрешения на 2770.

Это также предполагает, что ваш скрипт создает файлы с доступом для чтения / записи в каталоге / app / dumps. Если это не так, вы можете запустить setfacl -d -m g::rw /app/dumps чтобы установить групповые разрешения по умолчанию для файлов, созданных в / app / dumps, для чтения / записи.

0

Если вы выполните ls -alh /somedir вы получите что-то вроде этого

ls -alh /somedir 
drwxrwxrwx 1 owner   group  [size and date]  .
drwxrwxrwx 1 powner  pgroup [size and date]  ..
-rwxrwxrwx 1 owner   owner  [size and date]  somefile

Как только вы поймете это, вы сможете выяснить, какие права доступа и владельца вы должны установить для своих файлов. Эта запись в Ubuntu Wiki вас просветит.

Это оставляет вам несколько вариантов:

  1. Создайте круп с именем backup и добавьте в него пользовательские backups и oracle . Файлы, которые принадлежат группе backups -group, теперь будут делиться правами доступа с backups пользователей и oracle .
  2. Создайте группу backups добавьте в нее пользовательские backups . Дайте право собственности на пользователя oracle и владение группой для группового backups . Это дает вам отдельные права для пользователя oracle и всех членов группы backup группы
  3. Сделай то же самое как в 2. но с oracle

Инструменты для этого - groupadd, chown, chmod и usermod. Страницы руководства предоставят вам более подробную информацию. Я знаю, что это немного ответ RTFM. Но я уверен, что если вы будете читать, вы сможете обрабатывать разрешения для файлов Linux в будущем. =) Удачи

paradoxon

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .