klink0v (klink0v) wrote,
klink0v
klink0v

Category:

еbashим на bash-е #1

Чё-то я увлёкся написанием демонов на баше. Не к добру это, ох не к добру. В связи с этим открываю рубрику "Е**шим на баше". С пояснениями и примерами.

Допустим, у нас есть условный zabbix-агент. От которого UID-а он выполняется, мы заранее не знаем. Но нам надо, чтобы вот именно наш конкретный скрипт, в свою очередь запущенный zabbix агентом отработал бы от имени "vasya" и никак иначе.

Это несложно. Кладем в "sudoers.d" файлик с содержимым типа

и вуаля. Главное только, чтобы этот скрипт и папка, в которой он лежит, не были бы world-writeable, а то получится знатная дыра в безопасности, гы-гы.

Но что если этого файлика там нет? Как мы об этом узнаем, чтобы грязно выругаться в таком случае? Например, как-то так.

Проверяем с каким UID выполняется скрипт прямо сейчас. Если не под Васей, то пытаемся перезапуститься из-под Васи. Если не получилось, грязно ругаемся.

Ещё пример. Для фанатов Rsync-а. Не обращал внимания, но оказывается, у него есть ключик "-i" (itemize-changes). По сюжету, с этим ключом после завершения он возвращает на STDOUT какие файлики он потрогал и чего именно с ними сделал (скачал, отдал, поменял права и т.п.). Но есть лютая подстава. Если, например, он вознамерился скачать откуда-то 10 файлов, скачал 7 из них, а потом связь порвалась, то... скажет, что якобы скачал все 10. А по факту на диске останутся лежать только 7.

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

И вопрос на засыпку. Кто-нибудь пробовал пользоваться вот этой софтинкой для iPad от китайского автора? Как она? Меня волнует в основном чтобы там "закладок" не было.

Tags: bash, linux, вопрос
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments