Intereting Posts
Объединение файлов по строкам Понимание связи между файлом конфигурации ядра FreeBSD и фактическим устройством Выравнивание данных Hexdump в определенном формате? Удаленные файлы из дома, удаленные из .local / share / Trash / files, система не сообщает о свободном пространстве Как обновить или перезагрузить rc.conf в диспетчере файлов ranger? Как установить или обновить пакет с yum с нулевым кодом выхода? Запуск всех сеансов терминала в / usr / bin / script Как настроить курсор xterm как идеальный квадрат? Как получить имя программы, которая синхронизировала аппаратные часы с системными часами во время перезагрузки Как изменить тему курсора в CLI? Инструмент для принудительного использования FILE вместо RAM Снизьте ядро ​​XUbuntu конвертировать формат даты в журнал Что означает строка `line 19: 12364 Killed` в сообщении об ошибке crontab? Установка openssh-сервера после загрузки Rescue Disk

Как создать учетную запись пользователя с определенными разрешениями?

Я хочу создать учетную запись пользователя unix с определенными разрешениями: этот пользователь должен иметь возможность устанавливать программное обеспечение, но не может удалить программное обеспечение. Кроме того, когда пользователь входит в систему, root должен получать уведомление по почте. Возможно?

Я запускаю Debian.

Что касается ограничения прав на управление только установкой программного обеспечения, вы можете использовать sudo: вы разрешаете пользователю запускать инструменты управления пакетами, которые устанавливают. Примерно вам нужно что-то подобное в / etc / sudoers:

 Cmnd_Alias SWINST = /path/to/pkg-manager install_action * power_user hostname= NOPASSWD: SWINST 

Это позволяет power_user на компьютере hostname запускать /path/to/pkg-manager с первым аргументом install_action и произвольными дополнительными аргументами, не запрашивая пароль (например, для Debian это переведет на /path/to/apt-get install * , для распределений на основе SUSE /path/to/zypper in * ).

Следует иметь в виду две вещи:

  1. Менеджер пакетов должен быть хорошо себя вести в том смысле, что он не должен позволять ему передавать несколько действий в одной командной строке (например, pkg-manager install foo, remove bar полностью разрушит его). Так как менеджеры пакетов также обрабатывают конфликты, даже установка может привести к удалению программного обеспечения, используйте переключатель / конфигурацию, которая отключает это, если это возможно (и см. Комментарий Крейга ниже).

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

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

Да, возможно, в последнем варианте каждой строки /etc/passwd вы указываете оболочку для каждого пользователя. Вы можете написать оболочку и вместо оболочки по умолчанию, такой как bash или csh , использовать вашу оболочку (возможно, скрипт оболочки).

Вы меняете значение по умолчанию:

 mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/bin/bash 

чтобы:

 mohsen:x:1000:1000:Mohsen Pahlevanzadeh,,,:/home/mohsen:/yourpath/yourshell.sh 

Затем вы должны поместить две вещи в yourshell.sh :

  1. команда для рассылки root ( mail , mutt command … – прочитать инструкцию)
  2. msgstr "запускает оболочку входа в систему exec /bin/bash -l

Вот мое решение:

Полупривилегированный пользователь запускает скрипт под названием «please-install.sh». аргументы сценария – это имена пакетов или программ.

 #!/bin/bash cat <<__EOF__ | mail -s "please install" root@localhost When you get time, please install these programs for me: $@ Thanks, __EOF__ 

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

Если вы хотите получить фантазию, вы можете использовать getopt, чтобы пользователь мог указать параметры приоритета, такие как -l или -low, -h или –high, -u или -urgent.