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

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

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

  • Идентификатор группы процессов Shell = идентификатор группы процессов переднего плана?
  • Как отменить typo `set -ovi`?
  • Bash зафиксировать любую ошибку, например -e, но не выходить, сделать что-то еще
  • Ошибка ./c.sh: строка 24: [: слишком много аргументов в программе оболочки
  • Как удалить все файлы с заданным именем во всех подкаталогах?
  • Похоже, что некоторые основы отсутствуют в ubuntu ... или я их не установил?
  • Я не могу экспортировать переменную и не объявлять ее, поэтому 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, но я все еще немного удивлен.

  • Получить список разделенных запятыми списков объектов в каталоге?
  • Невозможно развернуть звездочку без соответствующего разрешения
  • Получить переменную среды для другого пользователя
  • Установка IFS для сценария bash
  • Bash: проверить, является ли файл текстовым файлом
  • Введение env --null
  • 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 - лучшая ОС в мире.