Как восстановить с chmod-R 000 / мусорных ведер?

ipconfig (конфигурация протокола Интернета) в Microsoft Windows является консольным приложением, которое отображает все текущие значения конфигурации сети TCP/IP и может изменить настройки Dynamic Host Configuration Protocol DHCP и Domain Name System DNS.

ifconfig (короткий для интерфейсной конфигурации) является утилитой системного администрирования в подобных Unix операционных системах, чтобы настроить, управлять, и запросить параметры сетевого интерфейса TCP/IP от интерфейса командной строки (CLI) или в сценариях конфигурации системы.

dhcpcd является клиентом DHCP. Это используется, чтобы получить IP-адрес и другую информацию с dhcp сервера, возобновить время владения IP-адреса и автоматически настроить сетевой интерфейс. Программа выполняет подобную функцию как dhclient.

36
14.07.2016, 21:00
4 ответа

Загрузите другую чистую ОС, смонтируйте файловую систему и исправьте полномочия.

Поскольку Ваша поврежденная файловая система живет в VM, необходимо иметь в наличии хост-систему и работу. Смонтируйте свою поврежденную файловую систему там и зафиксируйте ее.

В случае QEMU/KVM можно, например, смонтировать файловую систему с помощью nbd.

28
27.01.2020, 19:36
  • 1
    я думаю, что это, вероятно, корректно как способ зафиксировать его, однако, я должен попытаться смонтировать систему - прямо сейчас я просто получаю предварительную систему от файла изображения - как в initrd.img memtest и abi. –  jett 01.06.2013, 10:25
  • 2
    @jett, Вы смонтировались /boot раздел этого VM. Попытайтесь определить местоположение корневой файловой системы. Если на LVM, выполненном vgchange -ay после соединения nbd активировать его. –  Stéphane Chazelas 01.06.2013, 10:44
  • 3
    @StephaneChazelas у меня есть он. Спасибо вам обоим так, я люблю эти виды ошибок, изучили тонну! –  jett 01.06.2013, 11:08
  • 4
    Glad это фиксируется. Я пропускаю что-то. Если это - vm, то это - всего один большой файл к хост-системе, не так ли? Как Вы монтируете что-нибудь в нем, чтобы сделать восстановления? (Я понимаю, как сделать это в non-vm системе.) –  Joe 07.06.2013, 22:18

Как раз когда root, Вы не можете выполнить файлы, которые имеют нет x бит полномочий установлен. Что можно сделать, хотя вызов ld.so на нем (если они - динамично связанные исполняемые файлы):

