Изменить дату только для одного пользователя без полномочий root в Linux

Возможно ли изменить дату только для определенного пользователя (не root) в Linux?

Если возможно, как это сделать?

И было бы здорово, если бы кто-то мог указать на это.

РЕДАКТИРОВАТЬ

Поставив мой вопрос другими словами.

Я хочу изменить день и время, начиная с того, что происходит сейчас, в другой день и время в Linux, не имея привилегий root.How я могу достичь этого?

  • Почему дата вывода X-3 вместо X-2 дней, когда я выполняю арифметические операции
  • Как записать следующие 3 или X дней с помощью команды?
  • Как вы определяете формат ввода данных на сегодняшний день?
  • Как показать полное имя дня с помощью команды, например, 16 июля 1991 г.
  • Как получить текущую дату и время в формате YYYYMMDDHHMMSS в ksh88?
  • Как я могу конвертировать локальное время в UTC date-time?
  • Как получить предыдущую дату, используя ссылку на файл с командой даты?
  • Как увеличить день в день, который хранится в переменной
  • 3 Solutions collect form web for “Изменить дату только для одного пользователя без полномочий root в Linux”

    Дата является общесистемным параметром, который имеет решающее значение для системы (а не для пользователя). Он появляется в метках времени файловой системы, протоколировании, демона, планировании и т. Д. Многие программы ломают или могут даже повредить вашу систему, если дата неточна. Таким образом, в этом смысле время должно постоянно увеличиваться и корректироваться не только локально, но и в случае каких-либо не-www-сетей, также в глобальном масштабе. Даже сертификаты перестают работать, если между клиентом и сервером слишком много разницы во времени.

    Таким образом, в этом смысле системная дата / время – только одна – фактическая дата / время (желательно в формате UTC, в противном случае файловая система вашего ноутбука может сломаться при переключении часовых поясов).

    С другой стороны, настройка часового пояса – это просто уровень перевода с UTC на дату, представленную пользователю. Это можно изменить (см. Комментарий X Тянь). Но я не знаю, хочет ли это то, что вы хотите – он может устанавливать только целые числа (иногда целые числа), количество часов, но не более одного дня. Технически можно построить пользовательский часовой пояс, чтобы вызвать произвольную задержку, но это уродливый взлом.

    Все основные манипуляции временем по-прежнему относятся к времени unix (целое число, которое тикает равномерно с 1/1/1970), поэтому locale (timezone & stuff) обычно используется только для визуального отображения времени или для некоторых очень специфических применений в сценариях которые полагаются на эту функциональность. Например, date вызывает функцию clock_gettime которая извлекает системное время, а затем вызывает localtime для перевода в текущую локаль. Внутреннее представление – это всегда системное время.

    Для этого могут быть специальные модули ядра – или замены библиотек. Вы можете создать поврежденную библиотеку с адаптированной функцией clock_gettime и сделать ее видимой для одного пользователя. Я не знаю, как это повлияет на вашу систему. Манипуляция файловой системой и все такое, что все еще обрабатывается ядром, поэтому основное условие будет работать. Однако планирование, средства резервного копирования и make-файлы могут работать некорректно.

    EDIT: возможно, вам нужна виртуальная машина. Это тогда более изолировано, и если вы хотите изменить время, вы могли бы. Иногда бывает полезно обойти неисправности программного обеспечения, вызванные временем.

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

     $ date Fri Mar 21 10:11:15 GMT 2014 $ export TZ="PST+8" $ date Fri Mar 21 02:11:53 PST 2014 

    Максимальное значение для TZ составляет 24 часа

    Есть только несколько системных вызовов, которые получают дату / время, поэтому вы можете поместить библиотеку предварительной загрузки на место, чтобы изменить значения, возвращаемые этими вызовами, в зависимости от того, что вы хотите сделать (что еще несколько неясно из вопроса) , Это был общий трюк, когда тестирование Y2K было на высоте.

    Похоже, https://github.com/wolfcw/libfaketime может делать то, что вы хотите, но если это не так просто, чтобы сворачивать самостоятельно.

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