Wednesday, March 24th, 2010 05:29 pm

Сегодня на повестке дня две задачи:

1) Волею судеб вы случайно удалили у команды chmod права на выполнение. Как вернуть их обратно? Под рутом, конечно. Без этого вы бы их и не удалили.

2) Как в шелле (для определённости пусть будет bash) привязать команду к клавише, чтобы, скажем, при нажатии просто “1″ (без Enter) выполнялась команда (например, uname -a). Вопрос возник из https://ru-freebsd.livejournal.com/194430.html, ответ есть там в комментах.

Оригинал этой записи. Комментировать можно тут или там.

Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме

Wednesday, March 24th, 2010 04:38 pm (UTC)
первое - написать скрипт на чем угодно, что позовет setmode(3)? читерство?
второе - в баше конкретно можно попробовать через readline и inputrc что-то сделать. не пробовал.
Wednesday, March 24th, 2010 04:40 pm (UTC)
1) ну если есть, на чём написать, то вполне себе вариант. а ещё?
2) ну в общем да. у баша даже есть специальные команды для манипулирования опциями readline

(no subject)

[identity profile] ivlad.livejournal.com - 2010-03-24 04:48 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2010-03-24 04:52 pm (UTC) - Expand

(no subject)

[identity profile] ivlad.livejournal.com - 2010-03-24 06:01 pm (UTC) - Expand

(no subject)

[identity profile] ivlad.livejournal.com - 2010-03-24 04:51 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2010-03-24 04:54 pm (UTC) - Expand

(no subject)

[identity profile] p_govorun.livejournal.com - 2010-03-24 07:27 pm (UTC) - Expand
Wednesday, March 24th, 2010 04:39 pm (UTC)
1) Взять любой файл с правом выполнения и заменить его содержимое внутренностями chmod'а?
Wednesday, March 24th, 2010 04:40 pm (UTC)
хороший вариант. а ещё есть?

(no subject)

[identity profile] guman0id.livejournal.com - 2010-03-24 04:44 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2010-03-24 04:47 pm (UTC) - Expand
Wednesday, March 24th, 2010 05:12 pm (UTC)
То же самое хотел предложить.
В любой скрипт скопировать содержиоме чмода.

Ну или через перл, если он есть, конечно. То же что и С.

Ну или принести чмод с какого-нить стороннего источника (с репозитория или с соседнего компа).
Wednesday, March 24th, 2010 04:41 pm (UTC)
FreeBSD: /rescue/chmod ;-P

Linux: ld.so /usr/bin/chmod, кажется?
Wednesday, March 24th, 2010 04:43 pm (UTC)
1) это читерство!
2) да, только он теперь почему-то называется /lib/ld-linux.so*, а просто ld.so нету
Wednesday, March 24th, 2010 05:35 pm (UTC)
после всего перечисленного в голову приходит только mc (гы:)
Wednesday, March 24th, 2010 05:35 pm (UTC)
ну если он там случайно есть, что маловероятно, но возможно, то тоже сойдёт :)

troll mode on

[identity profile] ivlad.livejournal.com - 2010-03-24 06:00 pm (UTC) - Expand

Re: troll mode on

[identity profile] dil.livejournal.com - 2010-03-24 06:01 pm (UTC) - Expand

Re: troll mode on

[identity profile] dil.livejournal.com - 2010-03-24 06:03 pm (UTC) - Expand

(no subject)

[identity profile] ivlad.livejournal.com - 2010-03-24 06:06 pm (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2010-03-24 06:06 pm (UTC) - Expand

(no subject)

[identity profile] motto.livejournal.com - 2010-03-24 07:33 pm (UTC) - Expand
Wednesday, March 24th, 2010 05:39 pm (UTC)
Предлагаю прямое редактирование содержимого блочного устройства.

(no subject)

[identity profile] dil.livejournal.com - 2010-03-24 05:51 pm (UTC) - Expand

(no subject)

[identity profile] ivlad.livejournal.com - 2010-03-24 06:04 pm (UTC) - Expand
Wednesday, March 24th, 2010 07:12 pm (UTC)
Скопировать любую другую прогу с правами себе в home потрункатить ее, и cat-ом дописать в конец chmod? Потом запустить?
Wednesday, March 24th, 2010 08:06 pm (UTC)
зачем к себе в home? можно прямо на месте
cat > выполняет обе операции за раз :)

