xroot вместо root

Автор Сергей Н.П., 19 мая 2021, 19:49:57

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Сергей Н.П.

Уважаемые форумчане,прошу подсказать как можно исправить xroot на rootDebian:/$ ls -la
итого 393684
drwxr-xr-x  22 xroot root      4096 дек 27 11:29 .
drwxr-xr-x  22 xroot root      4096 дек 27 11:29 ..
drwxr-xr-x   2 xroot root      4096 апр  3 11:09 bin
drwxr-xr-x   3 xroot root      4096 апр  3 11:12 boot
drwxr-xr-x  14 xroot root      3220 мая 19 18:32 dev
drwxr-xr-x 104 xroot root      4096 мая 19 18:32 etc
drwxr-xr-x   4 xroot root      4096 апр 27  2020 home
drwxr-xr-x  14 xroot root      4096 мая 15 21:38 lib
drwx------   2 xroot root     16384 фев 24  2012 lost+found
drwxr-xr-x   6 xroot root      4096 дек 27 16:58 media
drwxr-xr-x   6 xroot root      4096 июл  5  2020 mnt
drwxr-xr-x   2 xroot root      4096 фев 24  2012 opt
dr-xr-xr-x 156 xroot root         0 мая 19 18:32 proc
drwx------  11 xroot root      4096 мая 19 18:22 root
drwxr-xr-x  28 xroot root       800 мая 19 18:33 run
drwxr-xr-x   2 xroot root      4096 апр 26  2020 samba
drwxr-xr-x   2 xroot root      4096 мая 15 21:39 sbin
drwxr-xr-x   3 xroot root      4096 авг 30  2020 srv
-rw-------   1 xroot root 402653184 апр 13  2020 swap
dr-xr-xr-x  12 xroot root         0 мая 19 18:32 sys
drwxrwxrwt  10 xroot root       200 мая 19 18:32 tmp
drwxr-xr-x  10 xroot root      4096 фев 24  2012 usr
drwxr-xr-x  11 xroot root      4096 янв  1  1970 var
Это как видите корень на сервере и тут владелец файлов указан xroot вместо root, Это прозошло после того как я использовал chroot для исправления системы все в системе исправил вышел через exit перезагрузился уже в исправленной системе появилась эта проблемма, если кто знает как это исправить буду очень признателен.

Prokurator

А использовать системные команды из-под root-а религия не позволяет ?.. :)
попробуй так что ли:
войти как root (лучше напрямую или через "su -")
# chgrp root имя_файла_с_расширением      -для изменения группы
# chown root имя_файла_с_расширением    -для изменения владельца файла
про ключи к этим командам RTFM через man :)
.. ну как-то так.

ps: или пробовали уже и не вышло ?

dzhoser

Есть способ с восстановлением прав - переустановка всех пакетов в системе через системный менеджер пакетов. По крайне мере системные файлы будут соотвествовать идеальному состоянию.
для убунты у меня валяется такая строчка стыренная откуда из тырнета.
# for p in `dpkg -l|egrep '^ii'|awk '{print $2}'`; do apt-get install --reinstall $p ; done
будет куча вопроса про обновления измененных конфигов, которые для восстановления прав так то не помешало бы обновить. Я бы забекапил /etc (а лучше всю систему в sqashfs со сжатием или clonezilla) и после обновления конфигов в обратку накатил бы отличия.
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

Сергей Н.П.

#3
Debian:/$  for p in `dpkg -l|egrep '^ii'|awk '{print $2}'`; do apt-get install --reinstall $p ; done
dpkg: предупреждение: не удалось открыть файл настройки «/root/.dpkg.cfg» на чтение: Отказано в доступе
E: Не удалось открыть файл блокировки /var/lib/dpkg/lock-frontend - open (13: Отказано в доступе)

Как видите не получается Отказано в доступе хотя я вошел от root, Я предполагаю что система после chroot так и не вернулась к исходному состоянию. Поэтому при любых командах даже от root все время пишет отказано в доступе.

Сергей Н.П.

 Prokurator А вы обратили внимание что в системе файлов больше 300 тысяч и если следовать вашим рекомендациям то вероятно через год или чуть меньше можно это закончить

dzhoser

Зашрузитесь в live режиме и сделайте chroot на /.
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

Сергей Н.П.

