Безвыходное положение? (про chmod)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
soko1
Сообщения: 265
Статус: лесной бздшник
ОС: freebsd7

Безвыходное положение?

Сообщение soko1 »

На одном сайте я нашел прикол:

%chmod -x /bin/chmod

Ес-но перед этим сделал копию этой утилиты под другим именем с первоначальными атрибутами.
Но всеже, как сделать обратное? =)))

% chmod +x /bin/chmod
zsh: permission denied: chmod

Только советы типа: "Грузимся с livecd и выполняем...." не принимаются:) Интересно просто, есть ли выход из ситуации штатными утилитами, или все же замкнутый круг?
Спасибо сказали:
Slimy
Сообщения: 1689
ОС: openSuSE 11.2 GM (GеMор едишн)

Re: Безвыходное положение?

Сообщение Slimy »

soko1 писал(а):
26.07.2006 18:36
На одном сайте я нашел прикол:

%chmod -x /bin/chmod

Ес-но перед этим сделал копию этой утилиты под другим именем с первоначальными атрибутами.
Но всеже, как сделать обратное? =)))

% chmod +x /bin/chmod
zsh: permission denied: chmod

Только советы типа: "Грузимся с livecd и выполняем...." не принимаются:) Интересно просто, есть ли выход из ситуации штатными утилитами, или все же замкнутый круг?

прикольно :) на ум пришел только HEX редактор для HDD .
Если уже ничего не помогает - прочти инструкцию.
sysinstall - гадость :)
ASUS A6q00Vm Pentium-M 1.7 GHz, 2Gb RAM, 160Gb HDD,
GeForce Go 7300 64Mb video
Спасибо сказали:
Аватара пользователя
helicopter
Сообщения: 324
Статус: Комсомолец
ОС: Gentoo Linux

Re: Безвыходное положение?

Сообщение helicopter »

# emerge coreutils
Выбирая Linux, вы развиваете цивилизацию. Выбирая windows, вы набиваете кошелёк забугорному буржую...
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Безвыходное положение?

Сообщение serzh-z »

Забавно.

Штатных средств, имхо, дофига, по крайней мере следующие:

Можно переустановить пакет coreutils.
Можно скопировать файл chmod с дистра.
gcc - штатная утилита? Если да, то написать пару строчек в C-файле с вызовом функции chmod не проблема.
Использовать install, он может делать то же самое (т.е. просто вызывает функцию chmod), что и утилита chmod.
Спасибо сказали:
Аватара пользователя
soko1
Сообщения: 265
Статус: лесной бздшник
ОС: freebsd7

Re: Безвыходное положение?

Сообщение soko1 »

serzh-z писал(а):
26.07.2006 18:56
Забавно.

Штатных средств, имхо, дофига, по крайней мере следующие:

Можно переустановить пакет coreutils.
Можно скопировать файл chmod с дистра.
gcc - штатная утилита? Если да, то написать пару строчек в C-файле с вызовом функции chmod не проблема.

Не, ну это все конечно же понятно. Можно пересобрать систему, можно пересобрать пакет. А если всего этого нет??? Что тогда?
serzh-z писал(а):
26.07.2006 18:56
Использовать install, он может делать то же самое (т.е. просто вызывает функцию chmod), что и утилита chmod.

Во, вот это уже похоже на выход...
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: Безвыходное положение?

Сообщение Alexxx »

прикольно на ум пришел только HEX редактор для HDD .
+1 Поменять один битик в редакторе всяко проще, чем городить всякие инсталляторы и прочую лабуду, конечно, если знать, какой именно битик :-)
Спасибо сказали:
Аватара пользователя
soko1
Сообщения: 265
Статус: лесной бздшник
ОС: freebsd7

Re: Безвыходное положение?

Сообщение soko1 »

Alexxx писал(а):
26.07.2006 19:20
прикольно на ум пришел только HEX редактор для HDD .
+1 Поменять один битик в редакторе всяко проще, чем городить всякие инсталляторы и прочую лабуду, конечно, если знать, какой именно битик :-)

Это все конечно же так. Но вот представь ситуацию: сидишь ты, админишь свой сервак, нужно срочно проделать какие-то операции с chmod'ом, а тут кто-то над тобой страшно решил прикольнуться. А интернета нет = > hex редактора тоже нет, что вот тогда?))
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Безвыходное положение?

Сообщение serzh-z »

soko1 писал(а):
26.07.2006 19:02
А если всего этого нет??? Что тогда?
А если сделать "rm -rf /bin /sbin /usr/bin /usr/sbin", что тогда? Находите аналогию? Или предполагается, что в UNIX должна быть предсмотрена утилита super_chmod? Слишком много "если", имхо... Это проблема яйца и курицы.

install это, в общем-то, не выход, а просто побочная, в некоторой мере, функция сей программы.
Спасибо сказали:
Аватара пользователя
Shura
Сообщения: 1537
Статус: Оказывается и без KDE есть жизнь
ОС: FreeBSD 8.0-RC2

Re: Безвыходное положение?

Сообщение Shura »

Ребята, расслабтесь

