Назад | Перейти на главную страницу

Как поделиться apache / var / www с помощью сервера samba в ubuntu

Моя проблема похожа на вопрос о stackoverflow, virtual centOS 6.2 - Как поделиться / var / www с помощью Samba, однако я получаю следующую ошибку:

Windows cannot access \server1\dev You do not have permission to access \\server1\dev

Я установил сервер ubuntu и пытаюсь /var/www/html/dev разрешения на чтение и запись в каталог с других компьютеров (например, Windows 7 и рабочий стол ubuntu).

Я сменил владельца папки /var/www к www-data группа и добавленный пользователь dev1 в эту группу. Затем я дал 0755 разрешение на папку /var/www А ниже - содержимое моего файла smb.conf:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = ubuntu
security = user
map to guest = bad user
dns proxy = no

#============================ Share Definitions ============================== 
[sharing]
path = /samba/share
browsable =yes
writable = yes
guest ok = yes
read only = no
force user = nobody

[dev]
path = /var/www/html/dev
valid users = @www-data
read only = no
guest ok = no
writable = yes
browsable = yes

Итак, я пытаюсь получить доступ к dev поделиться с паролем. Я также добавил пользователя samba, подписавшись на этот учебник, но когда я пытаюсь получить доступ к этому общему ресурсу с компьютера с Windows 7, я получаю следующее сообщение об ошибке:

Windows cannot access \server1\dev.  You do not have permission to access \\server1\dev  

Дополнительная информация

Я могу получить доступ /samba/share но не может получить доступ к dev Поделиться.

РЕДАКТИРОВАТЬ: Теперь система windwos просит ввести пароль. Но после ввода пароля выдает ошибку \\s1\dev is not accessible. You might not have permission to use this network resource. Contact the administrator of this server to find out if you have access permissions.

Предоставлено: Мартин.

Вам необходимо изменить конфигурацию монтирования samba так, чтобы вы дали разрешение пользователю и группе www-data на запись в нее. Вы можете иметь или не иметь возможность устанавливать определенные права доступа к каталогу, но в противном случае вам придется настроить доступ на запись для всего диска (что плохо для безопасности).

Я бы лично посоветовал использовать nfs вместо общих ресурсов samba для сетевого хранилища и использовать ext3 или другую полнофункциональную файловую систему.

http://www.cyberciti.biz/tips/how-do-i-set-permissions-to-samba-shares.html

https://help.ubuntu.com/community/Samba/SambaClientGuide

http://www.mattvanstone.com/2006/06/automatically_mounting_smb_sha/

Предполагая, что у вас есть счет за вход в систему Linux, вы установили samba. Если вы используете SELinux, вам необходимо выполнить ряд других команд.

Кроме того, убедитесь, что вы не открываете доступ к кому-либо миру, ваш маршрутизатор или брандмауэр должны блокировать порт 137, 139, 445.

# Block the outside world from your server's smb shares
# assuming your local network is 192.168.0.*
iptables -A INPUT -j DROP ! -s 192.168.0.0/24 -m multiport -p tcp --dports 139,445

# Add your user account "bill" to www-data
usermod -aG www-data bill
# Give bill an smb password
smbpasswd -a bill
# Set permissions in the html folder for www-data
# WARNING: existing apps might require specific permissions on specific folders
# web code can now alter existing -/html/dev folder files
chown www-data:www-data -R /var/www/html/dev

# alternatively, in combination with create mask 775 in smb.conf
chown root:www-data -R /var/www/html/dev
chmod -R 775 /var/www/html/dev

# add the following text to the bottom of /etc/samba/smb.conf
[dev]
path = /var/www/html/dev
available = yes
valid users = @www-data
read only = no
browsable = yes
public = no
writable = yes
create mask = 0775
force user = www-data
force group = www-data

Альтернативой может быть не устанавливать никаких других разрешений, а включить принудительно пользователя и группу как root, но мне это кажется немного пугающим.

www-data является системной учетной записью (<1000 uid / gid) и вообще не имеет пароля. Я бы не советовал использовать uid и gid ниже 1000. Вместо этого создайте новую учетную запись или используйте существующую с uid> 1000.

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

Подсказка: Вам не нужны шаги с 1 по 4 при использовании существующего пользователя.

  1. создать тюрьму
# mkdir -p /srv/smb/exampleusername
  1. Добавить запись в / etc / fstab
/var/www /srv/smb/exampleusername none bind 0 0
  1. связывать / var / www к / srv / smb / exampleusername, поэтому вам не нужно перезагружаться, чтобы fstab
# mount -o bind /var/www /srv/smb/exampleusername
  1. создать пользователя, затем удалить его права и посадить в тюрьму.
# adduser exampleuser
# chown root:root /home/exampleuser
# chmod 0755 /home/exampleuser
# usermod -s /usr/sbin/nologin -d /srv/smb/exampleuser exampleuser
  1. Измените права www этому новому / конкретному пользователю.
# chown -R exampleuser:exampleuser /var/www
# chmod -R 0755 /var/www
# chown exampleuser:exampleuser /srv/smb/www
# chmod 0755 /srv/smb/exampleuser
  1. Пример акции для smb.conf
[www]
path = /srv/smb/exampleuser
comment = yada yada yada
browseable = yes
guest ok = no
valid users = exampleuser
writeable = yes
  1. Когда не используется libpam-smbpass тогда вам нужно также добавить пользователя в smb-db. Я бы не советовал использовать libpam-smbpass из соображений безопасности, но решать вам. Без этой библиотеки вам нужно добавить пароль для этого пользователя.
# smbpasswd -a exampleuser
  1. проверьте свою конфигурацию

Готово !