LINUX.ORG.RU
ФорумTalks

[история успеха] chmod -R 540 /

 


0

0

Все-таки хорошо, что я еще не поставил Линукс основной системой. Мои руки еще недостаточно прямы для работы в нем. Вот, на прошлой неделе я нечаянно похерил любовно взращиваемый в течение года дебиан на ноутбуке дав от рута «chmod -R 540 /». Потом я, конечно же, загрузился с установочного диска и изменил права на 777. Но, как оказалось, Линукс очень болезненно относится к правам доступа на файлы. Он не пускал меня в систему (говорил, что у юзера неверный пароль, а пользователя root вообще не существует) пока я не изменил права доступа на 755 для всех файлов и 777 для tmp со sticky-битом. Но даже после этого баш не хотел работать не под рутом (при попытке зайти под обычным пользователем ругался на permissions и выходил обратно на этап логина). После долгого гугления я обнаружил статью, датируемую 2000 годом, где автор поставил проприентарные дрова на принтер и заимел подобную проблему. Проблема решилась выставлением для одной библиотеки из lib прав 754. Он обнаружил это решение после двух недель мозголомства, под конец, сверив права на все файлы с таким же Линуксом стоявшим на соседней машине. Я решил эту проблему, сделав 754 для всей lib, но проблемы на этом не закончились. В bin у некоторых программ должен быть выставлен suid бит. В lib не все библиотеки должны иметь права 754. Иксы не пошли, и множество проблем просто не всплыло. В итоге я переставил Линукс, накатив поверх старые конфиги. В общем, эффект от chmod в кривых руках оказался не хуже чем от rm. Но вот в чем вопрос:

я надеюсь 10 лет спустя в Линуксе уже появилось средство, окромя бэкапа, позволяющее автоматически привести права доступа на файлы в надлежащий вид?

Ведь нехорошо когда одна программа выводит систему из строя изменив права доступа на один файл.

Вопрос, в принципе - праздный, поэтому задаю его в толксах.

Систему из строя в данном случае выводит не программа, а тот, кто ей пользуется. Почему вы игнорировали правило «не работай из-под рута»?

Я надеюсь, 10 лет спустя в Линуксе уже появилось средство, окромя бэкапа, позволяющее автоматически привести кривизну рук пользователей в надлежащий вид?

locke
()

> Ведь нехорошо когда одна программа выводит систему из строя изменив права доступа на один файл.

это можно сделать в любой ОС. я гарантирую это.

Komintern ★★★★★
()

>я надеюсь 10 лет спустя в Линуксе уже появилось средство, окромя бэкапа, позволяющее автоматически привести права доступа

«можно и хер дверями прищемить, а потом жаловаться на неправильные двери»

thunar ★★★★★
()

Переустановил бы все пакеты - права бы вернулись.

madgnu ★★★★★
()

> нечаянно

дав от рута «chmod -R 540 /»


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

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

>> я надеюсь 10 лет спустя в Линуксе уже появилось средство, окромя бэкапа, позволяющее автоматически привести права доступа

«можно и хер дверями прищемить, а потом жаловаться на неправильные двери»


ТС ищет средство окромя бэкапа, выпрямляющее прищемленное :)

moot ★★★★
()

Ну ты и лол. Запомни: «UNIX никогда не скажет «пожалуйста»».

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

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

Да в вашем этом линаксе - запросто! Пишешь sudo chmod -R 540, копируешь из браузера путь к чему-то другому, для чего нужно было сделать такие права. Вставляешь, и обана - случайно не все скопировал и под конец символ перевода каретки добавился! А т.к. юзер в /etc/sudoers выполняет sudo без пароля - вуаля )

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

Вот зачем надо было банить Саныча? Кто теперь молодежи объяснит, как правильно двери яйца?

abraziv_whiskey ★★★★★
()

>Почему вы игнорировали правило «не работай из-под рута»?

Я и не работал. Я просто сделал sudo.

дверь, яйца

Может быть дверь и яйца. Но автор статьи 2000-го года просто поставил дрова на принтер. Пока я искал решение проблемы, натыкался на множество подобных вопросов на форумах. Кто-то просто путал ./ и /. На двух форумах посвященных ubuntu ответом было: «ты криворукое чмо доигрался, теперь переустанавливай систему.» На форуме arch попавший в такое положение пользователь сооружал какой-то жуткий патч-костыль к ядру, позволявший выпилить мешавшие ему ограничения безопасности. На ЛОРе поиск не нашел еще одного такого беднягу, как я. А потом у меня кончились деньги на мобильнике. Но ведь при установке система самостоятельно ставит права на файлы - должен же быть какой-нибудь иной способ заставить ее сделать это снова, типа dpkg-reconfigure?