Если я делаю chroot на / то получаю вот это root@debian:~# mount /dev/sdb1 /     
root@debian:~# chroot /
bash: warning: setlocale: LC_CTYPE: cannot change locale (ru_RU.UTF-8): No such file or directory
bash: warning: setlocale: LC_COLLATE: cannot change locale (ru_RU.UTF-8): No such file or directory
root@debian:/# ls -la
total 288928
drwxr-xr-x 22 root root      4096 May  9 10:17 .
drwxr-xr-x 22 root root      4096 Dec 27 00:29 ..
drwxr-xr-x  2 root root      4096 May 13 12:15 bin
drwxr-xr-x  3 root root      4096 May  7 11:15 boot
drwxr-xr-x 22 root root      4096 Dec 27 00:29 chroot
drwxr-xr-x 13 root root      3000 May 20 09:46 dev
drwxr-xr-x 58 root root      4096 May 20 09:41 etc
drwxr-xr-x  2 root root      4096 Jan 22  2012 home
drwxr-xr-x 14 root root      4096 May 13 12:15 lib
drwx------  2 root root     16384 Feb 24  2012 lost+found
drwxr-xr-x  3 root root      4096 May  9 10:38 media
drwxr-xr-x  3 root root      4096 May  9 11:17 mnt
-rw-r--r--  1 root root 295485129 May  9 10:09 my-rootfs.tar.bz2
drwxr-xr-x  2 root root      4096 Feb 24  2012 opt
dr-xr-xr-x 81 root root         0 Dec 31  1969 proc
drwx------  5 root root      4096 May 13 12:28 root
drwxr-xr-x 13 root root       600 May 20 09:47 run
drwxr-xr-x  2 root root      4096 May 13 12:15 sbin
drwxr-xr-x  2 root root      4096 Feb 24  2012 srv
dr-xr-xr-x 12 root root         0 May 20 09:40 sys
drwxrwxrwt  2 root root        40 May 20 09:41 tmp
drwxr-xr-x 10 root root      4096 Feb 24  2012 usr
drwxr-xr-x 11 root root      4096 Dec 31  1969 var
Это получается что я остаюсь в системе live. Или я что то не так делаю? Для того чтобы сделать chroot надо смонтировать неисправную систему тоесть создать папку chroot или любую в live системе а потом в эту папку смонтировать неисправную систему. Я делаю это вот так -root@debian:~# lsblk
NAME      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda         8:0    1   1.9G  0 disk
`-sda1      8:1    1   1.9G  0 part /
sdb         8:16   0   1.8T  0 disk
|-sdb1      8:17   0    25G  0 part
`-sdb2      8:18   0 906.5G  0 part
mtdblock0  31:0    0     1M  0 disk
mtdblock1  31:1    0     4M  0 disk
mtdblock2  31:2    0   251M  0 disk
root@debian:~# mount /dev/sdb1 /chroot
root@debian:~# lsblk
NAME      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda         8:0    1   1.9G  0 disk
`-sda1      8:1    1   1.9G  0 part /
sdb         8:16   0   1.8T  0 disk
|-sdb1      8:17   0    25G  0 part /chroot
`-sdb2      8:18   0 906.5G  0 part
mtdblock0  31:0    0     1M  0 disk
mtdblock1  31:1    0     4M  0 disk
mtdblock2  31:2    0   251M  0 disk
root@debian:~# chroot /chroot
bash: PS1: команда не найдена
xroot@debian:/# ls -la
итого 393704
drwxr-xr-x  22 xroot root      4096 дек 27 11:29 .
drwxr-xr-x  22 xroot root      4096 дек 27 11:29 ..
drwxr-xr-x   2 xroot root      4096 апр  3 11:09 bin
drwxr-xr-x   3 xroot root      4096 апр  3 11:12 boot
drwxr-xr-x   5 xroot root      4096 фев 24  2012 dev
drwxr-xr-x 104 xroot root      4096 мая 20 16:44 etc
drwxr-xr-x   2 xroot root      4096 апр 14  2020 home
drwxr-xr-x  14 xroot root      4096 мая 15 21:38 lib
drwx------   2 xroot root     16384 фев 24  2012 lost+found
drwxr-xr-x   6 xroot root      4096 дек 27 16:58 media
drwxr-xr-x   6 xroot root      4096 июл  5  2020 mnt
drwxr-xr-x   2 xroot root      4096 фев 24  2012 opt
drwxr-xr-x   2 xroot root      4096 янв 23  2012 proc
drwx------  11 xroot root      4096 мая 20 19:55 root
drwxr-xr-x   3 xroot root      4096 мая  9 09:46 run
drwxr-xr-x   2 xroot root      4096 апр 26  2020 samba
drwxr-xr-x   2 xroot root      4096 мая 15 21:39 sbin
drwxr-xr-x   3 xroot root      4096 авг 30  2020 srv
-rw-------   1 xroot root 402653184 апр 13  2020 swap
drwxr-xr-x   2 xroot root      4096 янв  1  2011 sys
drwxrwxrwt   2 xroot root      4096 мая 17 11:05 tmp
drwxr-xr-x  10 xroot root      4096 фев 24  2012 usr
drwxr-xr-x  11 xroot root      4096 янв  1  1970 var
Вот тут появляется x перед root затем выхожу через exit перезагружаю систему а x как был так и остается перед root . Может я что то делаю не правильно?

