Доступ к общему ресурсу Samba CentOS 7.4 запрещен

Поскольку вы уже используете awk, возможно, самый простой способ - это также провести сравнение с плавающей запятой в рамках этого языка:

MAX_LOAD=10.0
if ! </proc/loadavg awk -vmax_load=$MAX_LOAD '{ exit $1 > max_load }'
then
    echo Alert
fi

Обратите внимание, что здесь происходит небольшая хитрость: ! оператор отменяет проверку. Это необходимо, потому что логическое выражение в awk и код состояния, который конструкция if принимает значения, имеют противоположные значения. < используется для направления файла / proc / loadavg на стандартный ввод awk. Вызов awk с -vmax_load = $ MAX_LOAD устанавливает для переменной awk max_load значение переменной оболочки MAX_LOAD .

В вашем конкретном случае, поскольку ваш MAX_LOAD является целым числом, и поскольку все вы читаете первое число с плавающей запятой из файла, специальным решением будет:

if [ $(</proc/loadavg cut -f1 -d.) -gt $MAX_LOAD ] ...

вызов cut извлечет целую часть первого числа в / proc / loadavg . Однако идея потерпит неудачу, если какое-либо из предположений , изложенных выше, станет ложным.

3
03.07.2018, 23:01
1 ответ

Вы используете неизвестную учетную запись:

check_ntlm_password:  Authentication for user [pepe] -> [pepe] FAILED with error NT_STATUS_NO_SUCH_USER, authoritative=1

, так что вы имеете доступ к softкак гость. Вы разрешили гостевой доступ в Samba, но разрешения в файловой системе, похоже, не настроены для этого.

По умолчанию гостевой пользователь — nobody, поэтому вам необходимо установить права доступа к файловой системе, чтобы разрешить ему доступ. Или измените способ доступа к общему ресурсу.


Судя по информации, добавленной в комментариях, нам нужно более подробное решение. На данный момент вы монтируете файловую систему NTFS с явным владельцем -, по сути рассматривая ее владельцев как файловую систему vFAT. Но этот владелец не соответствует учетной записи, которую вы определили через Samba для доступа к файловой системе, поэтому учетные записи Samba не могут получить доступ к файловой системе. Либо они должны совпадать, либо вам нужно использовать разрешения файловой системы NTFS и удалить право собственности на принудительное монтирование.

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

  1. Оставьте монтирование NTFS без изменений, чтобы вы продолжали принудительно устанавливать owner=1000, group=1000.

  2. Сообщите Samba, что аутентифицированные пользователи должны рассматриваться как owner=1000, group=1000 при доступе к соответствующему общему ресурсу, включив директиву force user:

    [global]
    ...
    security = user
    map to guest = bad user     # Use "guest" account for unknown users
    ; guest account = nobody    # Implicit default unless you override it
    
    [soft]
    path = /media/SYSTEM/soft
    read only = no
    writable = yes
    browsable = yes
    guest ok = yes              # Allow unknown users to access this share
    force user = 1000           # Samba authenticates, but filesystem access is as uid=1000
    

Обратите внимание, что действительному пользователю с неверным паролем будет отказано в доступе, но недействительному пользователю (с любым паролем )доступ будет разрешен. Это то, что вы определили здесь с вашими map to guest = bad userи guest ok = yes. Я настоятельно рекомендую вам изменить один из них на map to guest = neverили guest ok = no.

В вашем /etc/fstabя бы посоветовал вам рассмотреть возможность удаления настроек uid, gidи umaskдля файловой системы NTFS, так как вы можете удалить настройки force userи force groupв Samba. Но у вас могут быть веские причины для этих значений, поэтому я не изменил их в своем ответе.

4
27.01.2020, 21:18

Теги

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