Pull to refresh

Comments 35

Однажды словили такое на совершенно свежей системе, которая загружается первый раз… Т.е. ноутбук из магазина, запустили, ввели там данные и он не смог войти :) А других пользователей там нет… Вот такая вот штука была…
Поэтому в default user надо лезть думая. Опять же, наследование прав. или их ограничения.
Наверное, можно фразу сократить до «лезть думая».
Вы меня прямо-таки заинтриговали проверить, а сработает ли такой «подарок» в Debian GNU/Linux.
чистый /etc/skel
root@ntbk:~# cd /etc/skel
root@ntbk:/etc/skel# ls -lA
total 12
-rw-r--r-- 1 root root  220 Mar 30  2013 .bash_logout
-rw-r--r-- 1 root root 3392 Mar 30  2013 .bashrc
-rw-r--r-- 1 root root  675 Mar 30  2013 .profile

уже с сюрпризом
root@ntbk:/etc/skel# touch .bomb; chmod go-rwx .bomb
root@ntbk:/etc/skel# ls -lA
total 12
-rw-r--r-- 1 root root  220 Mar 30  2013 .bash_logout
-rw-r--r-- 1 root root 3392 Mar 30  2013 .bashrc
-rw------- 1 root root    0 Oct  2 10:15 .bomb
-rw-r--r-- 1 root root  675 Mar 30  2013 .profile
проверка
root@ntbk:/etc/skel# adduser poorguy
root@ntbk:/etc/skel# login -f poorguy
poorguy@ntbk:~$ ls -lA
итого 12
-rw-r--r-- 1 poorguy poorguy  220 окт  2 10:15 .bash_logout
-rw-r--r-- 1 poorguy poorguy 3392 окт  2 10:15 .bashrc
-rw------- 1 poorguy poorguy    0 окт  2 10:15 .bomb
-rw-r--r-- 1 poorguy poorguy  675 окт  2 10:15 .profile
poorguy@ntbk:~$ logout
root@ntbk:/etc/skel# deluser poorguy
root@ntbk:/etc/skel# rm -rf /home/poorguy

посолим
root@ntbk:/etc/skel# chown nobody .bomb
root@ntbk:/etc/skel# ls -lA
total 12
-rw-r--r-- 1 root   root  220 Mar 30  2013 .bash_logout
-rw-r--r-- 1 root   root 3392 Mar 30  2013 .bashrc
-rw------- 1 nobody root    0 Oct  2 10:15 .bomb
-rw-r--r-- 1 root   root  675 Mar 30  2013 .profile
проверка
root@ntbk:/etc/skel# adduser poorguy
root@ntbk:/etc/skel# login -f poorguy
poorguy@ntbk:~$ ls -lA
итого 12
-rw-r--r-- 1 poorguy poorguy  220 окт  2 10:18 .bash_logout
-rw-r--r-- 1 poorguy poorguy 3392 окт  2 10:18 .bashrc
-rw------- 1 poorguy poorguy    0 окт  2 10:18 .bomb
-rw-r--r-- 1 poorguy poorguy  675 окт  2 10:18 .profile
poorguy@ntbk:~$ logout
root@ntbk:/etc/skel# deluser poorguy
root@ntbk:/etc/skel# rm -rf /home/poorguy

добавим смесь перцев
root@ntbk:/etc/skel# chgrp fax .bomb
root@ntbk:/etc/skel# ls -lA
total 12
-rw-r--r-- 1 root   root  220 Mar 30  2013 .bash_logout
-rw-r--r-- 1 root   root 3392 Mar 30  2013 .bashrc
-rw------- 1 nobody fax     0 Oct  2 10:15 .bomb
-rw-r--r-- 1 root   root  675 Mar 30  2013 .profile
проверка
root@ntbk:/etc/skel# adduser poorguy
root@ntbk:/etc/skel# login -f poorguy
poorguy@ntbk:~$ ls -lA
итого 12
-rw-r--r-- 1 poorguy poorguy  220 окт  2 10:22 .bash_logout
-rw-r--r-- 1 poorguy poorguy 3392 окт  2 10:22 .bashrc
-rw------- 1 poorguy poorguy    0 окт  2 10:22 .bomb
-rw-r--r-- 1 poorguy poorguy  675 окт  2 10:22 .profile
poorguy@ntbk:~$ logout
root@ntbk:/etc/skel# deluser poorguy
root@ntbk:/etc/skel# rm -rf /home/poorguy