dzhoser

Нет не правильно
После загрузки
mkdir /rescue
fdisk -l
Определяем идентификатор диска
mount /dev/sdx1 /rescue
mount -t proc proc /rescue/proc
mount -t sysfs sys /rescue/sys
mount -o bind /dev /rescue/dev
mount -t devpts pts /rescue/dev/pts
chroot / rescue
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

Сергей Н.П.

#8
Спасибо dzhoser, за помощь. Сделал chroot и применил for p in `dpkg -l|egrep '^ii'|awk '{print $2}'`; do apt-get install --reinstall $p ; done
Сначала все шло хорошо все файлы заменялись а когда подошла очередь locales поменял а настроить его не смог и пошел по кругу пришлось после получасового повторения остановить выполнение скрипта вручную Ctrl+C. А вот теперь думаю не переустановить ли систему заново. dzhoser может быть я не правильно выхожу из chroot вход вы расписали а выход в обратном порядке или нет просто exit и все сразу отмонтируется?

dzhoser

При перезагрузке должны отмонтироваться. А сейчас какие права на корне?
Переустановить это самый быстрый вариант, на будущее делайте бекапы.
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

Сергей Н.П.

Те же что и были xroot . Да я понимаю что переустановка это не лучший вариант, но ничего больше не представляю, Или есть варианты?

Prokurator

Цитата: Сергей Н.П. от 20 мая 2021, 17:11:37
Prokurator А вы обратили внимание что в системе файлов больше 300 тысяч и если следовать вашим рекомендациям то вероятно через год или чуть меньше можно это закончить

.. написАть короткий скрипт по алгоритму поиска-замены в правах файла xroot-а на root ?
нет..
насколько я понял ваши знания вполне достаточны для этого

ps: может попробовать (если дает по этому способу изменять права руками на единичных файлах), прежде чем систему-то переставлять.. :)

Prokurator

#12
Цитата: Сергей Н.П. от 21 мая 2021, 22:33:24
Те же что и были xroot . Да я понимаю что переустановка это не лучший вариант, но ничего больше не представляю, Или есть варианты?

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

mrgoodvin

Prokurator, cкрипт писать не обязательно то. Есть ключ для рекурсивного изменения поддиректорий "R" и всё таки верно RTFM. Так что можно было бы применить chown для корневых директорий, которых приблизительно 10. Проблема в том есть что имеются файлы и даже директории не root'овские, к примеру тому в /usr/bin/ есть файлы с другим собственником тем отличительным от root. Проверить что там твориться в группах и с пользователям(и), нужно было с самого то начала. chroot сам по себе автономно изменить владельца не мог если не сделать то специально, предполагаю неверное использование его или манипуляция была с учетными записями. Не обязательно делать псевдоним какой-то если даже совсем не нужное на сервере то, можно было бы обойтись и "переименованием" возможно. Вопросы в том кто такой сейчас xroot и 0 ли он, и кто такой root? И если разобраться в том то изменять владельца корня не понадобиться вовсе возможно, а возможно даже если не скорее всего будет ошибкой то делать. А в целом ход мыслей верный. Одно правило верное всегда было есть и будет: если сервер у вас, делайте копии резервные, хотя бы перед манипуляциями глобальными. Если всё же действительно были изменения рекурсивно владельца корня и копий не было, единственный trueway это резервирование того что имеется и чистая переустановка системы и восстановление из копии всего того что есть нужное с сохранением владельца системы. А так вообще мало информации для действий без выводов. А учитывая то что имеем на момент данный, то скорее всего имело место быть "переименование" root на сервере с сохранением директории root а xroot скорее всего 0, и не понятно еще что в /etc/group имеем. Как-то так.