(no subject)

[identity profile] anatolix.livejournal.com - 2010-03-25 10:54 am (UTC) - Expand

(no subject)

[identity profile] dil.livejournal.com - 2010-03-25 11:04 am (UTC) - Expand
Wednesday, March 24th, 2010 07:29 pm (UTC)
По перовому: а если загрузиться в single-user mode, оно не поможет?
Wednesday, March 24th, 2010 08:06 pm (UTC)
а что от этого изменится?

(no subject)

[identity profile] pash7ka.livejournal.com - 2010-03-24 08:10 pm (UTC) - Expand
Wednesday, March 24th, 2010 08:29 pm (UTC)
1) mv /bin/chmod /bin/oldchmod; cp /bin/ls /bin/chmod; cat /bin/oldchmod > /bin/chmod
Wednesday, March 24th, 2010 08:51 pm (UTC)
1. install -m 755 /bin/chmod /usr/bin/tmpchmod
2. bindkey (а в недошеллах есть аналог?)
Wednesday, March 24th, 2010 10:31 pm (UTC)
1. о, это свежая мысль :)
2. в баше bind, в tcsh bindkey, в csh ничего нету. про sh не знаю, у меня его под рукой нет
Wednesday, March 24th, 2010 10:16 pm (UTC)
мысли

1. cat /path/to/chmod > /file/with/x/bit

2. mount FAT/FAT32 part
cp /path/to/chmod /FAT32part
umount
mount.ntfs -o fmask=555 ...

3. perl
chmod

4. /usr/bin/install -m ...

5. setfacl

6. sftp localhost
chmod

7. uuencode chmod > chmod.uue
vi chmod.uue
cd /tmp; uudecode /path/to/chmod.uue

больше идей нет :(
Wednesday, March 24th, 2010 10:34 pm (UTC)
2. FAT - случай достаточно редкий, но возможный
5. setfacl в каких системах есть?

6. хороший новый вариант :)
7. маргинально, но тоже себе вариант

(no subject)

[identity profile] tsv.livejournal.com - 2010-03-24 10:46 pm (UTC) - Expand

(no subject)

[identity profile] tsv.livejournal.com - 2010-03-24 10:48 pm (UTC) - Expand
Wednesday, March 24th, 2010 10:44 pm (UTC)
а!

ещё:
8. на solaris'е можно создать package (я, наверное, даже вспомню как это делается)
на Linux'е - rpm, но я не умею :(

(no subject)

[identity profile] dil.livejournal.com - 2010-03-25 07:45 am (UTC) - Expand

(no subject)

[identity profile] tsv.livejournal.com - 2010-03-25 09:08 pm (UTC) - Expand
Thursday, March 25th, 2010 08:07 am (UTC)
Какая живучая то система юникс оказывается )))
Thursday, March 25th, 2010 08:41 am (UTC)
А чего никто не упомянул банальный перезалив с соседнего хоста? Никогда не поверю, что нету рядом еще одного такого же тазика ...

+ взять родной пакетный менеджер и переустановить с force тот пакет, где лежит chmod
Thursday, March 25th, 2010 09:31 am (UTC)
в некоторых случаях и так можно. если есть соседний тазик и если есть пакет
Thursday, March 25th, 2010 09:23 am (UTC)
1. umask + tee ?
Thursday, March 25th, 2010 09:31 am (UTC)
не понял. это как?

(no subject)

[personal profile] ocehb - 2010-03-25 09:51 am (UTC) - Expand
Thursday, March 25th, 2010 09:10 pm (UTC)
просмотрел комментарии (надеюсь, все)
никто не порекомендовал "восстановить из backup'а"
:)
Thursday, March 25th, 2010 09:31 pm (UTC)
системные файлы обычно не бэкапят, их проще из дистрибутива накатить

(no subject)

[identity profile] tsv.livejournal.com - 2010-03-25 09:39 pm (UTC) - Expand