Fedora 20: Пользователи не могут ввести свой корневой каталог

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

Chet Ramey (текущий специалист по обслуживанию удара) дал хорошую сводку условий для этой проблемы:

Ток (bash-4.3-devel) кодирует работы что-то вроде этого, не принимая ошибок (lib/readline/histfile.c:history_do_write ()):

  • переименуйте (histfile, histfile ~)
  • открытый файл с O_CREAT|O_TRUNC
  • malloc буферизуют достаточно большой для содержания всех ретроспективных данных
  • запишите все записи истории в одной записи (2) вызов
  • близкий файл
  • удалите связь (histfile ~)

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

Существует несколько способов, которыми файл истории может закончиться нулевая длина: malloc может перестать работать, или запись может перестать работать. В ударе 4.2, слишком поздно, чтобы сделать что-либо об усеченном файле истории в той точке. В ударе 4.3, будет восстановлен предыдущий файл истории.

Этот поток списка рассылки от удара ошибки содержит достойное обсуждение проблем, возможных решений и проблем, окружающих это.

Существуют также некоторые другие возможности:

  • В какой-то момент, Ваш HISTSIZE или HISTFILESIZE был установлен на 0
  • В какой-то момент, Ваш readline history-size был установлен на 0
  • Кто-то, или намеренно или неумышленно, вытер историю удара (через > "$HISTFILE" или подобный)

В последнем случае Вы могли бы хотеть проверить, что кто-то не получал доступ к Вашей учетной записи и пытается скрыть их дорожки сырым способом. Смотрите на last, /var/log/auth (или /var/log/secure на CentOS/RHEL), и если у Вас есть он, какой-либо процесс бухгалтерское и/или контролирующее программное обеспечение, Вы, возможно, установили.

4
06.11.2014, 18:54
1 ответ

От выполнения команды в файле Crontab нет никакой разницы. По крайней мере, Vixie Cron (как на Centos) проверяет каждую минуту, если изменено время модификации каталога катушки или изменилось / etc / crontab .

Однако, если вы редактируете через CRONTAB -E , и напишите Crontab, будут проверены на яркие ошибки. E.G Если последняя строка вашего Crontab * * * * [ Вы получите сообщение:

crontab: installing new crontab
"/tmp/crontab.HbT2Sa/crontab":27: bad day-of-week
errors in crontab file, can't install
Do you want to retry the same edit? (y/n) 

(по крайней мере, если эта последняя строка - это линия 27).

Такой механизм проверки, конечно, не на месте, если вы просто добавляете строки в файл CRONTAB ( / etc / crontab , либо в / var / spool / Cron / ).

-121--175420-

Установите разрешения на / Home в 711 , а не 700 . Разрешение выполнения требуется для доступа к чему-либо в каталоге по имени, поэтому всем пользователям необходимо выполнить разрешение на / и / Home для доступа / Home / YourName . Пропуская разрешение на чтение предотвратит их перечисление всех других подкаталогов / Home .

Разрешения на самих домашних каталогов могут быть 700 . Таким образом, даже если кто-то догадается, что имя другого пользователя, они не смогут получить доступ к каталогу пользователя.

3
27.01.2020, 20:58

Теги

Похожие вопросы