Подготовка к распаковке …/winbind_2%3a4.4.5+dfsg-2ubuntu5_amd64.deb …
Распаковывается winbind (2:4.4.5+dfsg-2ubuntu5) на замену (2:4.4.5+dfsg-2ubuntu5) …
Обрабатываются триггеры для ureadahead (0.100.0-19) …
ureadahead will be reprofiled on next reboot
Настраивается пакет winbind (2:4.4.5+dfsg-2ubuntu5) …
Job for winbind.service failed because the control process exited with error code.
See «systemctl status winbind.service» and «journalctl -xe» for details.
invoke-rc.d: initscript winbind, action «start» failed.
● winbind.service — Samba Winbind Daemon
Loaded: loaded (/lib/systemd/system/winbind.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Пт 2016-10-21 11:31:42 MSK; 4ms ago
Docs: man:winbindd(8)
man:samba(7)
man:smb.conf(5)
Process: 6589 ExecStart=/usr/sbin/winbindd $WINBINDOPTIONS (code=exited, status=1/FAILURE)
Main PID: 6589 (code=exited, status=1/FAILURE)
Status: «Starting process…»
окт 21 11:31:42 it-admin winbindd[6589]: [2016/10/21 11:31:42.536407, 0] ../source3/winbindd/winbindd_cache.c:3245(i…cache)
окт 21 11:31:42 it-admin winbindd[6589]: initialize_winbindd_cache: clearing cache and re-creating with version number 2
окт 21 11:31:42 it-admin winbindd[6589]: [2016/10/21 11:31:42.537825, 0] ../source3/winbindd/winbindd_util.c:869(ini…_list)
окт 21 11:31:42 it-admin winbindd[6589]: Could not fetch our SID — did we join?
окт 21 11:31:42 it-admin winbindd[6589]: [2016/10/21 11:31:42.537856, 0] ../source3/winbindd/winbindd.c:1408(winbind…dlers)
окт 21 11:31:42 it-admin winbindd[6589]: unable to initialize domain list
окт 21 11:31:42 it-admin systemd[1]: winbind.service: Main process exited, code=exited, status=1/FAILURE
окт 21 11:31:42 it-admin systemd[1]: Failed to start Samba Winbind Daemon.
окт 21 11:31:42 it-admin systemd[1]: winbind.service: Unit entered failed state.
окт 21 11:31:42 it-admin systemd[1]: winbind.service: Failed with result ‘exit-code’.
Hint: Some lines were ellipsized, use -l to show in full.
dpkg: ошибка при обработке пакета winbind (—configure):
подпроцесс установлен сценарий post-installation возвратил код ошибки 1
Обрабатываются триггеры для libc-bin (2.24-3ubuntu1) …
Обрабатываются триггеры для systemd (231-9git1) …
Обрабатываются триггеры для man-db (2.7.5-1) …
При обработке следующих пакетов произошли ошибки:
winbind
E: Sub-process /usr/bin/dpkg returned an error code (1)
Настраивается пакет winbind (2:4.4.5+dfsg-2ubuntu5) …
Job for winbind.service failed because the control process exited with error code.
See «systemctl status winbind.service» and «journalctl -xe» for details.
invoke-rc.d: initscript winbind, action «start» failed.
● winbind.service — Samba Winbind Daemon
Loaded: loaded (/lib/systemd/system/winbind.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Пт 2016-10-21 11:31:47 MSK; 5ms ago
Docs: man:winbindd(8)
man:samba(7)
man:smb.conf(5)
Process: 8459 ExecStart=/usr/sbin/winbindd $WINBINDOPTIONS (code=exited, status=1/FAILURE)
Main PID: 8459 (code=exited, status=1/FAILURE)
Status: «Starting process…»
окт 21 11:31:47 it-admin winbindd[8459]: [2016/10/21 11:31:47.650136, 0] ../source3/winbindd/winbindd_cache.c:3245(i…cache)
окт 21 11:31:47 it-admin winbindd[8459]: initialize_winbindd_cache: clearing cache and re-creating with version number 2
окт 21 11:31:47 it-admin winbindd[8459]: [2016/10/21 11:31:47.651534, 0] ../source3/winbindd/winbindd_util.c:869(ini…_list)
окт 21 11:31:47 it-admin winbindd[8459]: Could not fetch our SID — did we join?
окт 21 11:31:47 it-admin winbindd[8459]: [2016/10/21 11:31:47.651566, 0] ../source3/winbindd/winbindd.c:1408(winbind…dlers)
окт 21 11:31:47 it-admin winbindd[8459]: unable to initialize domain list
окт 21 11:31:47 it-admin systemd[1]: winbind.service: Main process exited, code=exited, status=1/FAILURE
окт 21 11:31:47 it-admin systemd[1]: Failed to start Samba Winbind Daemon.
окт 21 11:31:47 it-admin systemd[1]: winbind.service: Unit entered failed state.
окт 21 11:31:47 it-admin systemd[1]: winbind.service: Failed with result ‘exit-code’.
Hint: Some lines were ellipsized, use -l to show in full.
dpkg: ошибка при обработке пакета winbind (—configure):
подпроцесс установлен сценарий post-installation возвратил код ошибки 1
Обрабатываются триггеры для libc-bin (2.24-3ubuntu1) …
При обработке следующих пакетов произошли ошибки:
winbind
- Forum
- The Ubuntu Forum Community
- Ubuntu Specialised Support
- Ubuntu Servers, Cloud and Juju
- Server Platforms
- [server] Samba and WinBind errors preventing package installs
-
Samba and WinBind errors preventing package installs
Hi Ubuntu experts and enthusiasts!
So I’ve been trying to get a webserver set up and also need to get Samba share to be working. Below is what happens when I try to install any software that touches those two packages. Any ideas other than a clean install to fix this? I’ve tried to force uninstall and reinstall both samba and winbind. Samba acts like it works but winbind just gives the same error.
-
Re: Samba and WinBind errors preventing package installs
What version of Ubuntu are you using and please copy/paste the text output into your post enclosed within [code][/code] tags. I’d doubt that anyone will be able to read your image.
-
Re: Samba and WinBind errors preventing package installs
Hello!
Your image may be hard to read.
If you are using ssh to get to the machine, would you please copy & paste the text back here between code tags?
To use code tags:
1. Click the # button in the toolbar above the text entry box, place your cursor between the code tags that appear and paste or type your text.
2. Paste or type your text, highlight it and then click the # button.
3. Type [code] before your text and [/code] after your text. The square brackets are required.
Please read The Forum Rules and The Forum Posting Guidelines
A thing discovered and kept to oneself must be discovered time and again by others. A thing discovered and shared with others need be discovered only the once.
This universe is crazy. I’m going back to my own.
-
Re: Samba and WinBind errors preventing package installs
Originally Posted by howefield
What version of Ubuntu are you using and please copy/paste the text output into your post enclosed within [code][/code] tags. I’d doubt that anyone will be able to read your image.
Originally Posted by QIII
Hello!
Your image may be hard to read.
If you are using ssh to get to the machine, would you please copy & paste the text back here between code tags?
To use code tags:
1. Click the # button in the toolbar above the text entry box, place your cursor between the code tags that appear and paste or type your text.
2. Paste or type your text, highlight it and then click the # button.
3. Type [code] before your text and [/code] after your text. The square brackets are required.
Thank you for the heads up of the image… the original on the other site is bigger. I am using SSH(Putty) so I will copy the output and post it when I get a baby free moment tonight. Also suggested was a uname -a command to give the details of the server.
Here’s some specs and use of the server now:
This is a local server that’s run out of my basement on my main rig hand me downs. I run two 24/7 Minecraft servers, for me and the kids, and PLEX server which streams to multiple devices.
It’s updated to the last stable release 16.04
Winbind is being used in conjecture with Samba through my Webmin admin portal.
Server Specs:
CPU: 3.0Ghz Phenom II X4 945
Motherboard: Asus M5A88-V EVO
RAM: ADATA 6GB
Hard Drives: 4x1TB in RAID 6, 320GB for OS/Swap
Cooling: Xigmatek Loki
NIC: Intel based dual NICLast edited by dd-custom-mods; March 8th, 2017 at 09:48 PM.
-
Re: Samba and WinBind errors preventing package installs
Here are some outputs and the config file for Samba. I hope this helps.
Code:
root@CIASERV:/home/agent007# uname -a Linux CIASERV 4.8.0-37-generic #39-Ubuntu SMP Thu Jan 26 02:27:07 UTC 2017 x86_6 4 x86_64 x86_64 GNU/Linux [1]+ Stopped service smbd status
Code:
Setting up winbind (2:4.4.5+dfsg-2ubuntu5.2) ... Job for winbind.service failed because the control process exited with error code. See "systemctl status winbind.service" and "journalctl -xe" for details. invoke-rc.d: initscript winbind, action "start" failed. � winbind.service - Samba Winbind Daemon Loaded: loaded (/lib/systemd/system/winbind.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2017-03-10 13:54:14 EST; 8ms ago Docs: man:winbindd(8) man:samba(7) man:smb.conf(5) Process: 13514 ExecStart=/usr/sbin/winbindd $WINBINDOPTIONS (code=exited, status=1/FAILURE) Main PID: 13514 (code=exited, status=1/FAILURE) Mar 10 13:54:14 CIASERV systemd[1]: Starting Samba Winbind Daemon... Mar 10 13:54:14 CIASERV systemd[1]: winbind.service: Main process exited, code=exited, statu...LURE Mar 10 13:54:14 CIASERV systemd[1]: Failed to start Samba Winbind Daemon. Mar 10 13:54:14 CIASERV systemd[1]: winbind.service: Unit entered failed state. Mar 10 13:54:14 CIASERV systemd[1]: winbind.service: Failed with result 'exit-code'. Hint: Some lines were ellipsized, use -l to show in full. dpkg: error processing package winbind (--configure): subprocess installed post-installation script returned error exit status 1 Setting up samba (2:4.4.5+dfsg-2ubuntu5.2) ... Failed to preset unit: Unit file /etc/systemd/system/samba-ad-dc.service is masked. /usr/bin/deb-systemd-helper: error: systemctl preset failed on samba-ad-dc.service: No such file or directory Job for smbd.service failed because the control process exited with error code. See "systemctl status smbd.service" and "journalctl -xe" for details. invoke-rc.d: initscript smbd, action "start" failed. � smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2017-03-10 13:54:16 EST; 9ms ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Process: 13620 ExecStart=/usr/sbin/smbd $SMBDOPTIONS (code=exited, status=1/FAILURE) Main PID: 13620 (code=exited, status=1/FAILURE) Mar 10 13:54:15 CIASERV systemd[1]: Starting Samba SMB Daemon... Mar 10 13:54:16 CIASERV systemd[1]: smbd.service: Main process exited, code=exited, status=1...LURE Mar 10 13:54:16 CIASERV systemd[1]: Failed to start Samba SMB Daemon. Mar 10 13:54:16 CIASERV systemd[1]: smbd.service: Unit entered failed state. Mar 10 13:54:16 CIASERV systemd[1]: smbd.service: Failed with result 'exit-code'. Hint: Some lines were ellipsized, use -l to show in full. dpkg: error processing package samba (--configure): subprocess installed post-installation script returned error exit status 1 Processing triggers for libc-bin (2.24-3ubuntu1) ... Errors were encountered while processing: winbind samba E: Sub-process /usr/bin/dpkg returned an error code (1)
Code:
# # Sample configuration file for the Samba suite for Debian GNU/Linux. # # # This is the main Samba configuration file. You should read the # smb.conf(5) manual page in order to understand the options listed # here. Samba has a huge number of configurable options most of which # are not shown in this example # # Some options that are often worth tuning have been included as # commented-out examples in this file. # - When such options are commented with ";", the proposed setting # differs from the default Samba behaviour # - When commented with "#", the proposed setting is the default # behaviour of Samba but the option is considered important # enough to be mentioned here # # NOTE: Whenever you modify this file you should run the command # "testparm" to check that you have not made any basic syntactic # errors. #======================= Global Settings ======================= [global] passwd chat = *Entersnews*spassword:* %nn *Retypesnews*spassword:* %nn *passwordsupdatedssuccessfully* . obey pam restrictions = yes dns proxy = no default = DATA unix password sync = yes max log size = 1000 log file = /var/log/samba/log.%m winbind trusted domains only = no server string = Home Server (Samba, PLEX, SSH, Minecraft) panic action = /usr/share/samba/panic-action %d passwd program = /usr/bin/passwd %u os level = 20 passdb backend = tdbsam security = share usershare allow guests = yes writeable = yes public = yes winbind use default domain = yes guest account = agent007 map to guest = bad user pam password change = yes workgroup = WORKGROUP syslog = 0 encrypt passwords = yes netbios name = CIASERV server role = standalone server ## Browsing/Identification ### # Change this to the workgroup/NT-domain name your Samba server will part of # server string is the equivalent of the NT Description field # Windows Internet Name Serving Support Section: # WINS Support - Tells the NMBD component of Samba to enable its WINS Server wins support = yes # WINS Server - Tells the NMBD components of Samba to be a WINS Client # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both ; wins server = w.x.y.z # This will prevent nmbd to search for NetBIOS names through DNS. #### Networking #### # The specific set of interfaces / networks to bind to # This can be either the interface name or an IP address/netmask; # interface names are normally preferred ; interfaces = 127.0.0.0/8 eth0 # Only bind to the named interfaces and/or networks; you must use the # 'interfaces' option above to use this. # It is recommended that you enable this feature if your Samba machine is # not protected by a firewall or is a firewall itself. However, this # option cannot handle dynamic or non-broadcast interfaces correctly. ; bind interfaces only = yes #### Debugging/Accounting #### # This tells Samba to use a separate log file for each machine # that connects # Cap the size of the individual log files (in KiB). # If you want Samba to only log through syslog then set the following # parameter to 'yes'. # syslog only = no # We want Samba to log a minimum amount of information to syslog. Everything # should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log # through syslog you should set the following parameter to something higher. # Do something sensible when Samba crashes: mail the admin a backtrace ####### Authentication ####### # Server role. Defines in which mode Samba will operate. Possible # values are "standalone server", "member server", "classic primary # domain controller", "classic backup domain controller", "active # directory domain controller". # # Most people will want "standalone sever" or "member server". # Running as "active directory domain controller" will require first # running "samba-tool domain provision" to wipe databases and create a # new domain. # If you are using encrypted passwords, Samba will need to know what # password database type you are using. # This boolean parameter controls whether Samba attempts to sync the Unix # password with the SMB password when the encrypted SMB password in the # passdb is changed. # For Unix password sync to work on a Debian GNU/Linux system, the following # parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for # sending the correct chat script for the passwd program in Debian Sarge). # This boolean controls whether PAM will be used for password changes # when requested by an SMB client instead of the program listed in # 'passwd program'. The default is 'no'. # This option controls how unsuccessful authentication attempts are mapped # to anonymous connections ########## Domains ########### # # The following settings only takes effect if 'server role = primary # classic domain controller', 'server role = backup domain controller' # or 'domain logons' is set # # It specifies the location of the user's # profile directory from the client point of view) The following # required a [profiles] share to be setup on the samba server (see # below) ; logon path = \%Nprofiles%U # Another common choice is storing the profile in the user's home directory # (this is Samba's default) # logon path = \%N%Uprofile # The following setting only takes effect if 'domain logons' is set # It specifies the location of a user's home directory (from the client # point of view) ; logon drive = H: # logon home = \%N%U # The following setting only takes effect if 'domain logons' is set # It specifies the script to run during logon. The script must be stored # in the [netlogon] share # NOTE: Must be store in 'DOS' file format convention ; logon script = logon.cmd # This allows Unix users to be created on the domain controller via the SAMR # RPC pipe. The example command creates a user account with a disabled Unix # password; please adapt to your needs ; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u # This allows machine accounts to be created on the domain controller via the # SAMR RPC pipe. # The following assumes a "machines" group exists on the system ; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u # This allows Unix groups to be created on the domain controller via the SAMR # RPC pipe. ; add group script = /usr/sbin/addgroup --force-badname %g ############ Misc ############ # Using the following line enables you to customise your configuration # on a per machine basis. The %m gets replaced with the netbios name # of the machine that is connecting ; include = /home/samba/etc/smb.conf.%m # Some defaults for winbind (make sure you're not using the ranges # for something else.) ; idmap uid = 10000-20000 ; idmap gid = 10000-20000 ; template shell = /bin/bash # Setup usershare options to enable non-root users to share folders # with the net usershare command. # Maximum number of usershare. 0 (default) means that usershare is disabled. ; usershare max shares = 100 # Allow users who've been granted usershare privileges to create # public shares, not just authenticated ones #======================= Share Definitions ======================= # Un-comment the following (and tweak the other settings below to suit) # to enable the default home directory shares. This will share each # user's home directory as \serverusername ;[homes] ; comment = Home Directories ; browseable = no # By default, the home directories are exported read-only. Change the # next parameter to 'no' if you want to be able to write to them. ; read only = yes # File creation mask is set to 0700 for security reasons. If you want to # create files with group=rw permissions, set next parameter to 0775. ; create mask = 0700 # Directory creation mask is set to 0700 for security reasons. If you want to # create dirs. with group=rw permissions, set next parameter to 0775. ; directory mask = 0700 # By default, \serverusername shares can be connected to by anyone # with access to the samba server. # Un-comment the following parameter to make sure that only "username" # can connect to \serverusername # This might need tweaking when using external authentication schemes ; valid users = %S # Un-comment the following and create the netlogon directory for Domain Logons # (you need to configure Samba to act as a domain controller too.) ;[netlogon] ; comment = Network Logon Service ; path = /home/samba/netlogon ; guest ok = yes ; read only = yes # Un-comment the following and create the profiles directory to store # users profiles (see the "logon path" option above) # (you need to configure Samba to act as a domain controller too.) # The path below should be writable by all users so that their # profile directory may be created the first time they log on ;[profiles] ; comment = Users profiles ; path = /home/samba/profiles ; guest ok = no ; browseable = no ; create mask = 0600 ; directory mask = 0700 ________smb.conf ends_______ ________smb.log begins______ ________smb.log ends_______ ________smb.status begins______
-
Re: Samba and WinBind errors preventing package installs
I can only comment on one parameter in your smb.conf:
Back in the olden days samba would look at that and ignore it essentially reverting it to «security = user» which is the default.But in the latest version of samba they decided to get medieval about the whole thing and will actually stop the smbd service from running. My suggestion is to go into smb.conf and just comment-out the line.
-
Re: Samba and WinBind errors preventing package installs
Originally Posted by Morbius1
I can only comment on one parameter in your smb.conf:
Back in the olden days samba would look at that and ignore it essentially reverting it to «security = user» which is the default.
But in the latest version of samba they decided to get medieval about the whole thing and will actually stop the smbd service from running. My suggestion is to go into smb.conf and just comment-out the line.
I commented that line out. I tried to start the Samba service and got an error. This is the output of systemctl status smbd.service
Code:
root@CIASERV:/etc/samba# systemctl status smbd.service � smbd.service - Samba SMB Daemon Loaded: loaded (/lib/systemd/system/smbd.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2017-03-10 20:42:55 EST; 18s ago Docs: man:smbd(8) man:samba(7) man:smb.conf(5) Process: 12525 ExecStart=/usr/sbin/smbd $SMBDOPTIONS (code=exited, status=1/FAILURE) Main PID: 12525 (code=exited, status=1/FAILURE) Mar 10 20:42:55 CIASERV systemd[1]: Starting Samba SMB Daemon... Mar 10 20:42:55 CIASERV systemd[1]: smbd.service: Main process exited, code=exited, status=1/FAILUR Mar 10 20:42:55 CIASERV systemd[1]: Failed to start Samba SMB Daemon. Mar 10 20:42:55 CIASERV systemd[1]: smbd.service: Unit entered failed state. Mar 10 20:42:55 CIASERV systemd[1]: smbd.service: Failed with result 'exit-code'.
Bookmarks
Bookmarks
Posting Permissions
- Печать
Страницы: [1] 2 Все Вниз
Тема: Проблема с запуском Samba (Прочитано 12326 раз)
0 Пользователей и 1 Гость просматривают эту тему.
xpforest
Всем привет!
Ситуация следующая. Стоит Ubuntu Server 16.04 x64 LTS.
Настраивал доступ к шаре через Webmin, попытался перезапустить самбу, как вдруг мне выдало сообщение:
Failed to start Samba servers : service smbd start ; service nmbd start failed
При попытке перезапустить самбу через терминал выдало следующее:
Job for smbd.service failed because the control process exited with error code.
Кто-нибудь сталкивался с подобным?
See "systemctl status smbd.service" and "journalctl -xe" for details.
« Последнее редактирование: 31 Мая 2016, 20:28:46 от xpforest »
Че, родимый, еще рассказать тебе?
victor00000
xpforest
victor00000, эммм? версии? Подскажи, пожалуйста
Че, родимый, еще рассказать тебе?
victor00000
честно эту apt-get install samba?
wolfser2701
xpforest,
эммм? версии? Подскажи, пожалуйста
Где нибудь рядом видел проблемы с версиями самбы 4.3.8 и 4.3.9 , сообщество в ауте.
xpforest
victor00000, ну да, ставил именно так.
wolfser2701, у меня 4.3.9
Че, родимый, еще рассказать тебе?
victor00000
xpforest,
wolfser2701, у меня 4.3.9
зачем показывай версии?
xpforest
victor00000, в смысле «Показывай версии»?)) Мужчина, я Вас не понимаю)))))я еще слишком зеленый в линуксе)))
Че, родимый, еще рассказать тебе?
wolfser2701
victor00000, Вот что? Ты не видел проблем с обновлениями самбы до 3.8 и 3.9 ?
victor00000
wolfser2701, просто install samba, никаких версии.
xpforest
wolfser2701, victor00000, после выполнения команды sudo apt-get install samba выдало следующее:
samba is already the newest version (2:4.3.9+dfsg-0ubuntu0.16.04.2).
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 3 пакетов не обновлено.
Че, родимый, еще рассказать тебе?
wolfser2701
victor00000, Ты же видел, сколько этих самб упало, может подождём твою маму, Подождём Твою Мать.
xpforest
wolfser2701, у всех чтоль такая хреновина с морковиной? (как бы выразилась моя бабуля)
Че, родимый, еще рассказать тебе?
victor00000
xpforest,
а как дела
smbclient -L 127.0.0.1 -N
?
xpforest
victor00000,
WARNING: The "syslog" option is deprecated
WARNING: Ignoring invalid value 'share' for parameter 'security'
smbclient: Can't load /etc/samba/smb.conf - run testparm to debug it
Connection to 127.0.0.1 failed (Error NT_STATUS_CONNECTION_REFUSED)
« Последнее редактирование: 31 Мая 2016, 21:40:22 от xpforest »
Че, родимый, еще рассказать тебе?
- Печать
Страницы: [1] 2 Все Вверх
Функционал обычного файлового сервера неизменно остается одним из самых популярных и востребованных в работе среднестатистического офиса. Сегодня я расскажу как установить и настроить файловый сервер Samba с авторизацией в AD и управлением доступом с помощью доменных учетных записей. Сразу скажу, что тема это достаточно трудная и хрупкая, очень часто что-то идет не так, нужно неплохо ориентироваться в теме, чтобы решать возникающие проблемы.
Прежде чем начинать настройку файлового сервера samba, прочитайте полностью материал, чтобы решить, каким способом будете настраивать. По ходу написания статьи у меня получились 2 принципиально разных решения.
Введение
Ранее я рассказывал как сделать очень простую и быструю настройку самбы, когда доступ ограничивается либо внутренними пользователями самбы, либо с помощью ip. Если вас такой формат эксплуатации файлового сервера устраивает, то читать дальше не обязательно. Используйте приведенную статью, и у вас все получится очень быстро.
Для более сложной настройки самбы с авторизацией в Active Directory будем разбираться дальше. Существует как минимум 2 способа добавления linux сервера в домен Windows Server:
- Использовать известное и универсальное средство winbind.
- Либо воспользоваться менее популярным, но как мне кажется, более удобным и простым в настройке — sssd.
Если у вас еще нет готового сервера, то можете воспользоваться моими материалами на эту тему — установка и настройка centos 7. Так же рекомендую настроить iptables для корректной работы сервера с доменом windows. Далее я не буду касаться этого вопроса, мы просто отключим фаерволл, потому что его настройка не тема этой статьи.
Настраивать файловую шару samba будем на сервере под управлением CentOS 7 следующей версии:
Вводные слова я все сказал. Начнем настройку самбы с ввода сервера в домен.
Добавляем сервер к домену через realm
Я не буду придумывать ничего нового, а полностью воспользуюсь инструкцией из приведенной выше статьи по настройке авторизации доменных учеток на сервере, но при этом не буду настраивать саму авторизацию. В данном случае мне это не нужно.
Итак, отключаем firewall и SELinux, если не сделали это раньше. Если не хотите отключать, то настройте сами. Данная настройка выходит за рамки статьи.
# mcedit /etc/sysconfig/selinux
меняем значение
SELINUX=disabled
Выполняем команду, чтобы не ждать перезагрузки для применения изменений.
setenforce 0
Выключаем firewalld.
# systemctl stop firewalld # systemctl disable firewalld
xs.local | название домена |
10.1.3.4 | ip адрес контроллера домена |
xs-winsrv.xs.local | полное имя контроллера домена |
xs-design | имя сервера centos, который вводим в домен |
admin51 | учетная запись администратора домена |
Перед дальнейшей настройкой, убедитесь, что с вашего сервера centos вы без проблем пингуете и резолвите контроллер домена по полному имени. Если есть какие-то проблемы, исправьте это либо указанием нужного dns сервера, либо правкой файла hosts.
Настроим синхронизацию времени с контроллером домена. Это важно, у вас должно быть одинаковое время с контроллером домена. Проверьте его и убедитесь, что стоят одинаковые часовые пояса.
Устанавливаем утилиту для синхронизации времени chrony:
# yum install chrony
Добавляем в конфиг /etc/chrony.conf адрес контроллера домена. И делаем его единственным сервером для синхронизации, остальные удаляем.
server xs-winsrv.xs.local iburst
Сохраняем конфиг, запускаем chrony и добавляем в автозагрузку.
# systemctl start chronyd && systemctl enable chronyd
Проверим, что с синхронизацией.
Устанавливаем софт, который понадобится для дальнейшей работы.
# yum install realmd sssd sssd-libwbclient oddjob oddjob-mkhomedir adcli samba-common samba-common-tools
Делаем проверку перед вводом в домен.
# realm discover XS.LOCAL xs.local type: kerberos realm-name: XS.LOCAL domain-name: xs.local configured: no server-software: active-directory client-software: sssd required-package: oddjob required-package: oddjob-mkhomedir required-package: sssd required-package: adcli required-package: samba-common-tools
Заводим в домен.
# realm join -U admin51 XS.LOCAL Password for admin51:
Если не получили никакой ошибки, значит все прошло нормально. Можно зайти на контроллер домена и проверить, появился ли наш linux сервер в домене.
Проверьте на самом сервере, что он нормально обращается к домену и получает информацию об учетных записях. Показываю на примере доменной учетной записи control.
# id control@xs.local uid=185001305(control@xs.local) gid=185000513(пользователи домена@xs.local) groups=185000513(пользователи домена@xs.local),185001329(gr_y@xs.local),185001651(gr_sams2@xs.local),185001327(gr_z@xs.local)
Еще несколько проверок.
# realm list
# adcli info xs.local
Сервер завели в домен. Приступаем к основному — настройке samba с интеграцией в AD.
Настройка Samba с интеграцией в AD через sssd
Устанавливаем сам файловый сервер самба.
# yum install samba
Рисуем ему примерно такой конфиг.
# cat /etc/samba/smb.conf
[global]
workgroup = XS
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
log level =3
max log size = 500
security = ads
encrypt passwords = yes
passdb backend = tdbsam
realm = XS.LOCAL
load printers = no
cups options = raw
printcap name = /dev/null
[shara]
comment = My shared folder
path = /mnt/shara
public = no
writable = yes
guest ok = no
valid users = @"gr_it@xs.local"
Запускаем службу smb.service и добавляем в автозагрузку.
# systemctl start smb.service # systemctl enable smb.service
Теперь идем проверять подключение к сетевому диску с какой-нибудь виндовой машины. Здесь меня ждало полное разочарование. Ничего не работало. Я бился над решение проблемы примерно 2 дня, но не смог победить. Перелопатил весь гугл по запросу «sssd samba», но не смог заставить работать эту связку.
Через поиск нашел как людей, которые бились над решением проблемы с теми же ошибками, что и у меня, так и тех у кого все работало нормально. Я проверил все гайды и конфиги, где люди говорили, что такая связка работает, но у меня она все равно не работала. Видел сообщения людей, которые так же как я, не смогли победить ошибки. Думаю, проблема кроется в различных версиях софта.
Мне стало жаль тратить время на поиски готового решения с sssd, хотя мне очень хотелось получить рабочий вариант, так как с winbind достаточно часто возникают проблемы. Я надеялся от них избавиться переходом на sssd, но не получилось. Статью не стал переделывать, сохранив то, что уже настроил. Может быть у вас заработает.
Попутно узнал, что sssd не поддерживает NTLM авторизацию, только kerberos. Я не знаю, по какой причине, но у меня самба, судя по логам, упорно пыталась авторизовать пользователя по ntlm. В итоге, я прекратил попытки и вернулся к старому проверенному варианту с winbind. Далее расскажу, как настроить файловый сервер samba для работы в домене windows с помощью winbind.
Вводим CentOS 7 в домен с помощью winbind
Если у вас виртуальная машина, проще установить ее с нуля. Если не хочется по какой-то причине, можно просто удалить все установленные ранее пакеты через команду yum remove. Я поступил именно так.
Устанавливаем недостающие пакеты:
# yum install samba-winbind samba-winbind-clients samba pam_krb5 krb5-workstation chrony
Не забудьте о настройке синхронизации времени, которую мы делали на предыдущих шагах. Надо это проделать, если вы сразу начали настройку с данного пункта. Так же убедитесь, что все в порядке с dns, и контроллеры домена пингуются по именам.
Формируем конфиг для kerberos.
# authconfig --enablekrb5 --krb5kdc=xs-winsrv.xs.local --krb5adminserver=xs-winsrv.xs.local --krb5realm=XS-WINSRV.XS.LOCAL --enablewinbind --enablewinbindauth --smbsecurity=ads --smbrealm=XS.LOCAL --smbservers=xs-winsrv.xs.local --smbworkgroup=XS --winbindtemplatehomedir=/home/%U --winbindtemplateshell=/bin/bash --enablemkhomedir --enablewinbindusedefaultdomain --update
Для удобства дублирую таблицу с информацией, чтобы не пришлось скролить страницу вверх.
xs.local | название домена |
10.1.3.4 | ip адрес контроллера домена |
xs-winsrv.xs.local | полное имя контроллера домена |
xs-design | имя сервера centos, который вводим в домен |
admin51 | учетная запись администратора домена |
Вывод после работы команды у меня такой:
Job for winbind.service failed because the control process exited with error code. See "systemctl status winbind.service" and "journalctl -xe" for details.
Это не страшно, продолжаем настройку. Заводим сервер с CentOS в домен:
# net ads join -U admin51
На выходе получил:
Enter admin51's password: Using short domain name -- XS Joined 'XS-DESIGN' to dns domain 'xs.local' No DNS domain configured for xs-design. Unable to perform DNS Update. DNS update failed: NT_STATUS_INVALID_PARAMETER
В принципе, ничего страшного. Нам придется самим создать A запись на DNS сервере. Я не понимаю, почему иногда она не создается автоматически. Во время написания статьи, я использовал один сервер, у него не было этой ошибки при вводе в домен. Когда проверял статью на втором сервере, получил эту ошибку. Проверяем на контроллере домена в списке компьютеров наш сервер и создаем руками А запись, соответствующую имени сервера и его IP адресу.
Теперь рисуем конфиг для самбы примерно такой.
# mcedit /etc/samba/smb.conf
[global]
workgroup = XS
password server = xs-winsrv.xs.local
realm = XS.LOCAL
security = ads
idmap config * : range = 16777216-33554431
template homedir = /home/%U
template shell = /bin/bash
kerberos method = secrets only
winbind use default domain = true
winbind offline logon = false
passdb backend = tdbsam
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
domain master = no
local master = no
preferred master = no
os level = 1
log level = 3
log file = /var/log/samba/log.%m
[shara]
path = /mnt/shara
writeable = yes
browsable = yes
valid users = "@XSПользователи домена"
admin users = "@XSАдминистраторы домена"
create mask = 0600
directory mask = 0700
У меня русский язык на контроллере домена, поэтому и имена групп на русском. Проблем с этим не возникает. Не забудьте создать директорию /mnt/shara.
Запускаем samba и winbind и добавляем в автозагрузку.
# systemctl start winbind # systemctl start smb.service # systemctl enable winbind # systemctl enable smb.service
Выполняем ряд проверок, чтобы убедиться, что все в порядке, winbind работает и samba будет получать актуальную информацию о пользователях и группах домена.
# wbinfo -t checking the trust secret for domain XS via RPC calls succeeded
# wbinfo -u # wbinfo -g
Последние две команды должны вывести список всех пользователей и групп домена.
Проверим теперь авторизацию в домене.
# wbinfo -a XS\control%'pass' plaintext password authentication succeeded challenge/response password authentication succeeded
В данном случае control — имя пользователя домена, pass — его пароль. Успешная проверка выглядит так, как у меня. В завершении проверок посмотрим, корректно ли система сопоставляет доменные учетные записи локальным.
# id control uid=16777216(control) gid=16777220(пользователи домена) groups=16777220(пользователи домена),16777221(gr_z),16777222(gr_sams2),16777223(gr_y),16777217(BUILTINusers)
Все в порядке. Теперь все готово для корректной работы файлового сервера на основе Samba с доменными учетными записями. В завершении настроек, сделаем администратора домена владельцем нашей шары.
# chown admin51:'пользователи домена' /mnt/shara
Проверяем, что получилось.
# ll /mnt total 0 drwxr-xr-x 2 admin51 пользователи домена 6 Sep 27 17:15 shara
Уберем доступ на чтение у всех остальных, оставим полные права для пользователя admin51 и на чтение у пользователей домена.
# chmod 0750 /mnt/shara
Идем на любую виндовую машину и пробуем зайти на шару по адресу \ip-адрес-сервера. Попадаем на нашу шару.Если не получилось зайти, проверьте настройки iptables. На время отладки можно их отключить. Так же убедитесь, что у вас запущена служба smb.service.
Смотрим расширенные параметры безопасности:
Получилось то, что хотели. Управлять правами доступа можно через windows acl с любой машины windows, где учетная запись пользователя домена будет обладать необходимыми правами. Если по какой-то причине это не получится (а я с такими ситуациями сталкивался достаточно часто), на помощь придут консольные утилиты getfacl для проверки прав и setfacl для изменения прав. Документация по этим командам есть в сети и легко ищется. Я рекомендую всегда использовать эти команды, когда вы выполняете изменение прав по большому дереву каталогов. Через консоль выставление прав будет выполнено раз в 5-10 быстрее, чем через windows acl. На больших файловых архивах разница может быть в десятки минут или даже часы.
Сделаю небольшое пояснение по правам доступа в файловом сервере samba. Вопрос этот сложный и объемный. Ему можно посвятить и отдельную статью. Но для полноты картины по настройке самбы, расскажу самое основное.
Как я уже ранее сказал, изменять права доступа к каталогам на файловом сервере можно с помощью команды setfacl. Давайте сейчас посмотрим на права доступа, которые установлены:
# getfacl /mnt/samba # file: mnt/shara # owner: admin51 # group: пользователи40домена user::rwx group::r-x other::---
С такими правами что-то создавать в папке сможет только пользователь admin51, а пользователи домена смогут только просматривать файлы и каталоги. Сделаем более прикладной вариант. Добавим права доступа на чтение и запись еще одной доменной группе — gr_it.
# setfacl -m g:gr_it:rwx /mnt/shara
Обращаю внимание, что иногда при копировании команд setfacl они не отрабатывают, выдавая не очень понятную ошибку:
setfacl: Option -m: Invalid argument near character 1
Наберите команду с клавиатуры, либо просто удалите и наберите снова ключ -m, он почему-то при копировании часто дает эту ошибку.
Смотрим, что получилось:
# getfacl /mnt/shara # file: mnt/shara # owner: admin51 # group: пользователи40домена user::rwx group::r-x group:gr_it:rwx mask::rwx other::---
То, что надо. Теперь пользователи группы gr_it имеют полные права на шару. Создадим одним таким пользователем папку test1 на нашей шаре и посмотрим, какие права она получит.
# getfacl /mnt/shara/test1 # file: mnt/shara/test1 # owner: user1 # group: пользователи40домена user::rwx group::--- other::---
Права на папку имеет только ее создатель и больше никто. Для того, чтобы наследовались права с вышестоящего каталога, необходимо на этот вышестоящий каталог добавить дефолтные права доступа. Примерно вот так.
# setfacl -m d:g:gr_it:rwx,d:g:'пользователи домена':rx /mnt/shara
Смотрим, что получилось:
# getfacl /mnt/shara # file: mnt/shara # owner: admin51 # group: пользователи40домена user::rwx group::r-x group:gr_it:rwx mask::rwx other::--- default:user::rwx default:group::r-x default:group:пользователи40домена:r-x default:group:gr_it:rwx default:mask::rwx default:other::---
Создадим теперь тем же пользователем еще одну папку test2 и проверим ее права.
# getfacl /mnt/shara/test2 # file: mnt/shara/test2 # owner: user # group: пользователи40домена user::rwx group::--- group:пользователи40домена:r-x group:gr_it:rwx mask::rwx other::--- default:user::rwx default:group::r-x default:group:пользователи40домена:r-x default:group:gr_it:rwx default:mask::rwx default:other::---
Применилось наследование с вышестоящих папок. Не забывайте про дефолтные права и учитывайте их при настройке прав доступа на файловом сервере.
Для удобной и корректной работы с правами доступа я обычно для крупных, корневых директорий выставляю права аккуратно через setfacl в консоли. Какие-то мелкие изменения по пользователям и группам в более низших иерархиях директорий делаю через windows acl с какой-нибудь виндовой машины.
Еще важно знать одну особенность выставления прав доступа в linux. В моей практике часто требуется дать какому-нибудь пользователю доступ в одну директорию, которая располагается там, где у пользователя нет вообще никаких прав. В windows эта проблема решается просто — даются права на конкретную папку, а пользователю кладется ярлык на эту папку. В итоге он имеет доступ к нужной директории и больше никуда.
В linux так сделать не получится. Для того, чтобы дать таким образом доступ на отдельную директорию пользователю, необходимо, чтобы по всем вышестоящим директориям у него были права на исполнение, то есть X. Их придется выставлять вручную по всем вышестоящим папкам. Результат будет такой же, как и в винде — пользователь получит доступ на чтение только в указанную папку, но для этого придется выполнить больше действий. Если не знаешь этот нюанс, можно потратить много времени, прежде чем поймешь, в чем проблема.
Заключение
Скажу откровенно — мне не нравится, как работают файловые сервера samba с интеграцией в виндовом домене. Но настраивать их приходится часто, так как востребованный функционал. Востребован в первую очередь потому, что не требует вообще никаких денег за лицензии, и работает на минимальной конфигурации железа. Вот список типичных проблем при работе самбы в домене:
- Иногда через windows acl права перестают выставляться, возникают неинформативные ошибки, по которым невозможно понять, что не так.
- Я достаточно регулярно наблюдаю ситуацию, когда слетают соответствия доменных учеток линуксовым UID. В итоге права доступа превращаются в ничего не значащий набор цифр и перестают работать.
- При переносе данных с одного сервера на другой трудно сохранить права доступа. Можно поступить вот так для копирования прав доступа, либо как-то заморочиться, чтобы на всех серверах у вас были одинаковые UID доменных учетных записей. Я не разбирал этот вопрос подробно.
Если у вас есть возможность настроить файловый сервер на windows, либо обойтись линуксом без домена, то сделайте так. Существенно упростите настройку и дальнейшую эксплуатацию.