Переустановил бы все пакеты - права бы вернулись.

aptitude reinstall ~i

Вот! Это, возможно, то, что нужно. А я, дурак, переставлял всю систему.

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

Был душный июльский вечер. Я сидел за ноутбуком и почитывал книжку по безопасности в Линуксе. Внезапно в моей голове пронеслась мысль сделать свой Линукс супер безопасным. Я решил поставить на все файлы минимальные права доступа, а потом если какая-нибудь программа будет ругаться постепенно повышать их. Я сделал «sudo chmod -R 540 /». Пока chmod выполнялась, я внезапно подумал - а не прострелил ли я себе ногу? Цифра 5 очень настораживала, как оказалось не зря. Мой Линукс стал абсолютно безопасным, теперь он мог работать вечно не боясь постороннего вмешательства.

Nebuchadnezzar ★★★★
() автор топика

Мне повезло 2жды. Во первых я такого не делаю; во вторых у rpm-а есть --setperms

DonkeyHot ★★★★★
()

я надеюсь 10 лет спустя в Линуксе уже появилось средство, окромя бэкапа, позволяющее автоматически прищемлять дверью яйца пользователю, делающему глупое действие?

NekoExMachina
()

> В общем, эффект от chmod в кривых руках оказался не хуже чем от rm.

Теперь с тебя перловый однострочник :D

Manhunt ★★★★★
()

Волшебное восстановление данных.

я надеюсь 10 лет спустя в Линуксе уже появилось средство, окромя бэкапа, позволяющее автоматически привести права доступа на файлы в надлежащий вид?

Права доступа тоже данные. Вы надеетесь, что через 10 лет появится способ волшебным образом восстанавливать данные без резервных копий? Идите пока поупражняйтесь с дверью.

Camel ★★★★★
()

В венде удалением пары ключей из реестра можно то же сделать, так что ССЗБ.

anon_666
()

>во вторых у rpm-а есть --setperms

А если бы я был гентушник?

Теперь с тебя перловый однострочник :D

Если бы я знал перл то вместо множества букв в первом посте, просто попросил бы проверить скрипт, который, что-то «не печатает» ;)

данные без резервных копий

Чем репозиторий, в данном случае, не резервная копия? Вот уже aptitude reinstall предложили и rpm --setperms. Меня другое интересует - если я гентушник и хочу обезопасить себя от таких оказий - есть ли программа которая бэкапит только права доступа на файлы и может в случае чего снова их накатить или ее написание - задание мне на домашнюю работу? Или программа, которая имеет собственную базу, где указаны типичные права на директории в корне, значения маски и особые требования к правам файлов для некоторых стандартных программ, исходя из чего она вычисляет и устанавливает права на все файлы. Или модифицировать chmod чтобы он в случае -R делал бэкапы.

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

помню я тоже устанавливал подобные права на каталоги, стремясь «сделать свой Линукс супер безопасным», а потом удивлялся, почему не могу послушать музыку, запустить браузер, а затем и вообще залогиниться. К счастью я менял права ручками и только отдельным каталогам, таук что обошлось без переустановки системы.

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

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

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

Эта «глупая ошибка» может быть сделана кривым драйвером или недоброжелателем. Изменит нехороший человек права доступа на одну библиотеку с 754 на 755 или 644 и все - баш не работает и хз почему.

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

Резервный репозитерий.

Чем репозиторий, в данном случае, не резервная копия?

Репозитарий, в данном случае, и есть резервная копия, и им-то вам и посоветовали воспользоваться.

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

Open source такой open source.

Эта «глупая ошибка» может быть сделана кривым драйвером или недоброжелателем. Изменит нехороший человек права доступа на одну библиотеку с 754 на 755 или 644 и все - баш не работает и хз почему.

Вот поэтому-то люди и предпочитают программы с открытыми исходниками, и берут их не прямо из под компилятора программиста, но из репозиториев своего дистрибутива, где есть специальные разделы, ~АRCH, testing и прочие.

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

Скрипт, парсящий perms.db и чмодящий файлы, выглядит не намного сложнее.

xetf ★★
()

>Скрипт, парсящий perms.db и чмодящий файлы, выглядит не намного сложнее.

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

я надеюсь 10 лет спустя в Линуксе уже появилось средство, окромя бэкапа, позволяющее автоматически прищемлять дверью яйца пользователю, делающему глупое действие?

Я считаю, что даже если пользователь - полный идиот с правами рута (сиречь обезьяна с гранатой) система должна сопротивляться изо всех сил его дурацким действиям и пытаться выжить несмотря ни на что. Можно вообще по-умолчанию блокировать руту заведомо опасные действия, а для их разрешения руту необходимо будет раскомментировать строчки в некоем конфиге. Запретили же в некоторых дистрибутивах «rm -rf /». Более того - по умолчанию запретили Ctrl-Alt-Del и Alt-SysRq-* Кто знает - тот найдет и поправит, а новичок сможет поиграться с Линуксом чуть подольше.

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