$ echo /lib/*/ld*.so
/lib/i386-linux-gnu/ld-2.27.so /lib/x86_64-linux-gnu/ld-2.27.so

Используйте тот, который соответствует архитектуре chmod исполняемый файл. В моем случае x86_64 один:

sudo /lib/x86_64-linux-gnu/ld-2.27.so /bin/chmod 755 /bin /bin/chmod

Или призовите что-то /usr/bin или в другом месте сделать chmod как perl:

sudo perl -e 'chmod 0755, "/bin", "/bin/chmod"

Остерегайтесь при восстановлении полномочий что некоторые файлы в /bin как mount или su предназначены, чтобы иметь полномочия кроме 0755.

Если Вы перезагрузили, однако, Вы не смогли переходить к сути дела, куда можно работать perl или ld.so все же. Можно починить вещи от initramfs хотя (передают неправильный корневой каталог для получения оболочки восстановления в initramfs; см. также break=bottom или break=init параметр ядра на Debian, чтобы initramfs дал Вам оболочку после корневой файловой системы, был смонтирован (только для чтения хотя)). Или загрузите свой VM от живого образа CD или зафиксируйте путем монтирования файловой системы VM на хосте как предложенные другие.

Фиксация initramfs пути:

В grub, отредактируйте запись загрузки и удалите root= параметр от linux команда:

setparams 'Ubuntu, with Linux 3.2.0-27-generic'                          

recordfail                                                               
gfxmode $linux_gfx_mode                                                  
insmod gzio                                                              
insmod ext2                                                              
set root='(hd1)'                                                         
search --no-floppy --fs-uuid --set=root dc02b07c-88ef-4804-afe0-4f02db2\ 
94561                                                                    
linux /boot/vmlinuz-3.2.0-27-generic                                     
initrd /boot/initrd.img-3.2.0-27-generic                                 

Ctrl-X для начальной загрузки. initramfs Ubuntu не найдет корневую файловую систему, так запустите восстановление sh. Затем смонтируйте корневую файловую систему (в моем случае /dev/vdb, адаптируйтесь к своей машине), и почините вещи там:

Target filesystem doesn't have requested /sbin/init.
No init found. Try passing init= bootarg.


BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4) built-in shell (ash)
Enter 'help' for a list of built-in commands.

(initramfs) mkdir /x
(initramfs) mount /dev/vdb /x
[   48.430071] EXT3-fs (vdb): error: couldn't mount because of unsupported optio
nal features (240)
[   48.477406] EXT4-fs (vdb): recovery complete
[   48.477747] EXT4-fs (vdb): mounted filesystem with ordered data mode. Opts: (
null)
(initramfs) chmod -R 755 /x/bin
(initramfs) umount /x
(initramfs) reboot

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

Фиксация путем выполнения python как init:

В grub, отредактируйте запись загрузки, на этот раз сохраните root= параметр, изменение ro кому: rw и добавьте a init=/usr/bin/python:

setparams 'Ubuntu, with Linux 3.2.0-27-generic'                          

recordfail                                                               
gfxmode $linux_gfx_mode                                                  
insmod gzio                                                              
insmod ext2                                                              
set root='(hd1)'                                                         
search --no-floppy --fs-uuid --set=root dc02b07c-88ef-4804-afe0-4f02db2\ 
94561                                                                    
linux /boot/vmlinuz-3.2.0-27-generic root=UUID=dc02b07c-88ef-4804-afe0-\
4f02db294561 rw init=/usr/bin/python
initrd /boot/initrd.img-3.2.0-27-generic                                 

Затем при подсказке Python:

Begin: Running /scripts/init-bottom ... done.
Python 2.7.3 (default, Apr 20 2012, 22:39:59)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.chmod('/bin/sh',0755)
>>> os.chmod('/bin/chmod',0755)
>>> os.execl('/bin/sh','sh')
sh: 0: can't access tty; job control turned off
# chmod -R 0755 /bin
# mount -o remount,ro /
[  100.704720] EXT4-fs (vdb): re-mounted. Opts: errors=remount-ro
# exec /sbin/init

Снова, когда-то загруженный, исправьте полномочия файлов, которые не предназначены, чтобы иметь 755 полномочий путем сравнения другой системе.

68
27.01.2020, 19:36
  • 1
    +1, другой большой ответ, Stephane. Я добавил бы: в already try to reboot случай: начальная загрузка на живом CD, смонтируйте rw раздел, содержащий / мусорное ведро, и chmod 755 /bin (и файлы внутри, если они были изменены также). Но позже, проверьте, что все файлы являются правильным разрешением (в зависимости от Вашего Linux distrib, вероятно, можно проверить / мусорное ведро по исходному пакету), –  Olivier Dulac 01.06.2013, 10:29
  • 2
    WOW. Ваша глубина знания страшна 8-). –  slm♦ 01.06.2013, 19:52
  • 3
    я не могу использовать ld.so для выполнения. pb.abhijeetr.com/fRWf, Что идет не так, как надо здесь? –  Abhijeet Rastogi 04.06.2013, 07:13
  • 4
    @shadyabhi, Вы, вероятно, имеете систему мультидуги и пытаетесь использовать 32 бита ld.so на исполняемом файле на 64 бита. У Вас должен быть другой ld.so, возможно, в некотором каталоге как /lib/x86_64-linux-gnu. –  Stéphane Chazelas 04.06.2013, 09:32
  • 5
    @Kwpolska, os.execl и exec для выполнения, они не разветвляют процесс, просто заменяют исполняемый файл в том же процессе, таким образом, все сделано в pid 1. Обработайте 1 первоначально выполнения python, затем sh, затем init. –  Stéphane Chazelas 08.06.2013, 12:29

Используйте Python :)

$ python
>>> import os
>>> os.chmod('/bin', 0755)

Этому ничто не должно быть нужно от /bin сделать его задание. Очевидно, я не испытал это...

8
27.01.2020, 19:36
  • 1
    Хм, я всегда полагал, что это и другие языки сценариев просто назовут chmod программу. Довольно хороший для знания! –  jett 01.06.2013, 11:36
  • 2
    Нет, chmod системный вызов, названный chmod программа и также chmod функция в python/perl/ruby и т.д. окружает, действительно звонят chmod утилита все же. –  Dennis Kaarsemaker 01.06.2013, 11:43
  • 3
    Кроме тех оболочек, которые имеют chmod встроенный. Это - вид ситуации где оболочки как sash полезны. Это статически связано и имеет большинство команд восстановления как chmod встроенный (так не полагается ни на что больше). Это обычно находилось бы в /sbin хотя это не вредило бы имеющим дополнительным копиям во всех файловых системах и может использоваться в сочетании с memlockd. zsh и ksh93 имейте chmod встроенное (хотя не включенный по умолчанию). –  Stéphane Chazelas 01.06.2013, 20:13
  • 4
    @Dennis, Но как можно выполнить его, если Вы не можете загрузиться в систему вообще? Поскольку OP говорит: «к сожалению, теперь я не могу загрузиться в систему вообще». –  Nadir Sampaoli 02.06.2013, 13:08
  • 5
    @NadirSampaoli Это - определенно одна из тех вещей, которые необходимо поймать перед перезагрузкой. Это могло быть успешно сделано после chmodding корень и прежде, чем закрыть систему. А-ч –  Ken Bellows 14.06.2013, 21:39

Можно попробовать sudo chmod -R 744 /path-to-your-system/bin от живого дистрибутива.

0
27.01.2020, 19:36

Теги

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