Хотелось узнать, в чём причина отключения проверки: %config(noreplace) %verify(not size,md5,mtime) %_sysconfdir/pam.d/su Сегодня потерял некоторое время, пытаясь понять, почему rpm -V su молчит, а в pam.d/su по-прежнему указание на pam_stack, который именно сегодня (на одной из машин) удалился при обновлении.
Причина отключения указана в changelog'е пакета: - Removed verify checks for files controlled via control(8) facility. Это не влияет на появление файла .rpmnew Короче говоря, надо уточнить и переквалифицировать проблему.
А какие аргументы за отключение? Почему я не должен знать какие файлы в пакете изменены? Я заметил две проблемы. Связаны они с тем, что на момент обновления su в /etc/pam.d/su находилось старое содержимое, использующее pam_stack. 1. Ни при обновлении, ни при apt-get reinstall su файл .rpmnew не создался 2. Соответственно при отсутствии rpmnew не понять куда надо обратить внимание. К тому же я сомневаюсь, что файл pam.d/su когда-либо менялся на этой машине...
Аргумент в пользу отключения простой и очевидный: поскольку в пакете /bin/su поставляется с правами доступа 700, то в большинстве установок эти права меняются, и таким образом в большинстве установок rpmverify показывает изменение прав доступа к /bin/su. А вот почему не создался файл .rpmnew, надо разбираться.
Вот только воспроизвести несоздание .rpmnew у меня не получается.
Всё понятно, просто файл /etc/pam.d/su очень давно не менялся (последнее изменение датировано 23-м мая 2003 года, когда pam_stack был заменён на include). Ну а .rpmnew создаётся, когда в пакете меняется файл, помеченный как %config(noreplace). Таким образом, достаточно было вам один раз пропустить /etc/pam.d/su.rpmnew, чтобы через 2 года нарваться на грабли.
(In reply to comment #5) > Всё понятно, просто файл /etc/pam.d/su очень давно не менялся (последнее > изменение датировано 23-м мая 2003 года, когда pam_stack был заменён на include). Что давно не менялся, понял. > > Ну а .rpmnew создаётся, когда в пакете меняется файл, помеченный как > %config(noreplace). Так файл меняется по отношению к чему? К этому файлу в предыдущем пакете? К локальному файлу? Наверное здесь моё непонимание. > Таким образом, достаточно было вам один раз пропустить /etc/pam.d/su.rpmnew, > чтобы через 2 года нарваться на грабли. То есть в какой-то момент .rpmnew был удалён...
Файл .rpmnew создаётся, когда файл, помеченный как %config(noreplace), меняется между прежним и новым (устанавливаемым) релизами пакета. Другими словами, не стоит ждать, что этот файл будет создаваться при каждом обновлении этого пакета.
Всё понял, большое спасибо. Я почему-то думал, что при обновлении сверхка идёт с реальным файлом.