он берет не все файлы, что-то он скомплексовал на моей музыкальной коллекции

Руки выпрями.

система должна сопротивляться изо всех сил его дурацким действиям

А зачем UNIX-системам такие пользователи? Иди обратно в свою венду.

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

>система должна сопротивляться изо всех сил его дурацким действиям

Unix-way таков, что если пользователь хочет сделать что-то, то система не будет ему мешать.

Yareg ★★★
()

754, 540... Откуда ты такие разрешения то взял :?)

tux2002
()

>А зачем UNIX-системам такие пользователи? Иди обратно в свою венду.

Правильно! Пусть все слабаки валят на свою винду, а мы будем сидеть в нашем маргинальном Линуксе и ждать вендекапца, временами причитая, что он все никак не наступает, в школах и университетах винда, на предприятиях и у бюрократов винда, на большинстве домашних компьютеров тоже винда, с чего бы это, правда? Ой! Да мы же сами их всех на нее послали! Вот, черт...

Unix-way таков, что если пользователь хочет сделать что-то, то система не будет ему мешать.

И сколько Юниксов пользователь должен загубить прежде чем стать квалифицированным специалистом? И где гарантия, что этот специалист по пьяни, от жары или спросоня не убъет свою систему? Зачем давать пользователю совершать заведомо дурацкие действия? Это как-то повышает надежность системы? А я вот помню читал, как какой-то шутник увидел терминал под рутом, и пока «рут» наливал себе кофе набрал «rm -rf /» и нечаянно выполнил, похерив важную инфу на университетском сервере. А «рут» потом в поте лица восстанавливал данные, изучая спецификации ext2. Скажите: сам виноват? Виноват в том, что зашел под священным рутом и не учел дебила стоявшего рядом?

754, 540... Откуда ты такие разрешения то взял :?)

754 из той статейки про дрова на принтер. А вот 540 - это порождение моей собственной больной фантазии.

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

>>Почему вы игнорировали правило «не работай из-под рута»?

Я и не работал. Я просто сделал sudo.

ССЗБ в 100500 степени!

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

Виноват в том, что зашел под священным рутом и не учел дебила стоявшего рядом?

Да. Это одно из правил в любой ОС — никогда не оставлять без присмотра сессию пользователя с особыми привилегиями.

GotF ★★★★★
()

>> я надеюсь 10 лет спустя в Линуксе уже появилось средство, окромя бэкапа, позволяющее автоматически привести права доступа на файлы в надлежащий вид?

а я надеюсь что за тролль будет забанен =)

man tripwire

ЗЫ. уже в 2000 году всё было.
TRIPWIRE COPYRIGHT & TRADEMARK NOTICE

COPYRIGHT
The developer of the original code and/or files is Tripwire, Inc. Portions
created by Tripwire, Inc. are copyright 2000 Tripwire, Inc.

deadman ★★
()

>Да. Это одно из правил в любой ОС — никогда не оставлять без присмотра сессию пользователя с особыми привилегиями.

А может не будем закапывать голову в песок Unix-вея и дадим руту способ сохранить свои штаны сухими, а нервы целыми? Иначе мы превращаем пользователя в раба системы, заставляя его самого заботится об ее сохранности. Я считаю, что учеток пользователя у Линукса должно быть как минимум три. Одна - божественный рут. Другая - рут с ограниченями, наместник бога на земле. Третья - пользователь, сиречь холоп. Сейчас фактически каждый домашний пользователь делает себя рутом с ограничениями, в тот момент когда добавляет себя в sudoers. И делает он это - сознательно полагаясь на систему, надеясь, что он сможет делать с системой все, что хочет, но без летальных для системы последствий. Тем не менее его надежды нифига не оправдываются и я вижу в этом проблему. Если sudo дает пользователю слишком много власти, значит должен быть safesudo дающий пользователю власть умеренно, позволяющий отменить неудачные действия и не дающий делать откровенные глупости. Уже много лет ведется работа в этом направлении. X-ы делают бэкап xorg.conf. dpkg позволяет заново переконфигурировать большинство частей системы с рабочими параметрами. Sudo при запуске пишет какие права должны быть установлены на sudo и какие на sudoers. «rm -rf /» больше не удаляет систему. И если chmod запущенный от рута может похерить систему, то я считаю - это проблема, которая должна быть исправлена. Хотя, я бы вынес все эти предохранители и бэкапы в отдельную программу, а каждому опасному действию и команде выделил бы отдельный предохраняющий модуль. Этакий электронный старый админ, спящий в углу и вылезающий оттуда только для того чтобы не дать молодняку прострелить себе (молодняку) ногу.

