откройтесь отказавшего .rpm: Разрешение отклонено

При предположении, что все новые файлы находятся в (или может быть перемещен в) новый / и все старые файлы находятся в старых / каталогах, можно использовать 'разность - Ур, старый / новый /' для наблюдения различий в файлах между каталогами.

Если Вы не заботитесь о природе различий, только то, что некоторые файлы отличаются затем, использует grep для фильтрации вывода - но Вы потеряете код выхода от разности (1 = найденные различия). Вместо этого можно использовать код выхода от grep (1 = никакие найденные соответствия regexp, который можно интерпретировать, чтобы означать, что все файлы являются тем же).

например, я генерировал некоторые текстовые файлы в старом и новом (просто мусор, содержащий списки каталогов / мусорного ведра,/sbin, и / и т.д.). затем я отредактировал new/baz и удалил некоторые строки:

$ ls -l new old
new:
total 28
-rw-r--r-- 1 cas cas 11063 Sep 15 15:27 baz
-rw-r--r-- 1 cas cas 14529 Sep 15 15:25 foo

old:
total 20
-rw-r--r-- 1 cas cas  6843 Sep 15 15:24 bar
-rw-r--r-- 1 cas cas 12025 Sep 15 15:24 baz

во-первых, сравните эти двух директоров:

$ diff -ur old new | egrep '^(Only|diff)'
Only in old: bar
diff -ur old/baz new/baz
Only in new: foo
$ echo $?
0

здесь Вы видите код выхода, когда src и dst директора являются тем же (или имейте точно то же содержание),

$ diff -ur old old | egrep '^(Only|diff)'
$ echo $?
1

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

10
21.08.2012, 17:55
1 ответ

Если Ваш файл об/мин находится в Вашем корневом каталоге, и Ваш корневой каталог находится на NFS, корень не может иметь доступа к нему. Это так или иначе необычно: обычно, корень может получить доступ к каждому файлу. Но в общей установке, когда корневой доступ каталог, который смонтирован по NFS, правам пользователя nobody используются вместо пользователя root. Основная цель состоит в том, чтобы гарантировать, что корень на клиенте не может управлять файлами как корнем на сервере. Это реализовано, поскольку “корень имеет полномочия никого”, а не “корень может иметь чьи-либо полномочия execpt корень”, прежде всего, потому что это легче (хотя могут быть другие причины: некоторый сервер NFS применяет это к пользователям кроме корня, чтобы защитить всех пользователей системы на сервере).

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

chmod a+x .
chmod a+r something.rpm

С другой стороны, переместите файл об/мин в локальный каталог.

mv something.rpm /tmp
sudo rpm -i /tmp/something.rpm
11
27.01.2020, 20:02
  • 1
    Абсолютно точечный - на, спасибо за быстрый ответ. –  Oak 22.08.2012, 10:16

Теги

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