ещё и карри бахнем
root@ntbk:/etc/skel# chmod a-rwx .bomb
root@ntbk:/etc/skel# ls -lA
total 12
-rw-r--r-- 1 root   root  220 Mar 30  2013 .bash_logout
-rw-r--r-- 1 root   root 3392 Mar 30  2013 .bashrc
---------- 1 nobody fax     0 Oct  2 10:15 .bomb
-rw-r--r-- 1 root   root  675 Mar 30  2013 .profile
проверка
root@ntbk:/etc/skel# adduser poorguy
root@ntbk:/etc/skel# login -f poorguy
poorguy@ntbk:~$ ls -lA
итого 12
-rw-r--r-- 1 poorguy poorguy  220 окт  2 10:37 .bash_logout
-rw-r--r-- 1 poorguy poorguy 3392 окт  2 10:37 .bashrc
---------- 1 poorguy poorguy    0 окт  2 10:37 .bomb
-rw-r--r-- 1 poorguy poorguy  675 окт  2 10:37 .profile

пилюля (принимать три раза в столетие)
poorguy@ntbk:~$ ls -lA
итого 12
-rw-r--r-- 1 poorguy poorguy  220 окт  2 10:43 .bash_logout
-rw-r--r-- 1 poorguy poorguy 3392 окт  2 10:43 .bashrc
---------- 1 poorguy poorguy    0 окт  2 10:43 .bomb
-rw-r--r-- 1 poorguy poorguy  675 окт  2 10:43 .profile
poorguy@ntbk:~$ find ~ \( \! -type d -exec chmod u+rw {} + \) , \
> \( -type d -exec chmod u+rwx {} + \) 2>/dev/null
poorguy@ntbk:~$ ls -lA
итого 12
-rw-r--r-- 1 poorguy poorguy  220 окт  2 10:43 .bash_logout
-rw-r--r-- 1 poorguy poorguy 3392 окт  2 10:43 .bashrc
-rw------- 1 poorguy poorguy    0 окт  2 10:43 .bomb
-rw-r--r-- 1 poorguy poorguy  675 окт  2 10:43 .profile
вау. спасибо за исследование, очень интересно получилось
UFO just landed and posted this here
Меня всегда интересовал один очень интересный вопрос: ну хорошо, МС не в состоянии сделать так, чтобы критические ошибки не возникали при малейшей оплошности сисадмина (или при определённом положении планет). Ну бывает, на все фирмы хороших программистов не хватает. Но чёрт возьми, неужели так сложно сделать понятные сообщения об ошибках?? Неопознанная ошибка 0хNNN меня последнее время всё чаще побуждает удалить винду со всех доступных мне серверов и десктопов, где она по ужасному стечению обстоятельств ещё осталась.

Я даже представить не могу, сколько миллиардов человекочасов работы IT специалистов МС угрохала из-за совершенно идиотического отношения к простейшим вещам, таким как сообщения об ошибках.

И да, пост ни о чём. Конечно радостно победить ещё один баг винды и записать в копилку своего бесценного опыта ещё один хак, но поскольку таких багов бесконечно много, и смысл их почти всегда один и тот же, то думается не стоит писать о каждом отдельный пост. Лучше потратить время на изучение Linux, Mac OS или FreeBSD в конце концов.
UFO just landed and posted this here
Проще для горе-программистов, но никак не для тех несчастных, кому приходится работать с конечным продуктом. Золотое правило обработки ошибок гласит: текст ошибки должен максимально описывать причину возникновения, и, соответственно, способ устранения. Иначе зачем вообще тогда сообщения об ошибках? Можно как в Diablo при модифицировании ресурсов просто выводить всегда 'Oops!'. По крайней мере весело. А «Неизвестная ошибка» с кодом лишь вгоняет в депрессию.

