Всем привет! в прошлой статье мы начали разбор статьи с GitHub — Linux System Administrator/DevOps Interview Questions.
Сегодня будет пачка вопрос из раздела «Простые» — экзамен на звание junior Linux administrator.
Простые вопросы / Simple Linux Questions
1. Какое имя и UID у администратора системы? (What is the name and the UID of the administrator user?)
В Linux системе, как в большинстве unix-like/base систем, администратором (а точнее суперпользователем, тк администратором может идейно выступать любой пользователь, сопровождающий систему и способный получить права суперпользователя) является пользователь с учетной записью root. Название является исторически сложившимся и в принципе может быть заменено на любое другой. Права суперпользователя зависят не от названия учетной записи, а от ее идентификатора — UID (User ID). Для суперпользователя uid=0 и именно это так отличает его учетную запись от всех прочих.
1 2 3 4 5 6 7 8 9 10 |
<span style="background-color: #f4f4f4; font-family: 'Courier 10 Pitch', Courier, monospace; font-size: 12.8px;">kirill@xxx:~$ whoami</span> kirill kirill@xxx:~$ id kirill uid=1000(kirill) gid=1000(kirill) группы=1000(kirill),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),125(sambashare) kirill@xxx:~$ sudo -s [sudo] пароль для kirill: root@xxx:~# id uid=0(root) gid=0(root) группы=0(root) root@xxx:~# whoami root |
2. Как вывести список всех, даже скрытых файлов, находящихся в директории (How to list all files, including hidden ones, in a directory?)
За вывод содержимого текущего (если без аргументов, содержащих путь к какой-то определенной директории) отвечает команда ls — сокращение от слова list. Параметр -a (сокращение от all) позволяет посмотреть все файлы, даже скрытые ( их имя начинается с точки), а если комбинировать его с параметром -l (long) — то мы увидим подробную информацию. Есть еще одна команда — tree, которая не входит в стандартный комплект утилит, которая также может показывать содержимое каталогов ( однако в более удобном-наглядном древовидном представлении) и так же может показывать скрытые файлы, дополнительную информацию и тд.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
kirill@xxx:Документы$ ls temp.txt kirill@xxx:Документы$ ls -l итого 4 -rw-rw-r-- 1 kirill kirill 3242 окт 31 17:20 temp.txt kirill@xxx:Документы$ ls -la итого 12 drwxr-xr-x 2 kirill kirill 4096 ноя 1 22:59 . drwxr-xr-x 46 kirill kirill 4096 ноя 1 14:45 .. -rw-rw-r-- 1 kirill kirill 0 ноя 1 22:59 .hiddenfile -rw-rw-r-- 1 kirill kirill 3242 окт 31 17:20 temp.txt kirill@xxx:Документы$ tree . └── temp.txt 0 directories, 1 file kirill@xxx:Документы$ tree -a . ├── .hiddenfile └── temp.txt 0 directories, 2 files |
3. Какая linux/unix команда позволяет удалить директорию и все ее содержимое? (What is the Unix/Linux command to remove a directory and its contents?)
Существует команда rmdir, созданная специально для удаления директорий, однако она не удалит их, если директории не пусты. Команда rm может помочь нам в этом — если применить флаг -r (recursive) она рекурсивно удаляет все содержимое каталога и потом его тоже. Флаг -f позволит сделать это игнорируя различные предупреждения, однако будьте осторожны с этой комбинацией rm -rf — так как она может запросто снести вам большую часть системы). В обычной ситуации я бы рекомендовал использовать комбинацию -ri — тогд на удаление каждого объекта будет задаваться вопрос- а точно ли вы этого хотите.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
kirill@xxx:Документы$ ls -la temp/ итого 8 drwxrwxr-x 2 kirill kirill 4096 ноя 1 23:10 . drwxr-xr-x 3 kirill kirill 4096 ноя 1 23:09 .. -rw-rw-r-- 1 kirill kirill 0 ноя 1 23:10 file1 -rw-rw-r-- 1 kirill kirill 0 ноя 1 23:10 file2 -rw-rw-r-- 1 kirill kirill 0 ноя 1 23:10 .file2-hidden kirill@xxx:Документы$ tree -a . ├── .hiddenfile ├── temp │ ├── file1 │ ├── file2 │ └── .file2-hidden └── temp.txt 1 directory, 5 files kirill@xxx:Документы$ rm temp rm: невозможно удалить 'temp': Это каталог kirill@xxx:Документы$ rm -r temp kirill@xxx:Документы$ tree -a . ├── .hiddenfile └── temp.txt 0 directories, 2 files kirill@xxx:Документы$ rm -ri temp.txt rm: удалить обычный файл 'temp.txt'? y kirill@xxx:Документы$ |
4. Какая команда покажет вам объем свободной или используемой памяти? Существует ли в linux свободная память? (Which command will show you free/used memory? Does free memory exist on Linux?)
Еще одна команда, входящая в стандартный набор утилит linux — free. Как раз для этого и предназначена. Ряд модификаторов типа -h, -m, -b меняет формат вывода (байты, мегабайты и тп). Команда выводит информацию как по оперативной памяти, так и по свопу (аналог “подкачки” в windows). Однако столбцов там больше чем 2 ( свободно/занято), а точнее их 6:
- total – общее количество установленной в системе памяти — ОЗУ и под своп;
- used – реально использующая в данный момент и зарезервированная системой память; Вычисляется как ( total – free – buffers – cache)
- free – свободная память (вообще никем не используется);
- shared – Shared memory или Разделяемая память, обычно используется tmpfs.
- buffers – буферы в памяти – страницы памяти, зарезервированные системой для выделения их процессам, когда они потребуют этого, также известна как heap-memory;
- cached – файлы, которые недавно были использованы системой/процессами и хранящиеся в памяти на случай если вскоре они снова потребуются.
- available — оценка того, сколько памяти может быть доступно для запуска новых приложений без свопинга. То есть это сколько памяти система также может освободить + использовать свободное пространство.
1 2 3 4 5 6 7 8 9 10 11 12 |
kirill@xxx:Документы$ free всего занято свободно общая буф./врем. доступно Память: 7610856 6123160 246056 631604 1241640 589812 Подкачка: 1003516 890196 113320 kirill@xxx:Документы$ free -m всего занято свободно общая буф./врем. доступно Память: 7432 5979 242 614 1210 578 Подкачка: 979 869 110 kirill@xxx:Документы$ free -h всего занято свободно общая буф./врем. доступно Память: 7,3G 5,8G 242M 613M 1,2G 578M Подкачка: 979M 869M 110M |
5. Как найти строку “my konfi is the best” рекурсивно в файлах каталога? (How to search for the string «my konfi is the best» in files of a directory recursively?)
Самым простым и известным способом поиска является использование утилиты grep, с ключами -r (рекурсивынй поиск) — то есть поиск по каталогам и подкаталогам и ключом -i (искать вне зависимости от регистра). Однако grep не является лучшим вариантом поиска, так как является утилитой общего назначения. Вторым вариантом является вызов связки find + grep — первой из них вы можете задать что искать надо только по файлам ( игнорируя каталоги, линки, сокеты и прочие объекты, в которых искомой строки быть точно не может) а так же указать по каким файлам искать (задать маску расширения например). Тем самым ускорив поиск. И наконец третий вариант — использовать специализированную утилиту ack или ack-grep (одно и то же — просто названия разные). Она создана для поиска среди файлов проекта с исходным кодом, поэтому понимает некоторые казалось бы очевидные вещи (не ищи среди резервных копий файлов, среди файлов метаданных git и тп), тем самым еще сильней ускоря поиск.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
kirill@xxx:Документы$ tree . └── dir1 └── dir2 └── dir3 └── file.txt kirill@xxx:Документы$ grep -ri "my konfi is the best" . ./dir1/dir2/dir3/file.txt:my konfi is the best kirill@xxx:Документы$ find ./* -name '*.txt' -type f -exec grep -H 'my konfi is the best' {} \; ./dir1/dir2/dir3/file.txt:my konfi is the best kirill@xxx:Документы$ ack 'my konfi is the best' dir1/dir2/dir3/file.txt 1:my konfi is the best |
6. Как удаленно подключиться к серверу или что такое SSH? (How to connect to a remote server or what is SSH?)
Удаленно к серверу можно подключиться довольно большим числом способов, в зависимости от того, что есть под рукой ( то есть в зависимости от вашего окружения). Вот только некоторые из известных мне способов:
- IP-KVM —
- VNC via IPMI / iLo / iDRAC / etc…
- VNC
- VNC via Web
- Web интерфейс
- Telnet
- SSH
- RDP
Однако, в обычной ситуации когда речь заходит про удаленное подключение к Linux серверу, речь обычно идет про SSH (а если быть точнее — openssh), который де-факто является стандартом удаленного управления Linux серверами. SSH или secure socket shell — протокол, обеспечивающий защищенный при помощи криптографических средств способ подключения к удаленному командному интерпретатору. Защита представляет собой обеспечение безопасности в двух аспектах:
- Обеспечение конфиденциальности передаваемых данных — вводимых команд и получаемых ответов за счет шифрования всего трафика, передаваемого между клиентом и сервером.
- Защита от атак типа MiTM — за счет сохранения отпечатка ключа сервера на стороне клиента при первом подключении с последующей сверкой его при каждом следующем подключении
7. Как посмотреть все переменные окружения и как вы можете их использовать? (How to get all environment variables and how can you use them?)
Переменные окружения — сущность, существующая во всех unix подобных операционных системах (и отчасти в windows тоже) — это переменные, задаваемые для каждого отдельного сеанса пользователя (как интерактивный — вход в режиме графического интерфейса, запуск командного интерпретатора так и не интерактивный- запуск процесса от имени пользователя), и несущие ряд настроек- пути поиска бинарных файлов утилит, локаль и язык окружения, основной редактор и прочее.
Как посмотреть — используя например команды “printenv” или “env”. Задать — с помощью команды “export”. Использовать можно для изменения поведения системы и запускаемых приложений. Так же в некоторых ситуациях для конфигурации программ и сервисов. В моей практике была система, состоящая из нескольких сервисов, написанных на node.js. Так вот ее конфигурация задавалась через переменные окружения, а вместо конфигурационного файла использовался специальный bashrc профайл с значением переменных окружения для пользователя, из под которого запускался процесс.
8. Я получаю сообщение «command not found» когда я ввожу “ifconfig -a”, что я делаю не так? (I get «command not found» when I run ifconfig -a. What can be wrong?)
Мне известны две причина:
- Пакет, содержащий утилиту ifconfig не установлен (обычно она входит в пакет net-tools — установите его).
- Каталог “/sbin”, в котором содержится эта утилита, не добавлен в пути поиска вашей переменной окружения “$PATH” — в таком случае попробуйте ввести полный путь для этой утилиты “/sbin/ifconfig -a”. Такое например случается когда вы работаете не под учетной записью с правами суперпользователя.
9. Что происходит когда я ввожу “TAB-TAB”? (What happens if I type TAB-TAB?)
в зависимости от того где мы применяем эту комбинацию. В случае когда мы набираем команду в терминале, эта комбинация сработает как автодополнение — дописав команду за нас. В случае когда мы вводим аргументы команды — имя файла или путь, он так же будет дополнение. В обоих случаях это сработает в случае если существует однозначное соответствие.
10. Какая команда покажет доступное пространство в Unix/Linux системе? (What command will show the available disk space on the Unix/Linux system?)
df или disk free — команда, отображающее свободное место на той или иной файловой. У команды существуют различные модификаторы ее вывода- например отображение размера в человеко-читаемом формате (-h):
1 2 3 4 5 6 |
kirill@xxx:Документы$ df -h Файл.система Размер Использовано Дост Использовано% Cмонтировано в udev 3,6G 0 3,6G 0% /dev tmpfs 744M 1,5M 742M 1% /run /dev/mapper/neon--vg-root 218G 57G 150G 28% / /dev/sda1 704M 161M 492M 25% /boot |
11. Какую команду вы знаете для проверки DNS записей? (What commands do you know that can be used to check DNS records?)
Как минимум три — host, nslookup(name space look up), dig (dns internet groper).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
kirill@xxx:~$ host ya.ru ya.ru has address 87.250.250.242 ya.ru has IPv6 address 2a02:6b8::2:242 ya.ru mail is handled by 10 mx.yandex.ru. kirill@xxx:~$ nslookup ya.ru Server: 127.0.0.53 Address: 127.0.0.53#53 Non-authoritative answer: Name: ya.ru Address: 87.250.250.242 Name: ya.ru Address: 2a02:6b8::2:242 kirill@xxx:~$ dig ya.ru ; <<>> DiG 9.11.3-1ubuntu1.2-Ubuntu <<>> ya.ru ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54978 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 65494 ;; QUESTION SECTION: ;ya.ru. IN A ;; ANSWER SECTION: ya.ru. 369 IN A 87.250.250.242 ;; Query time: 0 msec ;; SERVER: 127.0.0.53#53(127.0.0.53) ;; WHEN: Sun Nov 11 00:06:18 MSK 2018 ;; MSG SIZE rcvd: 50 |
12. Какие команды изменяют владельца файла и права на файл ? (What Unix/Linux commands will alter a files ownership, files permissions?)
Две команды — chmod и chown. chmod — Change Mode — изменяет режим прав доступа к файлу, путем выставления их при помощи цифровой маски (755, 644 и тд) либо за счет буквенного выражения (u=rwx,g=rw,o=rx).
chown — change owner — команда изменения владельца и группы владельца файла.
1 2 3 4 5 6 7 8 9 10 11 |
kirill@xxx:tmp$ ll test.txt -rw-rw-r-- 1 kirill kirill 0 ноя 11 09:58 test.txt kirill@xxx:tmp$ chmod 755 test.txt kirill@xxx:tmp$ ll test.txt -rwxr-xr-x 1 kirill kirill 0 ноя 11 09:58 test.txt* kirill@xxx:tmp$ chmod u=rw,g=r,o=r test.txt kirill@xxx:tmp$ ll test.txt -rw-r--r-- 1 kirill kirill 0 ноя 11 09:58 test.txt kirill@xxx:tmp$ sudo chown root:kirill test.txt kirill@xxx:tmp$ ll test.txt -rw-r--r-- 1 root kirill 0 ноя 11 09:58 test.txt |
13. Что делает команда “chmod +x FILENAME” ? (What does chmod +x FILENAME do?)
Эта команда добавит для всех пользователей право на выполнение этого файла. То есть например в случае обычных файлов — это возможность запустить его как программу ( если это бинарный исполняемый файл или сценарий на одном из скриптовых языков), для каталогов например это право посмотреть список содержимого и тд.
1 2 3 4 5 |
kirill@xxx:tmp$ ll test.txt -rw-r--r-- 1 kirill kirill 0 ноя 11 09:58 test.txt kirill@xxx:tmp$ chmod +x test.txt kirill@xxx:tmp$ ll test.txt -rwxr-xr-x 1 kirill kirill 0 ноя 11 09:58 test.txt* |
14. Что означают права 0750 примененные к файлу? (What does the permission 0750) on a file mean?
7 = rwx
5 = r-x
0 = —
Итого Владелец может все, члены группы владельца могут читать и исполнять, прочие пользователи не могут ничего.
15. Что означают права 0750 примененные к папке? (What does the permission 0750 on a directory mean?)
Права получаются аналогичные вышеописанным, однако тк это каталог, поведение немного отличается — владелец по прежнему может все, а вот члены группы владельца могут только просматривать содержимое папки (r) и в принципе в нее заглядывать (x)
16. Как добавить нового системного пользователя без права входа в систему? (How to add a new system user without login permissions?)
Добавить пользователя и указать ему в настройках файла /etc/password в качестве командной оболочки программу /usr/sbin/nologin либо /bin/false ( в первом лучае при попытке войти он получит вежливое сообщение о том что в текущий момент эта учетная запись недоступна, во втором- просто отбой).
1 2 |
useradd -s /usr/sbin/nologin username usermod -s /usr/sbin/nologin username |
Либо в файле /etc/shadow вместо хеша пароля пользователя указать * (звездочку) Однако сработает это только для авторизации по паролю, а не по ключу. Сделать с помощью команд это можно следующим образом:
1 |
passwd -l usernam / usermode -u username #блокировка пользователя по паролю |
17. Как добавить или удалить пользователя из группы? (How to add/remove a group from a user? )
использовать команду usermod с ключами -G и -a. Вместе они позволяют добавить пользователя в некоторую новую для него группу, без флага -а, он будет исключен из групп, которых нет в списке, переданном команде
18. Что такое алиасы (псевдонимы) в баше? (What is a bash alias?)
это возможность дать короткое имя длинной сложной команде или набору команд, или команду с указанными модификаторами. Самое простое — это “ll”, который является псевдонимом для “ls -la”. С помощью команды alias без параметров можно увидеть список текущих установленных псевдонимов:
1 2 3 4 5 6 7 8 9 |
kirill@xxx:tmp$ alias alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l='ls -CF' alias la='ls -A' alias ll='ls -alF' alias ls='ls --color=auto' |
19. Как вы установите почтовый адрес для рута или обычного пользователя? (How do you set the mail address of the root/a user?)
Создав скрытый файл .forward в домашнем каталоге рута или обычного пользователя. Так же можно воспользоваться файлом /etc/alias, если на хосте установлен какой либо mta
20. Что делает сочетание клавиш CTRLl+C? (What does CTRL-c do?)
Посылает текущему процессу сигнал прерывания (завершения работы) с терминала. Процесс должен остановить свое выполнение штатным образом ( не аварийно)
21. Что содержится в файле /etc/services? (What is in /etc/services?)
там содержатся алиасы для различных протоколов, ставящие взаимное соответствие между названием прикладного протокола, используемым портом и видом транспортного протокола — tcp или udp.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
kirill@xxx:tmp$ head -n 30 /etc/services ... tcpmux 1/tcp # TCP port service multiplexer echo 7/tcp echo 7/udp discard 9/tcp sink null discard 9/udp sink null systat 11/tcp users daytime 13/tcp daytime 13/udp netstat 15/tcp qotd 17/tcp quote msp 18/tcp # message send protocol msp 18/udp chargen 19/tcp ttytst source chargen 19/udp ttytst source ftp-data 20/tcp ftp 21/tcp fsp 21/udp fspd ssh 22/tcp # SSH Remote Login Protocol |
22. 2Как перенаправить вывод STDOUT и STDERR в баше? (How to redirect STDOUT and STDERR in bash? (> /dev/null 2>&1))
> file — Направить стандартный поток вывода в файл. Если файл не существует, он будет создан, если существует — перезаписан сначала
2> file — Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан, если существует — перезаписан сначала
>>file — Направить стандартный поток вывода в файл. Если файл не существует, он будет создан, если существует — данные будут дописаны к нему в конец
2>>file — Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан, если существует — данные будут дописаны к нему в конец
&>file или >&file — Направить стандартный поток вывода и стандартный поток ошибок в файл. Другая форма записи: >file 2>&1
23. В чем разница между unix и linux? (What is the difference between UNIX and Linux.)
- Современные unix системы- коммерческие закрытые проекты, linux-based системы в большинстве своем открытые и бесплатные
- коммерческие unix работают на довольно ограниченном числе платформ. linux можно запустить почти на любой.
- linux менее стандартизован и различные версии и дистрибутивы имеют значительные флуктуации.
- в linux больше поддержка файловых систем и оборудования
- linux распространяется в том числе в виде исходных кодов, или их можно довольно легко получить в то время как unix системы поставляются только в виде готовых сборок бинарных компонент
- https://www.ibm.com/developerworks/ru/library/au-unix-difflinux/index.html
24. В чем разница между Telnet и SSH? (What is the difference between Telnet and SSH?)
Оба протокола дают доступ к командной строке удаленного хоста, однако telnet является незащищенным протоколом, уязвимым к атаке MiTM и к перехвату трафика.
В отличие от него, протокол ssh является криптографически защищенным, шифрующим передаваемые данные и обеспечаивающим подтверждение подлинности сервера. тем самым защищая нас и от MiTM
25. Объясните значение трех параметров средней нагрузки (load average) и что они демонстрируют? Какая команда может быть использована чтобы с ними ознакомиться? (Explain the three load averages and what do they indicate. What command can be used to view the load averages?)
Начнем с конца — эти значения можно получить при помощи команд top, htop, uptime и многих других.
В общем виде Load Average это среднее количество ожидающих ресурсов ЦПУ процессов за один из трех промежутков времени. Однако среднее значение не является средним арифметическим а есть среднее значение функции, которая рассчитывается каждые 5 секунд с момента старта системы.
Первый параметр — среднее за минуту, второй — за 5 минут и третье — за 15 минут.
Число надо оценивать с точки зрения числа ядер в системе. LA = 1 для одноядерной системы это плохо, а вот для 4-х ядерных это почти ничто.
https://habr.com/post/260335/
26. Что такое модуль ядра linux? (What is a Linux kernel module?)
Объектный (бинарный) файл, являющийся расширением ядра, привносящий новый функционал — например поддержку нового оборудования. Модули могут динамически загружаться и выгружаться в работающей системе. Для этого используется утилита modprobe, а получить список загруженных модулей можно с помощью lsmod, в том числе их зависимости
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
kirill@xxx:tmp$ lsmod Module Size Used by ccm 20480 9 rfcomm 77824 16 pci_stub 16384 1 vboxpci 24576 0 vboxnetadp 28672 0 vboxnetflt 28672 0 vboxdrv 471040 3 vboxpci,vboxnetadp,vboxnetflt cmac 16384 0 bnep 20480 2 binfmt_misc 20480 1 arc4 16384 2 snd_hda_codec_hdmi 49152 1 snd_hda_codec_realtek 106496 1 snd_soc_skl 90112 0 snd_soc_skl_ipc 65536 1 snd_soc_skl snd_hda_codec_generic 73728 1 snd_hda_codec_realtek snd_hda_ext_core 24576 1 snd_soc_skl snd_soc_sst_dsp 32768 1 snd_soc_skl_ipc snd_soc_sst_ipc 16384 1 snd_soc_skl_ipc snd_soc_acpi 16384 1 snd_soc_skl snd_soc_core 241664 1 snd_soc_skl snd_compress 20480 1 snd_soc_core ac97_bus 16384 1 snd_soc_core snd_pcm_dmaengine 16384 1 snd_soc_core ... |
27. Расскажите про шаги, необходимые для загрузки в однопользовательском режиме для диагностики проблемы? (Walk me through the steps in booting into single user mode to troubleshoot a problem.)
Если в системе используется загрузчик grub2 ( а это скорее всего так), достаточно при загрузке системы при помощи клавиши shift приостановить загрузку, и добавить ключевое слово single в конец строки конфигурации загрузки ядра:
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/5/html/installation_guide/s1-rescuemode-booting-single
28. Расскажите про шаги, необходимые для диагностики проблемы с ошибкой 404 от веб приложения, которое вы администрируете ?(Walk me through the steps you’d take to troubleshoot a 404 error on a web application you administer.)
404 означает что система не смогла предоставить вам запрашиваемый ресурс. В случае, если речь идет про статический файл (страница, рисунок и тп) — мы должны убедиться что он присутствует на сервере и веб сервер имеет к нему доступ. Для этого необходимо проверить конфигурацию веб сервера, права доступа, название файла и полный путь до него ( возможно в нем или в описании пути в url ссылке допущена ошибка). В случае если ошибка появляется при генерации динамического ресурса — необходимо проверить передаваемые параметры и сценарии генерации страницы, хотя скорее в таком случае мы получили бы ошибку 5хх.