Как создать общий ресурс Samba, доступный для записи из Windows без разрешений 777?

Общее sed решение (без пересчета полей)

sed '
    1{
        h
        d
    }
    G
    :a
    s/\(^\|,\)\([^=]\+\n\)"\?\([^,]\+\)"\?,\?/\1 \3 => \2/
    ta
    s/^/{/
    s/\n/ },/
    ' file.csv

Но если вы хотите, чтобы первое поле стало последним - просто добавьте

s/\([^,]*\), \([^\n]*\)/\2, \1/

после ta

36
29.05.2015, 15:42
3 ответа

В настройках общего доступа в smb.confвам необходимо указать имена пользователей и/или групп, которым разрешено записывать в общий ресурс, используя строку write list =....

Пример:

[myshare]
...
write list = my_linux_username

Затем вам нужно будет использовать команду smbpasswdдля установки пароля для аутентификации my_linux_usernameдля Samba:

sudo smbpasswd -a my_linux_username

Этот шаг необходим, поскольку стандартные системные пароли в /etc/shadowхэшируются с помощью алгоритмов, несовместимых с алгоритмами хеширования паролей, используемыми в протоколе SMB. Когда клиент отправляет пакет проверки подлинности SMB, он включает хешированный пароль. Его можно сравнить только с другим хэшем пароля, использующим тот же алгоритм.

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


Есть еще одна вещь, которую вам, возможно, придется сделать на стороне клиента -. Когда ваша клиентская система Windows присоединена к домену Active Directory и вы вошли в систему с учетной записью AD, она автоматически добавляет префикс ко всем неполным именам пользователей с именем домена AD пользователя, т. е. вы будете аутентифицироваться как AD_DOMAIN\your_username, не только your_username.

Если вы вошли в систему с локальной учетной записью (или ваша клиентская система не подключена к домену AD ), Windows может автоматически добавить к имени пользователя префикс имя хоста клиента , если вы не укажете другое доменное имя.

Чтобы успешно войти на -автономный сервер Samba из автономного -автономного клиента Windows, вам может потребоваться указать свое имя пользователя как SAMBA_SERVER_HOSTNAME\your_username.

В противном случае Samba увидит имя пользователя как WINDOWS_CLIENT_HOSTNAME\your_username, решит, что у него нет возможности проверить пользователей, принадлежащих к домену с именем WINDOWS_CLIENT_HOSTNAME, и отклонит вход в систему.

(Более новые версии Samba могут иметь встроенную -проверку для этой конкретной ситуации, и тем не менее они могут разрешать вам доступ. Но в основном так работает SMB-аутентификация «под капотом», и если вам нужно иметь дело со старыми версиями Samba, это все еще может быть полезно.)

5
27.01.2020, 19:36

Я искал это, потому что торопился и даже не успел сосредоточиться на создании пользователей и так далее...

Просто нужно было как можно скорее извлечь данные из машины с Debian 9, и это был самый быстрый способ, о котором я думал, если вы хотите избежать пропуска команд, вы также можете сделать это, но это явно не рекомендуется. если вы не торопитесь .

[mymfolder]
path = /mymfolder
writeable = yes
browseable = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root 
1
27.01.2020, 19:36

Базовая рабочая настройка в моем случае (с использованием гостевой функции SAMBA, права доступа /myfolder подходят для [вашей _SAMBA -Unix _общей папки _пользователя _учетной записи]):

[global]
guest account = [your_SAMBA-Unix_share_user_account]

[mymfolder]
path = /myfolder
browseable = yes
read only =no
guest ok =yes

Важно отключить любые другие подключенные диски на компьютере с Windows к этому серверу SAMBA, так как, по-видимому, не разрешено иметь более одного пользователя, вошедшего в систему одновременно.

1
27.01.2020, 19:36

Теги

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