В общем, по любому парни (и девчонки) из МС забыли подумать, когда писали обработки ошибок. Во что это выливается я уже предположил. Скорее всего слишком оптимистично. Весь IT мир теряет колоссальные деньги из-за того, что МС'у было 'проще вывести сообщение с кодом' или какую-нибудь хрень по типу представленной на скриншоте в посте.
Попробуйте поработать с IBM DB2, там такая же проблема. По коду ошибки выясняем (находим в таблице кодов), что поле длиной больше, чем влезет. Но вот какое именно поле из 50-ти, приходится разбираться самостоятельно, затрачивая на этой огромное количество времени. Тоже самое и с NULL в полях not null. Ужасно неприятно сталкиваться с такими неинформативными сообщениями.
В защиту МС могу заметить, что ключевая проблема не в том, что за ошибка вернулась пользователю. Это-то как раз объяснимо, поскольку эта ошибка возвращается из API, а не из службы, т.е. с точки зрения API действительно не удалось заполнить среду для пользователя, т.к. не создался профиль. Единственное, что в этой ситуации могло бы помочь-это обработка ошибок в c++ стиле, где можно вернуть строку с более-менее детальным описанием проблемы. Тут же API ограничено кодом возврата и, следовательно, выдать подробную информацию неспособно.
Моя претензия в другом: с какой стати именно любой ini-файл вызывает такую реакцию? Даже если он лежит в произвольном месте, имеет произвольное имя и размер 0 байт?! К примеру, на Windows XP такого фэйла не происходит.
Сообщение с кодом конечно хорошо. Вчера как раз закончил гонять точно такую же ошибку, с такими же симптомами, только код был другой: «2, файл не найден». При этом нигде в логах не писалось, а какой же таки файл не найден. Это по вашему нормально? По счастливой случайности, на вторые сутки, забрел в DefaultUser и обнаружил там две полупустые папки…
Вы просто еще не познали дзен :)
Вчера боролись с ещё более удручающим поведением. Ставим «галочку» (не будем вдаваться в подробности «где») — нажимаем применить → Ок, снова заходим в свойства — флаг снят… Ни предупреждений, ни ошибок, просто флага как-будто и не было. Потом, кое как коллега заметила логический косяк в нестыковке двух опций, но машу вать, где хоть какое-то предупреждение или ошибка, ведь флаг заставило что-то сняться?!?!
Это вы про атрибуты файлов? Да, вот там есть такая особенность — некоторые опции несовместимы и установить определенное сочетание атрибутов файлу нельзя. ЕМНИП, виноваты в этом не галочки, а непосредственно апи-вызовы установки атрибутов — оно в этом случае просто молчит, поэтому и нет сообщения об ошибке. Мало того, установить некоторые атрибуты можно только через несколько совершенно других апи-вызовов, а не SetFileAttributes().
Кстати, аналогичная бага есть в юникодовых винапи — им подавай на вход строку с выравниванием по степени четверки, а если это не так — то оно просто притворится, что работает и скажет что все хорошо, но при этом ничего не сделает.
Нет, это я про публикацию разностных CRL в M$ CA.
На одной из конференций мне представитель MS сказал: «Негласная политика MS, чтобы в организациях всегда были системные администраторы. Как бы мы (MS) не улучшали систему и не облегчали работу пользователя, всегда нужен будет системный администратор.»
Я не знаю правда или нет, но было сказано не последним человеком в структуре MS Россия.
Дык коды понятные сообщения об ошибках — они как раз для системных администраторов. Рядовые пользователи сообщения компьютера никогда не читают. Просто жмут ОК не думая.
Как сломать вход на Win8:
1) Поставить Win8
2) Поиметь бесконечный геморрой с самопроизвольным переключением «языка ввода» (термин-то какой, простигосподи) на русский вместо дефолтного английского на экране логина.
А переключение победили, не поделитесь как?
С переключением у меня вроде нормально все. Только русский все время включается.
Я думал, что у вас получилось сделать на экране логона всегда английскую раскладку.
Поднимаете английский вверх в панели управления и копируете настройки в системный и стандартный профили.
В Windows 7 вроде так лечилось (в этой ветке) (на 8 не тестил, нет под рукой):

[HKEY_USERS\.DEFAULT\Keyboard Layout\Preload]
«1»=«00000409»
«2»=«00000419»

В окне приветствия раскладка клавиатуры, которая будет использоваться по умолчанию указывается в параметре 1.
Вроде оно и через пользовательский интерфейс настраивается. В Win7 «Языки и региональные стандарты» — Дополнительно.
Спасибо, помогло.
Тоже мучаюсь с этим языком. Постоянно ноут перевожу в гибернацию вместо выключения (ребут раз в 2-3 месяца), постоянно язык ставится на русский, редко на английский (пароль на англ.).
просто надо при установке сразу выбирать английский. Я так еще со времен ХР делаю. Помогает
Откройте уже для себя автологин. Win+R > control userpasswords2
Автологин — зло. Хотя и приятное, как и многое на темной стороне силы ) При наличии каких либо проблем в профиле в который настроен автологин становится совершенно невозможным хоть как-то забраться в систему — хотя бы под другим пользователем. Т.е. даже в безопасном режиме последние версии пытаются автоматически логиниться — ловят проблему с профилем и на этом все, больше уже ничего не сделать
Групповые политики.
А что с ними не так? На доменном компьютере можно включить автовход через реестр:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"AutoAdminLogon"="1"
"DefaultDomainName"="<Имя компьютера>"
"DefaultUserName"="<Имя пользователя>"
"DefaultPassword"="<Пароль>"
Это ещё что, в XP можно сломать службу WMI, если изменинть параметры запуска и не прописать дополнительные разрешения в редакторе групповых политик.
После этого спасёт только локальная смена настроек или sc.exe, который не использует WMI для управления службами, так как обновление ГП от неё как раз зависит.
И ещё из свежих багов: антивирус от Microsoft ломает загрузку файлов в IE 9-10 при их сохранении в перенаправляемую папку.
Пригодилось. Спасибо. Были проблемы с подключением личного ноутбука к домену.
Плюсанул бы, да везде срок действия голосования истек.
К слову, при наличии доступа к журналу приложений (пусть даже и термо-способом), поиск файла-злоумышленника не составляет труда. Особенно после вашей статьи :)
Sign up to leave a comment.

Articles

Change theme settings