LINUX.ORG.RU

Избранные сообщения superuser

Форум — General

Вопросы по -march=

 , ,

1) Если я задам -march=amdfam10, будет работать на вообще ВСЕХ процах AMD последующих поколений, или не на ВСЕХ (3DNow! и т.д.)?
Или всё же лучше -march=x86-64 -m64 -Wa,--64,-march=generic64,-mamd64 ?
Как если надо чтобы работало на всех AMD (не интел) процах начиная где-то с 2010-ых?

2) Почему если задать -Wa,-march=generic64, или -Wa,-march=amdfam10 в CFLAGS,
glibc выдаёт ошибку при сборке?:

gcc ../sysdeps/x86/libc-start.c -c -std=gnu11 -fgnu89-inline  -Wa,-march=generic64 -O2 -Wall -Wall -Wwrite-strings -Wundef -fmerge-all-constants -frounding-math -fno-stack-protector -Wstrict-prototypes -Wold-style-definition -fmath-errno   -fPIC -fno-stack-protector -DSTACK_PROTECTOR_LEVEL=0 -funwind-tables  -ftls-model=initial-exec      -I../include -I/w/w/src/build/csu  -I/w/w/src/build  -I../sysdeps/unix/sysv/linux/x86_64/64  -I../sysdeps/unix/sysv/linux/x86_64  -I../sysdeps/unix/sysv/linux/x86/include -I../sysdeps/unix/sysv/linux/x86  -I../sysdeps/x86/nptl  -I../sysdeps/unix/sysv/linux/wordsize-64  -I../sysdeps/x86_64/nptl  -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux  -I../sysdeps/nptl  -I../sysdeps/pthread  -I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../sysdeps/unix/sysv  -I../sysdeps/unix/x86_64  -I../sysdeps/unix  -I../sysdeps/posix  -I../sysdeps/x86_64/64  -I../sysdeps/x86_64/fpu/multiarch  -I../sysdeps/x86_64/fpu  -I../sysdeps/x86/fpu  -I../sysdeps/x86_64/multiarch  -I../sysdeps/x86_64  -I../sysdeps/x86  -I../sysdeps/ieee754/float128  -I../sysdeps/ieee754/ldbl-96/include -I../sysdeps/ieee754/ldbl-96  -I../sysdeps/ieee754/dbl-64/wordsize-64  -I../sysdeps/ieee754/dbl-64  -I../sysdeps/ieee754/flt-32  -I../sysdeps/wordsize-64  -I../sysdeps/ieee754  -I../sysdeps/generic  -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/include -isystem /w/w/pkg/usr/include -D_LIBC_REENTRANT -include /w/w/src/build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h  -DPIC -DSHARED     -DTOP_NAMESPACE=glibc -o /w/w/src/build/csu/libc-start.os -MD -MP -MF /w/w/src/build/csu/libc-start.os.dt -MT /w/w/src/build/csu/libc-start.os
gcc ../sysdeps/unix/sysv/linux/x86_64/sysdep.S -c     -I../include -I/w/w/src/build/csu  -I/w/w/src/build  -I../sysdeps/unix/sysv/linux/x86_64/64  -I../sysdeps/unix/sysv/linux/x86_64  -I../sysdeps/unix/sysv/linux/x86/include -I../sysdeps/unix/sysv/linux/x86  -I../sysdeps/x86/nptl  -I../sysdeps/unix/sysv/linux/wordsize-64  -I../sysdeps/x86_64/nptl  -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux  -I../sysdeps/nptl  -I../sysdeps/pthread  -I../sysdeps/gnu  -I../sysdeps/unix/inet  -I../sysdeps/unix/sysv  -I../sysdeps/unix/x86_64  -I../sysdeps/unix  -I../sysdeps/posix  -I../sysdeps/x86_64/64  -I../sysdeps/x86_64/fpu/multiarch  -I../sysdeps/x86_64/fpu  -I../sysdeps/x86/fpu  -I../sysdeps/x86_64/multiarch  -I../sysdeps/x86_64  -I../sysdeps/x86  -I../sysdeps/ieee754/float128  -I../sysdeps/ieee754/ldbl-96/include -I../sysdeps/ieee754/ldbl-96  -I../sysdeps/ieee754/dbl-64/wordsize-64  -I../sysdeps/ieee754/dbl-64  -I../sysdeps/ieee754/flt-32  -I../sysdeps/wordsize-64  -I../sysdeps/ieee754  -I../sysdeps/generic  -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/x86_64-pc-linux-gnu/10.3.0/include -isystem /w/w/pkg/usr/include -D_LIBC_REENTRANT -include /w/w/src/build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h  -DPIC -DSHARED     -DTOP_NAMESPACE=glibc -DASSEMBLER -I/w/w/src/build/csu/. -Werror=undef -Wa,--noexecstack   -o /w/w/src/build/csu/sysdep.os -MD -MP -MF /w/w/src/build/csu/sysdep.os.dt -MT /w/w/src/build/csu/sysdep.os
../sysdeps/x86/cpu-features.c: Assembler messages:
../sysdeps/x86/cpu-features.c:154: Error: `xgetbv' is not supported on `generic64'
make[2]: *** [/w/w/src/build/sysd-rules:891: /w/w/src/build/csu/libc-start.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/w/w/src/glibc-2.32/csu'
make[1]: *** [Makefile:470: csu/subdir_lib] Error 2
make[1]: Leaving directory '/w/w/src/glibc-2.32'
make: *** [Makefile:9: all] Error 2

'xgetbv' is not supported on 'generic64'.
Это он как-то неправильно набор инструкций определил?
Если без -Wa,-march=generic64 — ошибки нет. Т.е. если даже задан -march=x86-64 (gcc), есть ошибка, пока не уберёшь -Wa,-march=

Или неправильно ассемблеру -march= задавать, а надо тока компилятору?

teod0r
()
Форум — Admin

Как лучше сделать сжатый swap?

 , ,

Привет. На моем ноуте периодически не хватает памяти под рабочие задачки. Поэтому использую zswap, он хорошо справляется, но имеет недостаток. Когда нужно вытеснить страницу памяти из сжатого кэша в памяти, он ее разжимает и потом сохраняет с своп (насколько я выяснил дойдя аж до исходников https://github.com/torvalds/linux/blob/master/mm/zswap.c /* decompress */…но подробно не разбрался), что повышает дисковый IO. Мне хотелось бы что бы этого разжимания не было. Отсюда два вопроса.

  1. Есть ли аналог zswap, который умеет скидывать в своп сжатые страницы? zram в этом смысле вообще просто раздел в памяти сжатого свопа вроде бы просто заполнится и дальше будет работать своп на ссд следующий по приоритету без сжатия?
  2. Как можно сделать сжатый файл подкачки на уровне фс, что бы страницы zswap разжимал, а фс опять на лету сжимала? Это костыль конечно, но хоть так можно уменьшить износ ссд при использовании подкачки.
i3draven
()
Статьи — Desktop

zram с sysvinit

 ,

Если вам необходимо использовать zram с ядром не меньше, чем 5.19 и системой инициализации sysvinit...

( читать дальше... )

vbcnthfkmnth123
()
Форум — General

Замена tmpfs на zram. Есть ли профит?

 , ,

Вопрос чисто из праздного интереса.

Стоит на виртуалке Arch с 4ГБ RAM. От нефиг делать обновлял ядро не готовым бинарным пакетом, а со сборкой из сорсов. Перед этим вместо tmpfs для /tmp сделал zram-диск на 4 гига. Вся сборка влезла в 2,5 гига на диске, а сам диск в сжатом видел занял где-то 900МБ в памяти.

Имеет ли право на жизнь такой способ оптимизации, или нефиг фигней страдать?

Radjah
()
Форум — Development

Хочу поредактировать видео h264. Насколько возможно, чем, как?

 , , , ,

Хочу редактировать h264, может быть в перспективе h265. Поредактировать вектора движения между кадрами, макроблоки, низкочастотные коэфициенты, влияющие на цвет/яркость картинки. Если картинку можно будет отскейлить или сместить - вообще замечательно, если просто отломать (заблюрить) отдельный макроблок - тоже хорошо.

По аналогии с редактированием jpeg, который вполне себе можно редактировать по границам MCU (8х8 кубики), можно отдельно править AC/DC коэфициенты и для которого есть даже готовые редакторы или конверторы jpeg -> txt -> jpeg.

Речь здесь идет именно о редактировании h264/h265, а не полном пережатии (распаковка - редактирование - сжатие), так что ffmpeg или Adobe Premiere идут сразу лесом.

Возможно кто-то знает и подскажет тулзы, которые были бы очень полезны в процессе изучения/редактирования потока, навроде https://www.elecard.com/products/video-analysis/streameye, показывающие битстрим, чтобы было сразу видно, где и какие данные, как их достать и как править. Они же будут полезны, когда я буду тестировать уже «отредактированный» поток.

Где-то на Stackoverflow был тред, где РУЧКАМИ сделали валидный битстрим h264, картинка вроде 32х32 пикселя, причем автор уложился где-то в 50-100 байт. Увы, с ходу найти не смог. Вот мне нужны инструменты или учебник по такой магии.

ruzisufaka
()
Форум — General

Русификация консоли в Slackware 14

 

Здравствуйте, товарищи.

У меня в консоли после русификации этого дистра вместо кириллицы отображаются квадраты. Как можно исправить? Чё да где прописать, откорректировать и т. д.? Спасибо за внимание.

*Вопрос скорее не о русификации, а о кириллизации консоли.

puyamolina
()
Форум — Desktop

Доступ к pipewire-pulse из разных юзеров?

 , ,

Здрасьти.

Гента уже давно пытается мне навязать pipewire-сервер как замену pulseaudio-серверу, вот решил попробовать.

У меня браузеры сидять под отдельными юзерами, и хочется чтобы в них тоже звук был. В pulseaudio это решается (вероятно опцией auth-anonymous=1).

В pipewire – не могу найти подходящей опции, чтобы сделать unix сокет общедоступным:

# cp /usr/share/pipewire/pipewire-pulse.conf /etc/pipewire/
# vi /etc/pipewire/pipewire-pulse.conf
...
    {   name = libpipewire-module-protocol-pulse
        args = {
        # the addresses this server listens on
            server.address = [
                # dimgel: Вписал сюда то же, что и в /etc/pulse/*.
                "unix:/tmp/pulse-socket"

...
# ls -l /tmp/pulse-socket 
srwxr-xr-x 1 me me 0 2021-09-27 20:25:53.158629941 /tmp/pulse-socket

И звук есть только под моим основным юзером.

UPD. Юзать TCP вместо unix socket не предлагать: это дичь.

UPD2. Solved.

dimgel
()
Форум — Development

Документация к языкам программирования

 , , , ,

Всевозможные учебники и книги - это хорошо, но обычно их предлагают купить и часто не совсем дёшево, даже если они описывают базовый уровень. Бесплатным решением, очевидно, является официальная документация. Когда я открыл документацию к python, я был приятно удивлён, что она написана практически как учебник. Для Java вроде бы тоже всё относительно неплохо в этом плане, хотя хотелось бы отдельный оффлайновый pdf.

Мне захотелось скачать себе документацию в подобном виде для C и C++. Зашёл на их официальные сайты, там описание стандарта предлагают получить на сайте ISO за немалые суммы денег. Да и само описание стандарта далеко не для обучения. Хорошо, подумал я, попробую тогда посмотреть документацию к одной из реализаций языка - GCC-CPP, и вижу, что описанное там тоже вовсе не подходит для обучения. Даже описания типов и примеров объявления нет (может плохо искал, но в заголовках не заметил).

Нет, это не тред «подскажите книгу по Сям», таких для начинающих я и сам могу гору насоветовать.

Вопрос следующий: существует ли нормальная доступная бесплатная документация по которой можно изучать C, C++? Официальная документация по другим языкам была бы тоже интересна.


Update

C, C++
Online-ресурсы и учебные пособия для начинающих:

Как дополнение: Рабочая версия стандарта C++14 от 19 ноября 2014 г. (с официального сайта стандарта)


Fortran


Python
В дополнение к официальной документациипереводу руководства Python 3.1):


Object Pascal. Lazarus

Перемещено Klymedy из talks

grem
()
Форум — General

Помогите грохнуть лог xsession-errors

 

В общем нужно дропнуть лог .xsession-errors, так как он стал абсолютно мусорным и на ssd он вообще не нужен, так как туда пишется хренолион сообщений о всевозможных багах программ и прочая мусорная лабуда ставшая уже традицией для никсов. Старые способы по созданию линка .xsession-errors в домашнем каталоге на /dev/null и/или изменение ERRFILE в /etc/X11/Xsession не работают. При этом если попытаться переместить лог в /tmp, прописав, например: ERRFILE=${TMPDIR:=/tmp}/.xsession-errors он не создается в /tmp, а эта хреновина продолжает плодить пустые и old файлы .xsession-errors в домашнем каталоге.

CoolAller
()
Новости — Безопасность

Сбербанк России перешёл на российский сертификат

 , ,

Группа Безопасность

Срок действия сертификата SSL, используемого ПАО Сбербанк для защиты своих сервисов, истёк сегодня. Поскольку все корневые сертификаты контролируются США, а также из-за политики санкций, удостоверяющие центры, имеющие право выпустить новый сертификат, отказали ПАО Сбербанк в продлении.

Поэтому с сегодняшнего дня ПАО использует новый сертификат выданный от имени «Russian Trusted Sub CA». Загрузить его можно с сайта госуслуг. По указанной ссылке доступны файлы сертификата и инструкции для популярных ОС (Linux в списке отсутствует). Сайт госуслуг удостоверяется сертификатом, выданным Sectigo и поэтому пока доступен в любых браузерах.

Также новый сертификат уже встроен в браузеры Яндекс.браузер и Атом.

>>> Подробности (sberbank.ru)

Aceler
()
Форум — Talks

Накидайте названий пакетов для OpenWRT

 , , ,

Всем доброго, товарищи!

Решил я тут обновить домашний роутер. Выбор пал на TP-Link AX90 (AX6600): наличие двух диапазонов 5 ГГц порешало. Машина — зверь, конечно, нечего сказать. Всё настроил, всё работает. Ну и хорошо.

А вот старичок TP-Link Archer C7 (AC1750) Rev. 2.0 (флешка — 16 МиБ, оперативка — 128 МиБ) теперь как-то особо без дела лежит. Вот и пришла идея потренироваться, так сказать, на кошках, т.е. побаловаться с этими вашими нашими OpenWRT. Почитал, покумекал и понял, что в дефолтной конфигурации оно мне не слишком-то подойдёт. Однако в репах лежит пара тысяч пакетов, но кто все эти люди что они все из себя представляют и зачем они не нужны, — вопрос длительного выкуривания тонны папирос, скрученных из мануалов. А т.к. курить я бросил больше десяти лет назад, то, может, найдётся кто грамотный, который насоветует идей, каких пакетов подкинуть онлайн-конфигуратору образов OpenWRT (или, совсем наоборот, выкинуть оттуда со свистом)?

В общем и целом, в идеале, хотелось бы увидеть в итоге примерно то же, что роутер умеет делать со стоковой прошивкой (но бонусы скорее приветствуются), а именно:

  • соединяться с провайдером по всем популярным типам соединений (например, «Ростелеком» коннектится по PPPoE);
  • уметь в подстановку кастомного MAC-адреса в WAN;
  • NAT + DHCP + IP Reservation + MAC White / Black List, естественно;
  • раздавать IPTV наряду с обычным интернетом (тот же «Ростелеком» у нас использует для этого 802.1Q Tag VLAN), IGMP Multicast и т.д.;
  • уметь в OpenVPN и прочую мякотку для параноиков;
  • поднимать независимые 5 ГГц и 2,4 ГГц сети;
  • File / Media Sharing по популярным протоколам с подключаемых по USB устройств — желательно;
  • UPnP, наверное;
  • IPv6 (ХЗ зачем, но пусть будет);
  • настройка всего, чего только возможно, из веб-морды — обязательно.

С меня — лучи добра и плюсик в карму (коли найдутся апологеты).

UPD: под OpenVPN имеется в виду, конечно же, клиентская часть, а не сервер.

carasin
()
Форум — General

busybox узнать pid или наименование службы открывший порт

 

Приветствую!
Подскажите как узнать pid процесса открывший порт или как узнать сервис открывший порт.
Описание сложности.
Есть видеокамера rvi. Подключаюсь к ней по телнет, внутри busybox на arm. Проверял камеру nmap один порт смущает 49152, хочу узнать что за процесс.

1. netstat с ключем -p нет
2. ss нет
3. lsof нет
4. fuser и awk нет
5. top не показывает открытый порт
6. ps aux нет, только ps w
https://serverfault.com/questions/219984/busybox-netstat-no-p здесь предлагают смотреть в /proc. запустил grep 49152 /proc/*
пока ничего не нашел (((
Накидайте еще вариантов.

kozanostra
()
Форум — General

Как загрузить GRUB2 с EFI ?

 ,

Требуется перейти от одного загрузчика (grub4dos), по цепочке к grub2. Поискал в интернетах, там советуют грузить /boot/grub/i386-pc/core.img, но нынче в грубе есть тольк EFI, то бишь /efi.img Попробовал такой конфиг:

iftitle [if exist /efi.img] Bootable Grub2 from /efi.img 
find --ignore-floppies --set-root /efi.img
chainloader /efi.img

И вот, что получается:

Partition table not recognized(chainloader_edx=0xE0, err=4).
Error 43:(http://grub4dos.chenall.net/e/43)
         The BPB hidden_sectors should not be zero for a hard-disk partition boot sector

Press any key to continue...     
dymdin
()
Форум — Admin

Iptables - закрыть всё, кроме некоторых

 , ,

Приветствую, господа. Собстнна, сабж. Поднят опенвпн на впс, дебиан 9. Задача: 1. Дать отдельным ип доступ по опенвпн(upd, 1950 порт) в сеть. Моих кривых рук хватило только на: iptables -A INPUT ! -s xxx.xxx.xxx.xxx -j DROP и так повторять, пока не наберётся нужное нам кол-во 2. Закрыть любые дыры\утечки - заблокировать все входящие\исходящие, кроме тех ип, что указаны выше + заблокировать все порты, кроме 443, 1950, 22 и 80-го.

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

Заранее спасибо!

Ktb1
()
Форум — General

Наследование прав доступа от родительского каталога

 

Есть директория /srv/sites/domain.ltd/html принадлежащая пользователю и группе apache:apache и имеющая права 6770 (rwsrws---). Есть юзер iskatel, который входит в группу apache и он создаёт в этой директории файл, скажем, index.html. Файл автоматом получает принадлежность к юзеру iskatel и группе apache. А я вот ожидал другого результата, ведь наличие suid и sgid битов на каталоге должно приводить к тому что файл у родительского каталога будет наследовать и группу и юзера, то есть юзер должен быть apache. Почему так?

sunny1983
()
Форум — Admin

Сравнение значений на bash

 

Есть 2 файла с содержимым следующего вида

имя значение
Файл 1
green 1
yellow 5
red 11
blue 6
Файл 2
green 22
yellow 66
red 52
blue 89
Мне нужно из значений файла 2 вычесть значения файла 1 и получать эту разницу

Но тут еще сложность в том, что имена могут удаляться и добавляться другие. Поэтому обычное сравнение к примеру 2х файлов не подойдёт.

Как мне это лучше всего реализовать?

sandrey81
()
Форум — Admin

Права в Samba

 , ,

Добрый день. Требуется совет.

Есть введенный в домен Ubuntu 20.04.4, есть настроенная Samba и есть расшаренная на ней папка. В папку пользователи ходят из винды под доменными учетками, авторизация через winbind.

Задача в том, чтобы создаваемому в расшаренной папке файлу назначался владелец, который, собственно, его и создал. Однако файлы наследуют права владельца всей папки - что логично для ubuntu. Насколько я понимаю линукс, а понимаю я его плохо, честно, но пытаюсь разобраться, create mask и directory mask здесь роли не играют. Подскажите, пожалуйста, в какую сторону копать, чтобы добиться нужного.

Спасибо заранее.

Nychary
()
Форум — General

tor bridge не работает

 , ,

Здравствуйте, уважаемое сообщество. Не так давно в РФ слегка поломался тор. У кого-то больше, у кого-то меньше. Действую по инструкции: запрашиваю почтой/телеграммом бриджи, прописываю в torrc Имею в логе следующее:

янв 03 22:07:48 kekeke Tor[68750]: Bootstrapped 2% (conn_done_pt): Connected to pluggable transport
янв 03 22:07:48 kekeke Tor[68750]: Proxy Client: unable to connect OR connection (handshaking (proxy)) with 51.83.252.203:
59925 ID=<none> RSA_ID=CCFF223F4709C787E92C9F6E7CA1C32E308A3786 ("general SOCKS server failure")
янв 03 22:07:49 kekeke Tor[68750]: Proxy Client: unable to connect OR connection (handshaking (proxy)) with 51.83.252.203:
59925 ID=<none> RSA_ID=CCFF223F4709C787E92C9F6E7CA1C32E308A3786 ("general SOCKS server failure")
янв 03 22:07:51 kekeke Tor[68750]: Proxy Client: unable to connect OR connection (handshaking (proxy)) with 51.83.252.203:
59925 ID=<none> RSA_ID=CCFF223F4709C787E92C9F6E7CA1C32E308A3786 ("general SOCKS server failure")
янв 03 22:07:55 kekeke Tor[68750]: Proxy Client: unable to connect OR connection (handshaking (proxy)) with 51.83.252.203:
59925 ID=<none> RSA_ID=CCFF223F4709C787E92C9F6E7CA1C32E308A3786 ("general SOCKS server failure")
янв 03 22:07:59 kekeke Tor[68750]: Proxy Client: unable to connect OR connection (handshaking (proxy)) with 51.83.252.203:
59925 ID=<none> RSA_ID=CCFF223F4709C787E92C9F6E7CA1C32E308A3786 ("general SOCKS server failure")

Бриджи свежие:

ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy 
UseBridges 1 
Bridge obfs4 51.83.252.203:59925 CCFF223F4709C787E92C9F6E7CA1C32E308A3786 cert=YUu3Af5dRHqMczioIAokcpQOCOX6WHlbx4CYoxg6DZy
Ts5h8I2tPnNBO4I63VnI1td8mQA iat-mode=0

Провайдер МТС мобильный (роутер через симку ходит).

telnet 51.83.252.203 59925
Trying 51.83.252.203...
telnet: Unable to connect to remote host: Connection refused

Если через сервер в нидерландах посмотреть на бридж - то он вполне себе:

telnet 51.83.252.203 59925
Trying 51.83.252.203...
Connected to 51.83.252.203.
Escape character is '^]'.

Как-то можно решить вопрос работоспособности тора, не поднимая vpn до собственного сервера в заграничных юрисдикциях?

shimajima
()
Форум — Security

техподдержка просит root пароль

 , , ,

Добрый день. Я почти совсем не разбираюсь в сабжевой теме, но жизнь заставляет учиться. Поэтому оплатил хостинг alexhost.com, по инструкции из 4pda залил на него VPS сервер, начал пользоваться, точнее учится пользоваться. Но в процессе эксплуатации возникают постоянные дисконнекты. Поэтому пришлось обратиться в техподдержку хостинга. Которая в свою очередь попросила у меня root пароль. Прошу совета уважаемого сообщества давать или не давать рут пароль техподдержке? P.S. VPS сервер конечно личный, семейный. Ничего такого через него не проходит. Делался только для обхода AirBNB, ну и плюсом для обхода блокировок. Оплачен на год. Спасибо.

john22555
()
Форум — Admin

Как Samba формирует права на создаваемые в шаре файлы/каталоги?

 , ,

Здравствуйте.

[ 1. ДАНО ]
Домашняя ЛВС.
Сервер - Ubuntu Server 16.04.1 и Samba 4.3.11.
Клиенты - Win7Pro (учётка amok — в Самбе/Убунте есть), WinXP (учётка XPMUser — в Самбе/Убунте отсутствует).

[ 2. ЗАДАЧА ]
Сделать общедоступную шару для win-клиентов с полным беспределом: все могут всё (создавать файлы и каталоги любого уровня вложенности, удалять всё, запускать *.exe).

[ 3. ЧТО СДЕЛАНО ]
Создал каталог /usr/local/samba_shara, сменил пользователя/группу на nobody/nogroup и выставил ему права 0777.

Частично smb.conf

[global]
server role = standalone server
security = user
workgroup = WORKGROUP
guest account = nobody
map to guest = bad user

[shara]
path = /usr/local/samba_shara
browseable = yes
writable = yes
guest ok = yes
force user = nobody
force group = nogroup
force create mode = 0777
force directory mode = 0777

Провожу эксперимент:

  1. Создаю с win-клиента известной Самбе учёткой amok в шаре новый файл и каталог
  2. Копирую с win-клиента известной Самбе учёткой amok в шару существующий файл и каталог
  3. Создаю с другого win-клиента не известной Самбе учёткой XPMUser в шаре новый файл и каталог
  4. Копирую с другого win-клиента не известной Самбе учёткой XPMUser в шару существующий файл и каталог

Результат ниже:

$ ls -l --group-directories-first /usr/local/samba_shara/

drwxrwxr-x 2 nobody nogroup 4096 Feb  8 00:40 copied by amok
drwxrwxrwx 2 nobody nogroup 4096 Feb  9 00:17 copied by XPMUser
drwxrwxr-x 2 nobody nogroup 4096 Feb  9 00:15 created by amok
drwxrwxrwx 2 nobody nogroup 4096 Feb  9 00:17 created by XPMUser
-rwxrwxr-x 1 nobody nogroup    0 Feb  8 00:39 copied by amok.txt
-rwxrwxrwx 1 nobody nogroup    0 Feb  8 00:53 copied by XPMUser.txt
-rwxrwxrwx 1 nobody nogroup    0 Feb  9 00:05 created by amok.txt
-rwxrwxrwx 1 nobody nogroup    0 Feb  9 00:17 created by XPMUser.txt

Как видно, в требуемые 0777 попадают не все файлы/каталоги! Более того, для каталогов с точки зрения итоговых прав доступа есть разница кто их создаёт/копирует — amok или XPMUser! Но и это не всё — Самба ещё умудряется различать скопированный и созданный именно amok'ом файлы.

При создании amok'ом нового файла в шаре из лога /var/log/samba/log.MACHINE удалось выудить это:

$ tail -f /var/log/samba/log.fat | grep "Новый"

...
unix_mode(Новый текстовый документ.txt) returning 0777
nobody opened file Новый текстовый документ.txt read=Yes write=Yes (numopen=2)
set_file_oplock: granted oplock on file Новый текстовый документ.txt, 802:6600f6:0/2176840990, tv_sec = 589b87fe, tv_usec = 41953
...

При создании amok'ом нового каталога в шаре из лога /var/log/samba/log.MACHINE удалось выудить это:

$ tail -f /var/log/samba/log.fat | grep "Новая папка"

...
unix_mode(Новая папка) returning 0777
open_file_ntcreate: FILE_OPEN requested for file Новая папка and file doesn't exist.
unix_convert called on file "Новая папка"
unix_convert begin: name = Новая папка, dirpath = , start = Новая папка
New file Новая папка
Новая папка reduced to /usr/local/samba_shara/Новая папка
open_directory: opening directory Новая папка, access_mask = 0x17019b, share_access = 0x0 create_options = 0x1, create_disposition = 0x2, file_attributes = 0x10
unix_mode(Новая папка) returning 0777
...

[ 4. ПРОБЛЕМА/ВОПРОСЫ ]

  1. Почему несмотря на заданную опцию force user права доступа вновь создаваемых файлов/каталогов зависят от того, из-под какой именно win-учётки их создают?
  2. Каков алгоритм формирования итоговых прав вновь создаваемых в шаре Самбы файлов/каталогов (где задаются и от чего зависят изначальные права; количество и порядок наложения масок самой Самбы на эти права; участвует ли тут файловая система Убунты со своим umask, если да, то на каком этапе; участвует ли клиентская Windows)? Почему при заданных опциях «force create mode = 0777» и «force directory mode = 0777» итоговые права отличны от 0777?
  3. Где найти свежий/нормальный/с_примерами список-описание опций smb.conf (ru/eng)? Этот видел.

Помогите, пожалуйста, решить данную, как мне сначала казалось — простейшую, задачу. Без нормальной теоретической подготовки я могу ещё долго безрезультатно проводить натурные эксперименты и заниматься хернёй высчитывая от балды побитово права и umask'и :(

Спасибо!

P. S. Был удивлён, что log level = 10 Самбы стабильно «вешает» tail -f :)

amokmen
()