Теперь я знаю, что на ServerFault есть много вопросов самбы (около 1400), и я просмотрел, по крайней мере, половину из них, и не смог использовать ни один из ответов для решения моей проблемы.
Мы устанавливаем CentOS 6.2 на новую пустую машину - чистая установка; он будет работать как сетевой сервер для размещения Asterisk.
Я хочу настроить машину так, чтобы у меня был полный административный доступ к root (я имею в виду корень «/») с моей рабочей станции Windows.
Это позволит мне использовать мой собственный удобный компьютер (и Notepad ++) для редактирования всех файлов конфигурации. Другими словами, я должен открывать \\mylinux\etc\samba\
в проводнике Windows, а затем иметь полные права на редактирование smb.conf
с моим текстовым редактором Windows.
У меня это очень хорошо работает с CentOS 4, но не могу заставить его работать в CentOS 6.2. В более старой версии ОС для всего был графический интерфейс, но теперь мне нужно учиться и делать все из интерфейса командной строки. Я до сих пор использую графический интерфейс для некоторых вещей, которые я еще не научился делать с помощью интерфейса командной строки, поэтому я все равно буду делать ссылки на графический интерфейс в своих заметках здесь.
Теперь, когда вы знаете мою проблему и мою цель, вот некоторые подробности:
smb
запущен, установлен и установлен на уровень выполнения 35.nmb
запущен и установлен на уровень выполнения 35.network
включен (я выполнил эту команду: iptables -A INPUT -s 192.168.0.0/255.255.255.0 -j ACCEPT
)root
группа.\\mylinux
из \\mywindows
просто отлично, и наоборот тоже.Network
в \\mylinux
, Я получаю сообщение об ошибке: «Не удалось получить список общих ресурсов с сервера», о котором я писал Вот.net view
из \\mywindows
, то не видит \\mylinux
вообще..
[root]
comment = Root Directory
path = /
valid users = @root all root group
invalid users = None
writeable = yes
browseable = yes
Также в /etc/samba/smbusers.conf
, Я сделал запись:
myuser = myuser
Теперь вы можете подумать, что на этом этапе я могу получить доступ к общему ресурсу linux. Но когда со своего компьютера с Windows я пытаюсь отобразить путь \\mylinux\root\
, Я получаю сообщение об ошибке, указывающее, что пункт назначения не существует. На моей старой Linux-машине я могу просматривать даже \\oldlinux\
и получите список акций. Кажется, я не могу дублировать функциональность!
[РЕДАКТИРОВАТЬ]
Хорошо, я полностью отключил брандмауэр, и теперь я могу просматривать файлы, куда хочу. Остались только права на редактирование файла вроде smb.conf. Другими словами, моя учетная запись пользователя, которую я использую для просмотра файлов, находится в root
группа, также нуждается root
разрешения. Как мне это получить?
Samba сопоставляет ваш доступ с учетной записью пользователя Unix на сервере, и для этого пользователя применяются обычные разрешения. Следовательно, это то же самое, что предоставить пользователю Unix доступ на запись к этим файлам. Вы либо должны быть root
user (т.е. действовать как владелец файлов, у которого есть разрешение на запись), или вы должны быть в группе, у которой есть права группы на запись в файлы. Последний вариант (незначительно) предпочтительнее, поэтому добавьте себя в список root
group и измените права доступа к файлу, чтобы разрешить групповую запись. (Я предполагаю, что вы знаете о последствиях этого для безопасности.)
Наконец то получил! Потребовалось две вещи: - Отключить selinux - раскомментировать строку в smb.conf для
username map = /etc/samba/smbusers
И в smbusers.conf я добавил root = myuser
затем запустите команду:
smbpasswd -a myuser
smbpasswd -e myuser
service smb restart
Теперь я могу подключиться к машине со своего компьютера с Windows, просматривать файлы в корневом каталоге и редактировать их с помощью моего любимого текстового редактора на моем компьютере с Windows.
Просто примечание для всех - я понимаю, что работа с процедурами, над которыми я работаю, представляет собой угрозу безопасности, но я нахожусь за безопасным брандмауэром-маршрутизатором и буду администрировать машину таким образом только из локальной сети.
Для CentOS7
В CentOS 7 он по умолчанию запрещает аутентификацию ntlm для корневого доступа - что означает, что вы не можете подключиться с учетной записью root - если вы не добавите это в [global]
раздел smb.conf:
ntlm auth = yes
И если вы хотеть чтобы использовать файл smbusers, добавьте его в тот же глобальный раздел в smb.conf:
username map = /etc/samba/smbusers
Затем вы можете создать этот файл и добавить это:
root = myusername