LINUX.ORG.RU

chmod -x -R

 


0

8

Привет. как выйти из такой ситуации:

[root@localhost]$ /bin/chmod -x -R /*

[root@localhost]$

примонтировать livecd или что-либо куда-либо нельзя.

Спасибо.

Овладеть мозгом.

IPR ★★★★★ ()

теперь сделай ls -al. Мне кажется вы тролль

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

идиот или нет, но просит решить за него какую-то таску.

ТСу: гугли. оно гуглится

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

Забыл добавить, что вопрос теоретический, естессно.

гугль не помог, или я плохо искал

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

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

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

Насколько я в теме, руту тоже все запрещено при этом.

$man chmod

A combination of the letters ugoa controls which users’ access to the file will be changed: the user who owns it (u), other users in the file’s group (g), other users not in the file’s group (o), or all users (a). If none of these are given, the effect is as if a were given, but bits that are set in the umask are not affected.

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

руту не запрещено. Это пользователю запрещено выполнять sudo или su. Оно ж тоже как бэ файл.

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

на ld-linux права на выполнение тоже слетели, фиг что новое запустишь, поэтому никаких chmod, su, sudo и прочего.

lspci ()
Ответ на: комментарий от gssomi

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

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

Короче, когда ты от рута сделал

[root@localhost]$ /bin/chmod -x -R /*

ты запретил всем пользователям выполнять какие было действия в системе. Даже не знаю как еще проще объяснить.

chmod-программа для изменения прав доступа к файлам и директориям.
-x - удаляешь все права.
-R - рекурсивно.
/* - все директории от корня.

Есть директория dirname с например такими правами drwxrwxr-x group:username. Так вот, когда делаешь chmod -x -R dirname права на директорию меняются на ?????????? ?:?. Тебе остается только вытащить бэкап и откатить назад, или переустановить.

gssomi ★★ ()

примонтировать livecd или что-либо куда-либо нельзя.

это ещё почему

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

условие задачи. такой вопрос был задан на одном собеседовании.

вот я и ломаю голову, а есть ли вообще решение

jenek1 ()

И вообще нужно руки оторвать тем, кто дает доступ обычным юзерам на chmod/chown

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

вы выполнили [root@localhost]$ /bin/chmod -x -R /*

примонтировать livecd или что-либо куда-либо нельзя

Какое решение?

jenek1 ()

Скопировать в систему бинарник chmod с другим именем и исправить права им. Или бинарник busybox.

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

Загрузишься в initramfs, и починишь свой кирпич.

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

Это слишком просто и неинтересно.

Реально интересно, есть ли способ выставить +x из голого баша?

lspci ()
Ответ на: комментарий от saahriktu

Скопировать по сети можно и без перезагрузки, башем из /dev/tcp/..., вгоняя неткатом. Толку-то, если запустить скопированное не получится?

lspci ()
Ответ на: комментарий от jenek1

Восстановить систему из бекапа. Если нет бекапа, значит админ идиот.

man_of_motley ★★ ()

Можно попробовать по ssh скопировать, но мне помнится, что при копировании ssh чего-то пытается запустить, поэтому вряд-ли сработает.

omnomnomnus ()
Ответ на: комментарий от saahriktu

Только вот откуда скопировать?
Я так понял, по тз, ничего вообще примонтировать нельзя.

Deleted ()

[root@localhost]$ /bin/chmod -x -R /*

$

Это опечатка или так было в ТЗ?

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

А это уже другой вопрос. И если он не имеет решения, то лучше и не искать решения в такой системе. В крайнем случае можно вытащить носитель с корневой ФС и подключить к другой машине, откуда и поправить права.

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

-x - удаляешь все права

Вообще-то только право на выполнение

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

не я про знаки, которые показывает права. Эххъ ну эти «drwxrwxrwx»

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

-x - удаляешь все права.

вообще всего лишь exec flag. Без него даже root ничего не сможет запустить.

conformist ★★★ ()
Последнее исправление: conformist (всего исправлений: 1)
Ответ на: комментарий от jenek1

Решения, скорее всего нет. Вот тут ещё один способ через ld.so, но её тоже нельзя будет запустить, ведь флаг исполнения снят и с неё. Ну и ниже способ с initramfs.

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

Если вдруг успели обрубить, пока не затерло права на всех файлах и остался хоть кто-то с исполняемыми правами, то можно ld-linux скопировать в него и через него запустить сам chmod. Либо думать, каким образом подобный файл можно получить от выполняющихся процессов...

lspci ()

Либо это задание на внимательность (как заметил man_of_motley, приглашение ввода ″$″ обычно не для root'а), либо универсального решения нет.

Может быть можно что-то сделать через pam-модули, допустим, pam_console_apply, если pam будет работать без x-бита.

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

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

Deleted ()
Ответ на: комментарий от anonymous

Там вопрос из другой оперы: chmod действует только на /bin.
У сабжа же на /*
Так что

/lib/ld-linux.so /bin/chmod +x /bin/chmod
не сработает.
ЗЫ. Там же советуют для решение проблемы заюзать cp и mv, но разве они не находятся в той же /bin для которой нет прав?

Deleted ()

А где вопрос? Ну попробовал я полностью такую же команду выполнить... (реально интересно стало как меня обматерят)

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

Можно попробовать по ssh скопировать

И как ты собрался запускать ssh без прав на выполнение?

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

Сорри, не смог распарсить это сообщение.

Но во флагах drwxrwxrwx «x» тоже отвечает за выполнение.

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

Нет. У директорий флаг x отвечает за возможность войти в эту директорию. Это не называют «выполнение».

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

Я знаю, за что этот флаг отвечает. Однако того факта, что это флаг execution, это не отменяет.

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

Вот и славно. Я просто не смог пройти мимо слов «отвечает за выполнение».

TeopeTuK ★★ ()

Подведем итог: если вопрос был сформулирован именно так - ничего сделать нельзя, а вот если бы chmod сделали только для /bin можно было бы дернуть ld-linux.

Наверное, это такой «подвох».

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

И вообще нужно руки оторвать тем, кто дает доступ обычным юзерам на chmod/chown

Ну это уже через чур. Юзеру свой скрипт исполняемым нельзя делать?

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

Какое решение?

Вдоль. Даже если бы имелась возможность вернуть права на chmod, перелопачивать всю систему и менять права? ... Только вдоль!

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

sshd уже запущен скорее всего, scp уже с другой машины. неожиданно, да? только sshd при копировании помнится какой-то дочерний процесс стартует. поэтому мне кажется не сработает.

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