а я надеюсь что за тролль будет забанен =)

Тролль?! Где???

man tripwire

Вот об этом я и говорил. Спасибо. Я искал программу которая следила бы за изменениями файлов. Причем наблюдала не только права доступа, но и хэш-суммы, дабы предупреждать о замене файлов. Возьму на заметку «Open Source Tripwire» и не буду изобретать велосипед.

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

дадим руту способ сохранить свои штаны сухими

SELinux. Ещё вопросы?

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

754 из той статейки про дрова на принтер. А вот 540 - это порождение

моей собственной больной фантазии.

Это нехарактерно для инсталляций по умолчанию, и без особой необходимости не используется, я имею ввиду такие сочетания как 54 например.

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

>надеясь, что он сможет делать с системой все, что хочет, но без летальных для системы последствий

Надежда — глупое чувство. От всех взбрыков больного мозга соломки не подстелишь. Некоторые умудряются платы и шлейфы втыкать задом наперёд, хотя везде есть ключи, предохраняющие от этого. Три учётки не спасут. Ввёл sudo — введёшь и superpupersu.
А компьютер должен делать не то, что от него гипотетически ожидает очередной ССЗБ, а то, что приказали. Если рут говорит: убей себя, значит убей себя, и как можно быстрей. Мало ли в каких целях это делается: исследовательских, развлекательных, в целях предотвращения несанкционированного доступа к важной информации?

И сколько Юниксов пользователь должен загубить прежде чем стать квалифицированным специалистом?


Ни одного. Читай книжки и маны, делай бекапы а) регулярно б) перед любым серьёзным изменением.

massimus ★★★
()

>SELinux. Ещё вопросы?

Есть. Что делает эта штука? Она позволит админу настраивать систему без риска ее убить? Или это еще один способ сделать подобное «chmod -R 540 /»?

Это нехарактерно для инсталляций по умолчанию, и без особой необходимости не используется, я имею ввиду такие сочетания как 54 например.

Угу, я вижу в lib 755, 777 и 644. Может быть в статье говорилось о изменении прав библиотеки с 755 на 644 и я для пробы решил хотя бы сделать 754, после чего баш заработал. Я точно помню, что статья была из Linux Gazette, но никак не могу снова ее нагуглить.

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

Второй раз уже отмечаю, что у тебя хороший слог (:

Иди в писатели))

Вот напишешь какой-нибудь мегасуперкрутой роман, а в нем потихоньку продвинешь линукс через мысли и действия главгероя, хехе.

#выдыхаю...

stein_
()

>Читай книжки и маны

Вот я и почитал. Но там не написали, что программам в Линуксе очень важны для работы специфичные права на каждый файл. И я было решил, что chmod -R 777 меня точно спасет в случае чего.

Три учётки не спасут. Ввёл sudo — введёшь и superpupersu.

Идея не в том чтобы сделать три учетки. А в том чтобы сделать безопасный аналог sudo и su, автоматом выполняющий бэкап, например.

делай бекапы а) регулярно б) перед любым серьёзным изменением

Кстати, чем посоветуете их делать? Или просто запихать все в tar.gz?

RTFM

Читал википедию - там все мутно. Маны на утилиты входящие в SELinux тоже не ответили на мой вопрос. А раз вы так уверенно говорите, что SELinux - это то, что нужно, то почему вы не можете уверенно ответить, что она делает или хотя бы делает ли она то, что нужно мне?

А вот статья на IBM говорит о том, что SELinux может запретить программе совершить несвойственные ей действия или получить доступ к несвойственным для нее ресурсам, но, я думаю, она вряд ли запретит rm удалить все файлы начиная с корня, если rm выполнил рут.

Вот напишешь какой-нибудь мегасуперкрутой роман

Я слишком ленив для этого :)

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

я думаю, она вряд ли запретит rm удалить все файлы начиная с корня, если rm выполнил рут.

думаю

Думать вредно. Правила SELinux могут ограничить даже root'а. Потому что это ядерный патч, а не userspace-демон.

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

>есть ли программа которая бэкапит только права доступа на файлы

1. Знал бы, где упадёшь...

2. getfacl -R

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

>Зачем давать пользователю совершать заведомо дурацкие действия

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

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

> Меня другое интересует - если я гентушник

man qcheck

Матчасть надо изучать.

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

> Я считаю, что учеток пользователя у Линукса должно быть как минимум три. Одна - божественный рут. Другая - рут с ограниченями, наместник бога на земле. Третья - пользователь, сиречь холоп.

google RSBAC

Всё придумано уже давно. Просто учи матчасть.

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