amarao: (Default)
[personal profile] amarao
Dec 14 12:00:59 ubuntu dhclient[674]: Sending on Socket/fallback
Dec 14 12:00:59 ubuntu dhclient[674]: DHCPDISCOVER on ens3 to 255.255.255.255 port 67 interval 3 (xid=0x2ad36074)
Dec 14 12:00:59 ubuntu dhclient[674]: DHCPOFFER of 10.33.178.10 from 10.33.178.2
Dec 14 12:00:59 ubuntu dhclient[674]: DHCPREQUEST for 10.33.178.10 on ens3 to 255.255.255.255 port 67 (xid=0x7460d32a)
Dec 14 12:00:59 ubuntu dhclient[674]: DHCPACK of 10.33.178.10 from 10.33.178.2 (xid=0x2ad36074)
Dec 14 12:00:59 ubuntu audit[679]: AVC apparmor="DENIED" operation="exec" profile="/{,usr/}sbin/dhclient" name="/usr/bin/true" pid=679 comm="isc-worker0000" requested_mask="x" denied_mask="x" fsuid=0 ouid=0


Да-да. Была вот такая строчка:

md5sum "$mystatedir/isc-dhcp-v4-$interface" "$mystatedir/isc-dhcp-v6-$interface" "$mystatedir/ifupdown-inet-$interface" "$mystatedir/ifupdown-inet6-$interface" > "$oldstate" 2> /dev/null || true

В которой автор кода сказал "да, пожалуйста, игнорируйте любые ошибки в этом месте", но пришёл apparmor и сказал "нельзя, нельзя". И случилось чудное.

Программисты шутят про #define TRUE FALSE, а сисамдины отлаживают.

Date: 2023-12-19 07:11 pm (UTC)
From: [personal profile] ex0_planet
ХЕЗ, если честно.
Если ставить вопрос в конструктивном ключе (кто будет исправлять код), то из прагматичных же соображений это будет "интегратор", т.е. тот кто пытается все эти четыре компонента собрать воедино. Если смотреть чуть глубже, то "по справедливости" это должен быть автор полиси, т.к. он нарушает сложившийся до него консенсус.
Рекурсивно углубляясь далее, мы неизбежно придём к вопросу "как дизайнить системы так, чтобы минимизировать подобные эксцессы" и на этот вопрос по-моему ни у кого нет хорошего ответа.

Date: 2023-12-20 12:58 pm (UTC)
yurikhan: (Default)
From: [personal profile] yurikhan

Именно в баше (и dash’е) и именно для true предусмотрено:

$ type true false sed
true is a shell builtin 
false is a shell builtin
sed is /usr/bin/sed
$ PATH=/nonexistent /bin/bash -c 'true'; echo $?
0
$ PATH=/nonexistent /bin/bash -c 'sed'; echo $?
/bin/bash: line 1: sed: command not found
127

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

Также в принципе можно представить себе дистрибутив, который при загрузке создаёт RAM-диск и всё essential окружение живёт на нём, и в разумных пределах пофиг, что там отвалится или форс-размонтируется в процессе работы. Кажется, некоторые инсталляторы GNU/Linux’а так делают.


Доводилось мне видеть последствия отвала диска, на котором размещён своп. Байтораздирающее. Всё просто встаёт колом.

Profile

amarao: (Default)
amarao

February 2026

S M T W T F S
123456 7
8910111213 14
15161718192021
22232425262728

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated Feb. 25th, 2026 03:45 pm
Powered by Dreamwidth Studios