Выполнение серии сценариев в MySQL

Это (и вернув назад- ups) в значительной степени является традиционным использованием оператора пользователь и группа ...

Создание группы - например. mainusers - и добавьте пользователей, которым разрешено «стать» mainaccount

В / etc / sudoers добавьте: % mainusers ALL = ( root) su - mainaccount Это позволит членам mainusers стать mainaccount с помощью su - mainaccount . Делая это как root , им не нужно вводить пароль для команды su . Альтернативный вариант % mainusers ALL = (mainaccount) ALL позволяет членам mainusers запускать любую команду как mainaccount .

Пусть mainaccount -user будет членом sudo -group (то есть может sudo to root и запускать команды как корень ). Это позволит любому пользователю сначала стать mainaccount , а затем использовать sudo , чтобы стать root .


Тем не менее, это звучит как плохая идея! Возможно, лучше разрешить mainaccount - и пользователям, принадлежащим mainusers , которые могут им стать, - разрешить запускать только ограниченное число привилегированных команды (возможно, только команды в выделенном каталоге), возможно, как root . sudo также можно использовать для настройки этого.

Вы можете посмотреть man sudoers - и в примере файла sudoers в / usr / share / doc / sudo / examples / - для большего вдохновения. Посмотрите особенно, как они используют псевдоним и оператор -user / group в файле-примере. Здесь «операторы» могут выполнять ежедневную работу по техническому обслуживанию - например, выключать компьютер, прекращать процессы, запускать / останавливать / добавлять принтеры, монтировать компакт-диски и тому подобное - но далеко от всего root (и члены sudo -группы) могут делать. Это более подходящая настройка, позволяющая «доверенным пользователям» выполнять повседневную административную работу. Если вы используете несколько компьютеров, также может быть хорошей идеей ограничить их привилегии только одним или двумя компьютерами (например, группы пользователей имеют особые права на «своем» компьютере, но не на других компьютерах).

Итак, на вашем месте я бы дважды подумал и, возможно, переосмыслил бы это - особенно количество пользователей, которых вы собираетесь «продвигать».Если вы должны сделать это; Я бы предложил оператор -решение - поместите их в группу и используйте sudo , чтобы дать им ограниченный набор привилегированных команд, которые они могут запускать (как root ) для решения повседневных проблем. Но не позволяйте им всем получить полный корневой -статус! Если вам действительно нужен кто-то с полными root -привилегиями, то выберите пару из дюжины, которым вы действительно доверяете и знает, что хорошо осведомлены , и добавьте их в группу sudo в качестве полноправных соадминистраторов ... это было бы намного проще и легче контролировать, чем то, что вы предлагали.

1
13.07.2016, 00:16
1 ответ

Я не знаю "лучший" способ, но я бы, вероятно, не делал это параллельно, просто что-то простое вроде:

for sql in *.sql; do
   mysql options <"$sql"
done

Если вам нужно делать это параллельно:

for prefix in File1 File2; do
  for sql in ${prefix}_*.sql; do
    mysql options <"$sql" &
  done
  wait
done

Это сначала возьмет File1* файлы и запустит MySQL параллельно. Затем подождите, пока они закончатся, прежде чем сделать то же самое со всеми File2* файлами.

2
27.01.2020, 23:35

Теги

Похожие вопросы