Вы можете использовать команду chattr +a
, чтобы каталог добавлял -только на уровне файловой системы. Samba не должна отклоняться -от этого шага. См. этот вопрос:
inetd
прослушивает порт, а затем подключает его к stdin, stdout и stderr службы, которая будет его обрабатывать.
accept
соединения у него есть сокет на одном из его fd
s. dup
свяжет fd
с 0
, 1
и 2
. fork
. Все файловые дескрипторы останутся открытыми, если не будет предпринято какое-либо действие для их закрытия (, поэтому 0,1 и 2 останутся открытыми ). exec
, fd
все еще остаются открытыми. listen
свои собственные действия. (Я немного поискал, но не вижу, чтобы inetd
сообщал сервисной программе, что она была вызвана inetd
. Я бы ожидал аргумент командной строки.)
Это подробно объяснено в Que -Linux -Socket -Programming в разделеThe Design Parameters of inetd Servers
Рассмотрим подобные действия:
[родительский]
sfd = socket(), listen(), connect(), fork();
Для других дескрипторов, которые не должны наследоваться дочерними процессами, close()
или предварительно установить их на FD_CLOEXEC;
после fork
, родитель может закрыть этот sfd
[ребенок]
execve();
унаследована копия дескриптора подключенного сокета, которую можно использовать для клиентского ввода-вывода