Код: Выделить всё

sh '/bin/chmod +x /bin/chmod'
Rock'n'roll мертв © БГ
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Безвыходное положение?

Сообщение serzh-z »

soko1 писал(а):
26.07.2006 19:24
проделать какие-то операции с chmod'ом, а тут кто-то над тобой страшно решил прикольнуться. А интернета нет = > hex редактора тоже нет, что вот тогда?))
А если ещё и питание отключат, и ИБП не будет...

Ладно, допустим не отключат - тогда сесть, и написать куцую версию chmod самому - это займёт три минуты, в зависимости от скорости набора текста.
Спасибо сказали:
Аватара пользователя
soko1
Сообщения: 265
Статус: лесной бздшник
ОС: freebsd7

Re: Безвыходное положение?

Сообщение soko1 »

Shura писал(а):
26.07.2006 19:32
Ребята, расслабтесь

Код: Выделить всё

sh '/bin/chmod +x /bin/chmod'

Во, точно!
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Безвыходное положение?

Сообщение serzh-z »

Shura писал(а):
26.07.2006 19:32
Ребята, расслабтесь

Код: Выделить всё

sh '/bin/chmod +x /bin/chmod'
А чё раньше молчал?.. :D
Спасибо сказали:
Аватара пользователя
soko1
Сообщения: 265
Статус: лесной бздшник
ОС: freebsd7

Re: Безвыходное положение?

Сообщение soko1 »

serzh-z писал(а):
26.07.2006 19:31
А если сделать "rm -rf /bin /sbin /usr/bin /usr/sbin", что тогда? Находите аналогию? Или предполагается, что в UNIX должна быть предсмотрена утилита super_chmod? Слишком много "если", имхо... Это проблема яйца и курицы.

Одно дело поудалять сдури все файлы, а совсем другое - просто поменять атрибуты, поэтому сравнение не самое лучшее.
serzh-z писал(а):
26.07.2006 19:31
install это, в общем-то, не выход, а просто побочная, в некоторой мере, функция сей программы.

$ ldd /usr/bin/install
/usr/bin/install:
libc.so.5 => /lib/libc.so.5 (0x2807a000)
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: Безвыходное положение?

Сообщение Alexxx »

soko1 писал(а):
26.07.2006 19:24
Alexxx писал(а):
26.07.2006 19:20

прикольно на ум пришел только HEX редактор для HDD .
+1 Поменять один битик в редакторе всяко проще, чем городить всякие инсталляторы и прочую лабуду, конечно, если знать, какой именно битик :-)

Это все конечно же так. Но вот представь ситуацию: сидишь ты, админишь свой сервак, нужно срочно проделать какие-то операции с chmod'ом, а тут кто-то над тобой страшно решил прикольнуться. А интернета нет = > hex редактора тоже нет, что вот тогда?))

Ну тут всё зависит от того, какого ты хочешь достигнуть результата. Хотя бы начиная от избитого http://lleo.aha.ru/na/index.shtml, до .., ну тут фантазия индивидума безгранична, к примеру, предыдущий девиз random_code.
Спасибо сказали:
Аватара пользователя
soko1
Сообщения: 265
Статус: лесной бздшник
ОС: freebsd7

Re: Безвыходное положение?

Сообщение soko1 »

serzh-z писал(а):
26.07.2006 19:37
А чё раньше молчал?.. :D

Запотентовать надо:)

Alexxx писал(а):
26.07.2006 19:40
Ну тут всё зависит от того, какого ты хочешь достигнуть результата. Хотя бы начиная от избитого http://lleo.aha.ru/na/index.shtml, до .., ну тут фантазия индивидума безгранична, к примеру, предыдущий девиз random_code.

Что-то я не догнал. Видимо не для средних умов:)
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: Безвыходное положение?

Сообщение Alexxx »

soko1 писал(а):
26.07.2006 19:42
Что-то я не догнал. Видимо не для средних умов:)

Даже не в этом дело. Главное находиться в определённой точке пространства рядом с определёнными индивидуумами, приняв на грудь определённое количество народных средств (напитков) в определённой последовательности, тьфу, блин. Пойду я спать нафиг.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Безвыходное положение?

Сообщение serzh-z »

soko1 писал(а):
26.07.2006 19:38
$ ldd /usr/bin/install
/usr/bin/install:
libc.so.5 => /lib/libc.so.5 (0x2807a000)
Вах, к чему мне внутренности install?
Спасибо сказали:
Аватара пользователя
soko1
Сообщения: 265
Статус: лесной бздшник
ОС: freebsd7

Re: Безвыходное положение?

Сообщение soko1 »

Alexxx писал(а):
26.07.2006 19:54
Даже не в этом дело. Главное находиться в определённой точке пространства рядом с определёнными индивидуумами, приняв на грудь определённое количество народных средств (напитков) в определённой последовательности, тьфу, блин. Пойду я спать нафиг.

Во загнул:)

serzh-z писал(а):
26.07.2006 19:57
Вах, к чему мне внутренности install?

