Разрешение Samba отклонено

Вы можете заменять по одному в цикле, например:

tree --noreport | sed $'
  :1
    s/^\\( *\\)\\([\ua0\u2500\u2502\u2514\u251C]\\)\\([\ua0\u2500\u2502\u2514\u251C ]*\u2500 \\)/\\1 \\3/
  t1
  s|\u2500 |  /|'

(вы пропустили\ua0(неразрывный пробел -)и \u2502(, также показанные в вашем образце ), по крайней мере, которые действительно отображаются в выводе моей версии tree, по крайней мере, ).

Это обман, если есть файлы, имя которых содержит "─ ", которому необязательно предшествуют некоторые из этих символов.

Другой подход (, предполагающий, что вы действительно хотите вставить /и что каталоги, которые вы вызываете tree, не содержат"─ "):вставьте /после первого вхождения "\u2500 ". ], а затем замените каждый символ перед первым /пробелом в цикле.

tree --noreport | sed '
  s|'$'\u2500'' |&/|;t1
  b
  :1
    s|^\( *\)[^ /]|\1 |
  t1'

Сperl:

немного проще
tree --noreport | perl -C -pe 's{^.*?\x{2500} }{" " x length($&). "/"}e'
1
31.10.2019, 15:54
1 ответ

В RHEL 7 SELinux включен по умолчанию, и он будет ограничивать доступ Samba к файловой системе. Когда вы создаете свой собственный общий ресурс Samba по пользовательскому пути, такому как /samba/docs, вы должны применить к этому пути подходящую маркировку SELinux.

Если вам нужны каталоги, доступные для Samba и других служб, вы должны использовать метку типа контекста SELinux public_content_rw_tи установить логическое значение smbd_anon_writeSELinux, чтобы разрешить Samba доступ на запись к файлам и каталогам в public_content_rw_tконтекстах с полным контролем. владельцев файлов:

setsebool -P smbd_anon_write=1
semanage fcontext -a -t public_content_rw_t "/samba/docs(/.*)?"
restorecon -Rv /samba/docs

Если вы не планируете получать доступ к /samba/docsчерез какую-либо другую службу (, например httpdили ftpd), вместо этого вы можете использовать контекст samba_share_t, и тогда вам не нужна логическая настройка:

semanage fcontext -a -t samba_share_t "/samba/docs(/.*)?"
restorecon -Rv /samba/docs

Команда semanage fcontext -a...добавит регулярное выражение, определяющее новую маркировку, в конфигурацию SELinux, а restoreconприменит новую маркировку к фактической файловой системе. Вы также можете использовать chconдля изменения меток контекста SELinux, но тогда ваши изменения будут потеряны всякий раз, когда restoreconвыполнялся (, например. после восстановления резервной копии ). Сохранение информации о маркировке в конфигурации SELinux в первую очередь гарантирует, что ее можно будет восстановить, даже если ваши методы резервного копирования не поддерживают SELinux -, если также выполняется резервное копирование конфигурации SELinux в соответствии с /etc.

1
27.01.2020, 23:40

Теги

Похожие вопросы