LINUX.ORG.RU

[ubuntu] Права на /var

 


0

1

Убил созданный случайно раздел /var

Но то ли я -p пропустил, толи хз, но права не скопировались. Понял только когда не смог нормально gdm стартануть из-за изменения владельца ICEautority.

Пока влепили для /var чтение всем, запись root, на /var/lib/gdm поменял на drw---x--x 3 gdm gdm.

С какими ещё траблами могу столкнуться? Какие должны быть права в дереве /var? На что надо закрыть чтение?

★★★★★

Локальная почта: группа владельца mail, в spool/ пораздавать права, в log/ раздать права и сделать 640 на системные логи...

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Хм, а нет ли какого-то способа скопировать только права, а не сами файлы? Тогда загрузившись с LiveCD можно бы было провернут...

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

У тебя ubuntu, у меня debian, лучше добавь тег [UBUNTU] ивтред набегут те, кто выложат ls -l

Чей лог, тот и владелец, а к системным у меня группа adm.

adriano32 ★★★
()
Ответ на: комментарий от Suntechnic

Можно. Например как-то собрать в кучу

$ find -type f -exec echo "{}" \;
$ find -type f -exec stat -c %a "{}" \;
$ find -type f -exec stat -c %U "{}" \;
$ find -type f -exec stat -c %G "{}" \;
Ты понял, по порядку: относительный (можно наверное и абсолютный сделать) путь, атрибуты, владелец и группа. Уже так можно собрать в четыре файла, обрубить sed'ом недостающее, прилепить нехватающее (touch, chown, chmod), собрать при помощи tr в один файл и выполнить.

adriano32 ★★★
()
Ответ на: комментарий от Suntechnic

Вот

root@host# cat find_script
#/bin/sh
attrib=`stat -c %a "$1"`
owner=`stat -c %U "$1"`
group=`stat -c %G "$1"`
echo "touch "$1" && chown "$owner":"$group" "$1" && chmod "$attrib" "$1

root@host# find -type f -path "./*" -exec /home/adriano32/find_script "{}" \;
Но ты, пока я писал, наверное, уже всё сделал :)

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Не-а - я хочу скрипты cpown и cpmod, с опциями, обработкой ошибок, блэкджеком и шлюхами :) А теперь даже не знаю - допишу или нет. Но всё равно спасибо!

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Не за что. Если б ты не ответил на сообщение, я мог бы его удалить :)

Ну ты понял, выхлоп в файл, затем «bash файл»

Только с путями затык небольшой. Как он тут выложен - надо запускать из /var (из-за ./*)

adriano32 ★★★
()
Ответ на: комментарий от adriano32

У меня всегда так - нужно вот было (точнее хотелось) чтоб на рабочем столе показывался сислог - теперь у меня есть демон управления обоями и всякие плюшки типа аналога echo только с выводом на обои...

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от adriano32

ну я примерно так и делаю, только не в файл сохранияю а в массив, а потом из массива применяю (я хочу ещё опции save и restore прикрутить, тогда файлами с деревом прав можно ещё и обмениваться будет).

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Родители на РостСельМаше случайно не работали?

Хотя подобная тяга к велосипедостроению есть и во мне, хоть никто в этой отрасли и не работал :)

adriano32 ★★★
()
Ответ на: комментарий от Suntechnic

Это хорошая идея кстати.

Правда тут может быть лучше допилить функция импорта/экспорта дерева к утилите tree. Ведь она уже умеет выводить и аттрибуты, и владельца, и группу, и много чё ещё.

Хотя такой велосипед ничем ни хуже.

adriano32 ★★★
()
Ответ на: комментарий от adriano32

Не, я в Ростов понаехал. (Хотя прапрадет понауехал)

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от adriano32

Хм... Я наоборот подумал, что твой подход интереснее - зачем сохранять файл, если и в правду - можно сохранять скрипт. Тогда юзеру просто останется запустить его в нужной директории. Это хомячкам ещё проще.

Кстати, а зачем touch?

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Ну тут смотря какая ситуация возникла.

Если ты воссоздаёшь var с нуля, то ты mkdir /var а дальше берёшь список файлов где угодно таким скриптом, выполняешь его у себя и получаешь в точности все файлы на своих местах, хоть и пустые. Хотя на самом деле это скорее всего не нужно, ведь умные стартовые скрипты, которые пишут в /var проверяют наличие файла и если его нет, создают.

Если же ты восстанавливаешь из бэкапа, который заблаговременно создавал или восстановил RD софтом, то от touch никакого вреда нет - просто обновится дата доступа, а вот если файла не оказалось - то избавишься от возможных error'ов при выполнении скрипта (если файла внезапно не окажется потом на месте), ошибок, которые ты как можешь не заметить, так и проигнорировать. А нулевого размера файл - не помеха, к тому же отсортировав по дате доступа ты увидишь что в директории нового, а что старого. Чем плохо?

adriano32 ★★★
()

Годный тред, годные коменты, спасибо, законьспектировал

sudoer
()
Ответ на: комментарий от Suntechnic

Хотя с директориями тогда лажа, если их нет перед touch ./dir/file.

adriano32 ★★★
()
Ответ на: комментарий от Suntechnic

Аа... теперь дошло. У тебя все файлы на месте, просто ты делал cp без --preserve=mode,ownership, то есть с --no-preserve=all проще говоря.
Но атрибуты и владельца есть откуда переписать.
Тогда тач не нужен впринципи, только если не хочешь, чтоб впоследствии проще было левые файлы находить, отсортировав по дате модификации.

А в мой скрипт надо вносить правки касательно директорий...

adriano32 ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.