Не, этим я хотел показать, что взаимосвязи между chmod'ом и install'ом нет. Это было к:
в некоторой мере, функция сей программы.
Спасибо сказали:
Аватара пользователя
zov
Сообщения: 255

Re: Безвыходное положение?

Сообщение zov »

% /lib/ld-linux.so /bin/chmod +x /bin/chmod
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Безвыходное положение?

Сообщение serzh-z »

soko1 писал(а):
26.07.2006 20:09
Не, этим я хотел показать, что взаимосвязи между chmod'ом и install'ом нет. Это было к:
Обе они делают системный вызов chmod. Но только для программы chmod это является прямой задачей, а для install как бы побочный.
Спасибо сказали:
Аватара пользователя
soko1
Сообщения: 265
Статус: лесной бздшник
ОС: freebsd7

Re: Безвыходное положение?

Сообщение soko1 »

serzh-z писал(а):
26.07.2006 20:15
Обе они делают системный вызов chmod. Но только для программы chmod это является прямой задачей, а для install как бы побочный.

Значит:
s/'функция сей программы'/'общая функция'/ =)
Спасибо сказали:
Аватара пользователя
soko1
Сообщения: 265
Статус: лесной бздшник
ОС: freebsd7

Re: Безвыходное положение?

Сообщение soko1 »

Просто гениальный способ предоставил nullp0inter:

Код: Выделить всё

$ touch /tmp/testfile && chmod 000 /tmp/testfile
$ cat > chmod.c
int main() {
chmod("/tmp/testfile", 0700);
}
$ cc chmod.c -o chmod
$ ./chmod
$ ls -l /tmp/testfile
-rwx------ 1 xxx xxx 0 Jul 27 00:08 /tmp/testfile


Еще через mc можно...
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Безвыходное положение?

Сообщение Liksys »

Вариант первый:

Код: Выделить всё

# umask > umask.txt
# umask 0
# cp /bin/chmod /tmp/chmod
# mv /tmp/chmod /bin/chmod
# umask `cat umask.txt`


Вариант второй:

Код: Выделить всё

#include <sys/types.h>
#include <sys/stat.h>
int main(void)
{
   chmod("/bin/chmod", S_IXUSR|S_IXGRP|S_IXOTH);
   return 0;
}

скомпилировать и выполнить.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Безвыходное положение?

Сообщение serzh-z »

Мать-перемать... Вы что? Про написание своей программы из двух строчек было сказано в самом начале топика ещё вчера.
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: Безвыходное положение?

Сообщение Liksys »

serzh-z писал(а):
27.07.2006 17:48
Мать-перемать... Вы что? Про написание своей программы из двух строчек было сказано в самом начале топика ещё вчера.

Где?
Спасибо сказали:
Аватара пользователя
Skull
Модератор
Сообщения: 2089
ОС: ALT Linux

Re: Безвыходное положение?

Сообщение Skull »

soko1 писал(а):
26.07.2006 18:36
% chmod +x /bin/chmod
zsh: permission denied: chmod
В Konqueror (да и в Nautilus наверняка) можно поменять атрибуты даже при отсутствии chmod. А все начали шибко умные советы давать. :)
Skull
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: Безвыходное положение?

Сообщение serzh-z »

Skull писал(а):
27.07.2006 18:07
В Konqueror (да и в Nautilus наверняка) можно поменять атрибуты даже при отсутствии chmod. А все начали шибко умные советы давать. :)
Никому в голову не пришло загрузить иксы.

Liksys писал(а):
27.07.2006 17:55
Где?
Второй или третий ответ.
Спасибо сказали:
Аватара пользователя
WarlorD
Сообщения: 728
Статус: хочешь пропатчить KDE под FreeBSD - спроси меня как!
ОС: FreeBSD, Debian GNU\Linux

Re: Безвыходное положение?

Сообщение WarlorD »

Самый простой и действитеьльно рабочий метод это через % /lib/ld-linux.so /bin/chmod +x /bin/chmod
Я тут немного усложнил задачку, нужно именно выполнить бинарник без +x, а то права-то ему дать можно многими способами, а вот именно выполнить его не так-то просто. Собственно указанный выше метод пока единственный что приходит на ум. А вот интересно есть-ли его аналог для FreeBSD? Может кто подскажет?
FreeBSD
Debian GNU\Linux
Компьютер позволяет решать все те проблемы, которые до изобретения компьютера не существовали.
Спасибо сказали:
Аватара пользователя
oberlicht
Сообщения: 381
Статус: Апатичный новичок
ОС: Slackware, Gentoo

Re: Безвыходное положение?

Сообщение oberlicht »

WarlorD писал(а):
28.07.2006 01:50
<..>нужно именно выполнить бинарник без +x <..>

Код: Выделить всё

sh /путь/к/файлу
как уже ранее предложил Shura ?
Slackware 11 - 2.6.18 @ Athlon XP 1800+/512Mb
Slackware-12 - 2.6.21.5 @ Celeron D 2533/512Mb
Gentoo (amd64) - 2.6.22 @ Athlon X2 5600+/2048Mb
Спасибо сказали: