Использование Crontab -e с нестандартным редактором с ограниченной оболочкой (не экспортировать переменную или запустить редактор)

У меня есть пользователь с очень ограниченными правами.

Хотя мне разрешено изменять свой crontab, редактор по умолчанию – nano , который может стать реальной проблемой, когда вы привыкли к vi и не хотите вставлять производственную среду.

Я не могу экспортировать переменную и не объявлять ее, поэтому export EDITOR='vi' или EDITOR=vi crontab -e просто не работает … и мне даже не разрешено запускать vi (или nano) напрямую, так что я понятия не имею, как я на самом деле справиться с этим.

Есть ли способ обойти эти ограничения?

Чтобы дать представление о моих ограничениях, сообщение для входа:

 You are in a limited shell. Type '?' or 'help' to get the list of allowed commands 

и результат "?" команда

 cd clear crontab exit help history lpath ls lsudo php pwd 

EDIT: Забыли, чтобы посмотреть мою версию ОС

/ proc / version говорит мне, что:
Linux версия 2.6.26-2-amd64 (Debian 2.6.26-29) (dannf@debian.org) (версия gcc 4.1.3 20080704 (предварительная версия) ( Debian 4.1.2-25 )) # 1 SMP Sun Mar 4 21 : 48: 06 UTC 2012

… и cat /etc/debian_version говорит мне 5.0.10 (What?!)

Сейчас я больше привык играть с Ubuntu, но я все еще немного удивлен.

  • как использовать http proxy в терминале
  • Значение переменной не распознается после использования gnu parallel?
  • Как запустить мою программу C из любой точки системы (Ubuntu 10.10)?
  • Где задана переменная окружения TERM по умолчанию?
  • Кто настраивает http_proxy?
  • Переменная среды для команды, вызванная через nice
  • Как перемещаться по xargs, где каждый скрипт использует общую переменную env
  • Является ли хорошей идеей поставить переменные среды в / usr / local / bin
  • 2 Solutions collect form web for “Использование Crontab -e с нестандартным редактором с ограниченной оболочкой (не экспортировать переменную или запустить редактор)”

    Судя по сообщению об использовании, вы используете lshell . Это не оболочка типа Bourne, как bash, ksh, zsh, BusyBox и другие. Это даже не ограниченная оболочка, как rksh или rbash. У него нет переменных, перенаправления или какой-либо другой функции, кроме выполнения фиксированного набора команд с некоторыми аргументами.

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

    Поскольку вы можете запустить php , вы можете обойти его. Но, очевидно, администраторы вас не собираются.

    Кронтаб обычно короткий, поэтому, если вы хотите отредактировать его с помощью другого редактора, откройте терминал, который достаточно большой, скопируйте все это на свой локальный компьютер через буфер обмена графического интерфейса пользователя, отредактируйте и скопируйте в другом направлении. В nano убедитесь, что автоматическая линейная упаковка отключена ( Alt + L для переключения), а также (но это не должно иметь значения для crontab) автоматический отступ ( Alt + I ).

    Если вы можете передавать файлы в систему и из нее, сделайте резервную копию текущего crontab:

     $ crontab -l >crontab.txt 

    Если вы не можете выполнять перенаправления, просто сделайте crontab -l и скопируйте и вставьте crontab (убедитесь, что все идентично).

    Затем, используя текстовый файл crontab в не-заблокированной системе, обновите его в редакторе.

    Перенесите файл и выполните

     $ crontab crontab.txt 

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

    Я не несу ответственности.

    Linux и Unix - лучшая ОС в мире.