Samba + LDAP (PDC)

Эта статья является доработкой предыдущей статьи, в которой учтены недостатки и реализованы новые идеи. В этой статье будет рассмотрена настройка самбы в качестве главного контроллера домена с хранением всей служебной информации в LDAP.
Итак, приступим... ОС, на которой будут производиться все операции - FreeBSD 7.3. Предполагается, что система чистая, а если нет, то удалите старые пакеты :). Обновляем порты. Далее устанавливаем сервер LDAP, в качестве такого я выбрал OpenLDAP.

  1. # cd /usr/ports/net/openldap24-server
  2. # make install clean
Из предложенных опций я выбрал следующие:
  • FETCH
  • TCP_WRAPPERS
  • SEQMOD
  • SYNCPROV
  • DYNAMIC_BACKENDS
Поддержку Berkley DB я убрал, так как народу у меня немного, соответственно хранить все можно в текстовых файлах. Если планируется много пользователей, то лучше использовать Berkley DB, ибо это хранилище быстрее работает. После установки лезем править конфиг /usr/local/etc/openldap/slapd.conf. У меня он выглядит так:
  1. #
  2. # See slapd.conf(5) for details on configuration options.
  3. # This file should NOT be world readable.
  4. #
  5. include         /usr/local/etc/openldap/schema/core.schema
  6.  
  7. # Подключаем дополнительные схемы
  8. include         /usr/local/etc/openldap/schema/cosine.schema
  9. include         /usr/local/etc/openldap/schema/inetorgperson.schema
  10. include         /usr/local/etc/openldap/schema/nis.schema
  11. #include         /usr/local/etc/openldap/schema/samba.schema
  12.  
  13. # Define global ACLs to disable default read access.
  14.  
  15. # Do not enable referrals until AFTER you have a working directory
  16. # service AND an understanding of referrals.
  17. #referral       ldap://root.openldap.org
  18.  
  19. pidfile         /var/run/openldap/slapd.pid
  20. argsfile        /var/run/openldap/slapd.args
  21.  
  22. # Подгружаем нужный модуль:
  23. modulepath      /usr/local/libexec/openldap
  24. # moduleload    back_bdb
  25. # moduleload    back_hdb
  26. moduleload      back_ldap
  27.  
  28. # Sample security restrictions
  29. #       Require integrity protection (prevent hijacking)
  30. #       Require 112-bit (3DES or better) encryption for updates
  31. #       Require 63-bit encryption for simple bind
  32. # security ssf=1 update_ssf=112 simple_bind=64
  33.  
  34. # Sample access control policy:
  35. #       Root DSE: allow anyone to read it
  36. #       Subschema (sub)entry DSE: allow anyone to read it
  37. #       Other DSEs:
  38. #               Allow self write access
  39. #               Allow authenticated users read access
  40. #               Allow anonymous users to authenticate
  41. #       Directives needed to implement policy:
  42. # access to dn.base="" by * read
  43. # access to dn.base="cn=Subschema" by * read
  44.  
  45. # Указываем права доступа к данным
  46. access to attrs=userPassword
  47.                 by self write
  48.                 by anonymous auth
  49.                 by * none
  50.  
  51. access to *
  52.                 by self write
  53.                 by users read
  54.                 by anonymous read
  55.                 by * none
  56.  
  57. #
  58. # if no access controls are present, the default policy
  59. # allows anyone and everyone to read anything but restricts
  60. # updates to rootdn.  (e.g., "access to * by * read")
  61. #
  62. # rootdn can always read and write EVERYTHING!
  63.  
  64. #######################################################################
  65. # BDB database definitions
  66. #######################################################################
  67.  
  68. # В этой опции указываем хранилище
  69. database        ldif
  70. suffix          "dc=srv-home,dc=local"
  71. rootdn          "cn=root,dc=srv-home,dc=local"
  72. # Пароль для главного пользователя.
  73. # Генерируется командой slappasswd, вывод команды просто скопировать сюда.
  74. # Дополнительно за информацией обращайтесь в ман - slappasswd(8) и slapd.conf(5).
  75. rootpw          {SSHA}XguytGYPdcylFxV60TD7DwhRy9AXML95
  76. # Здесь указываем папку, где будет располагаться база данных.
  77. # Она должна быть создана перед запуском slapd.
  78. # Рекомендуется установить на нее следующие права доступа - 700.
  79. directory       /var/db/openldap-data
  80.  
  81. # Настройка ведения логов
  82. logfile         /var/log/openldap.log
  83. loglevel        256
Где взять файл samba.schema будет сказано далее в статье. Теперь добавим демон slapd в автозагрузку и попробуем запустить:
  1. # echo 'slapd_enable="YES"' >> /etc/rc.conf
  2. # echo "slapd_flags='-h \"ldapi://%2fvar%2frun%2fopenldap%2fldapi/ ldap://127.0.0.1/ ldap://192.168.7.250/\"'" >> /etc/rc.conf
  3. # service slapd start
Если все прошло нормально, то у вас должно быть примерно следующее:
  1. # sockstat -l | grep slapd
  2. ldap     slapd      36521 6  stream /var/run/openldap/ldapi
  3. ldap     slapd      36521 7  tcp4   127.0.0.1:389         *:*
  4. ldap     slapd      36521 8  tcp4   192.168.7.250:389     *:*
Наполним лдап базовой информацией. Для этого нужно создать отдельный файл, внести в него нужную информацию и добавить командой ldapadd.
  1. dn: dc=srv-home,dc=local
  2. objectClass: dcObject
  3. objectClass: organization
  4. objectClass: top
  5. dc: srv-home
  6. o: srv-home
  7.  
  8. dn: cn=root,dc=srv-home,dc=local
  9. objectClass: organizationalRole
  10. cn: root
  11.  
  12. dn: ou=users,dc=srv-home,dc=local
  13. objectClass: top
  14. objectClass: organizationalUnit
  15. ou: users
  16.  
  17. dn: ou=groups,dc=srv-home,dc=local
  18. objectClass: top
  19. objectClass: organizationalUnit
  20. ou: groups
  21.  
  22. dn: ou=computers,dc=srv-home,dc=local
  23. objectClass: top
  24. objectClass: organizationalUnit
  25. ou: computers
Сохраните этот текст например в файле main.ldif и добавляем данные:
  1. # ldapadd -x -D "cn=root,dc=srv-home,dc=local" -W -f main.ldif
  2. Successfully added...
С настройкой OpenLDAP пока закончили. Сейчас надо установить скрипты, которые облегчат управление пользователями в лдапе и NSS модуль, который будет сопоставлять имя пользователя и идентификатор. Со скриптами все просто, идем сюда - /usr/ports/net/ldapscripts и устанавливаем. А теперь надо подправить чуток конфиг /usr/local/etc/ldapscripts/ldapscripts.conf.
  1. # LDAP Configuration
  2. SERVER="ldap://localhost"
  3. BINDDN="cn=root,dc=srv-home,dc=local"
  4. # The following file contains the raw password of the binddn
  5. # Create it with something like : echo -n 'secret' > $BINDPWDFILE
  6. # WARNING !!!! Be careful not to make this file world-readable
  7. #BINDPWDFILE="/usr/local/etc/ldapscripts/ldapscripts.passwd"
  8. # For older versions of OpenLDAP, it is still possible to use
  9. # unsecure command-line passwords by defining the following option
  10. # AND commenting the previous one (BINDPWDFILE takes precedence)
  11. BINDPWD="*****"
  12.  
  13. SUFFIX="dc=srv-home,dc=local" # Global suffix
  14. GSUFFIX="ou=groups"        # Groups ou (just under $SUFFIX)
  15. USUFFIX="ou=users"         # Users ou (just under $SUFFIX)
  16. MSUFFIX="ou=computers"      # Machines ou (just under $SUFFIX)
  17.  
  18. # Start with these IDs *if no entry found in LDAP*
  19. GIDSTART="20000" # Group ID
  20. UIDSTART="20000" # User ID
  21. MIDSTART="30000" # Machine ID
  22.  
  23. # User properties
  24. USHELL="/usr/sbin/nologin"
  25. UHOMES="/mnt/media/home/%u"     # You may use %u for username here
  26. CREATEHOMES="no"      # Create home directories and set rights ?
  27. #HOMESKEL="/etc/skel"  # Directory where the skeleton files are located. Ignored if undefined or nonexistant.
  28. HOMEPERMS="700"       # Default permissions for home directories
  29.  
  30. # User passwords generation
  31. # Command-line used to generate a password for added users (you may use %u for username here)
  32. # WARNING !!!! This is evaluated, everything specified here will be run !
  33. # Special value "<ask />" will ask for a password interactively
  34. #PASSWORDGEN="cat /dev/random | LC_ALL=C tr -dc 'a-zA-Z0-9' | head -c8"
  35. PASSWORDGEN="head -c8 /dev/random | uuencode -m - | sed -n '2s|=*$||;2p' | sed -e 's|+||g' -e 's|/||g'"
  36. #PASSWORDGEN="pwgen"
  37. #PASSWORDGEN="echo changeme"
  38. #PASSWORDGEN="echo %u"
  39. #PASSWORDGEN="<ask />"
  40.  
  41. # User passwords recording
  42. # you can keep trace of generated passwords setting PASSWORDFILE and RECORDPASSWORDS
  43. # (useful when performing a massive creation / net rpc vampire)
  44. # WARNING !!!! DO NOT FORGET TO DELETE THE GENERATED FILE WHEN DONE !
  45. # WARNING !!!! DO NOT FORGET TO TURN OFF RECORDING WHEN DONE !
  46. RECORDPASSWORDS="no"
  47. PASSWORDFILE="/var/log/ldapscripts_passwd.log"
  48.  
  49. # Where to log
  50. LOGFILE="/var/log/ldapscripts.log"
  51.  
  52. # Temporary folder
  53. TMPDIR="/tmp"
  54.  
  55. # Various binaries used within the scripts
  56. # Warning : they also use uuencode, date, grep, sed, cut, expr, which...
  57. # Please check they are installed before using these scripts
  58. # Note that many of them should come with your OS
  59.  
  60. # OpenLDAP client commands
  61. LDAPSEARCHBIN="/usr/local/bin/ldapsearch"
  62. LDAPADDBIN="/usr/local/bin/ldapadd"
  63. LDAPDELETEBIN="/usr/local/bin/ldapdelete"
  64. LDAPMODIFYBIN="/usr/local/bin/ldapmodify"
  65. LDAPMODRDNBIN="/usr/local/bin/ldapmodrdn"
  66. LDAPPASSWDBIN="/usr/local/bin/ldappasswd"
  67.  
  68. # Character set conversion : $ICONVCHAR  UTF-8
  69. # Comment ICONVBIN to disable UTF-8 conversion
  70. ICONVBIN="/usr/local/bin/iconv"
  71. ICONVCHAR="KOI8-R"
  72.  
  73. # Base64 decoding
  74. # Comment UUDECODEBIN to disable Base64 decoding
  75. UUDECODEBIN="/usr/bin/uudecode"
  76.  
  77. # Getent command to use - choose the ones used
  78. # on your system. Leave blank or comment for auto-guess.
  79. # GNU/Linux
  80. #GETENTPWCMD="getent passwd"
  81. #GETENTGRCMD="getent group"
  82. # FreeBSD
  83. GETENTPWCMD="pw usershow"
  84. GETENTGRCMD="pw groupshow"
  85. # Auto
  86. #GETENTPWCMD=""
  87. #GETENTGRCMD=""
  88.  
  89. # You can specify custom LDIF templates here
  90. # Leave empty to use default templates
  91. # See *.template.sample for default templates
  92. #GTEMPLATE="/path/to/ldapaddgroup.template"
  93. #UTEMPLATE="/path/to/ldapadduser.template"
  94. #MTEMPLATE="/path/to/ldapaddmachine.template"
  95. GTEMPLATE=""
  96. UTEMPLATE=""
  97. MTEMPLATE=""
Теперь нужно установить NSS модуль, который будет сопоставлять имя пользоватя и идентификатор.
  1. # cd /usr/ports/net/nss_ldap
  2. # make install clean
И снова правим конфиг.
  1. # Your LDAP server. Must be resolvable without using LDAP.
  2. # Multiple hosts may be specified, each separated by a
  3. # space. How long nss_ldap takes to failover depends on
  4. # whether your LDAP client library supports configurable
  5. # network or connect timeouts (see bind_timelimit).
  6. host 127.0.0.1
  7.  
  8. # The distinguished name of the search base.
  9. base dc=srv-home,dc=local
  10.  
  11. # The LDAP version to use (defaults to 3
  12. # if supported by client library)
  13. ldap_version 3
  14.  
  15. # The port.
  16. # Optional: default is 389.
  17. port 389
  18.  
  19. # The search scope.
  20. #scope sub
  21. scope one
  22. #scope base
  23.  
  24. # Reconnect policy:
  25. #  hard_open: reconnect to DSA with exponential backoff if
  26. #             opening connection failed
  27. #  hard_init: reconnect to DSA with exponential backoff if
  28. #             initializing connection failed
  29. #  hard:      alias for hard_open
  30. #  soft:      return immediately on server failure
  31. bind_policy soft
  32.  
  33. # Connection policy:
  34. #  persist:   DSA connections are kept open (default)
  35. #  oneshot:   DSA connections destroyed after request
  36. nss_connect_policy persist
  37.  
  38. # Use paged rseults
  39. nss_paged_results yes
  40.  
  41. # RFC2307bis naming contexts
  42. nss_base_passwd ou=users,dc=srv-home,dc=local?one
  43. nss_base_passwd ou=computers,dc=srv-home,dc=local?one
  44. nss_base_shadow ou=users,dc=srv-home,dc=local?one
  45. nss_base_group          ou=groups,dc=srv-home,dc=local?one
После настройки модуля нужно сказать системе, что информацию о идентификаторах можно получать еще через него. Для этого правим файл - /etc/nsswitch.conf, точнее всего две строчки в нем.
  1. group: files ldap
  2. passwd: files ldap
Проверим работоспособность настроенной связки:
  1. # ldapaddgroup testgroup
  2. Successfully added group testgroup to LDAP
  3. # ldapadduser testuser testgroup
  4. Successfully added user testuser to LDAP
  5. Successfully set password for user testuser
  6. # lsldap
  7. ...
  8. dn: cn=testgroup,ou=groups,dc=srv-home,dc=local
  9. objectClass: posixGroup
  10. cn: testgroup
  11. gidNumber: 20016
  12. description: Group account
  13.  
  14. dn: uid=testuser,ou=users,dc=srv-home,dc=local
  15. objectClass: account
  16. objectClass: posixAccount
  17. cn: testuser
  18. uid: testuser
  19. uidNumber: 20004
  20. gidNumber: 20016
  21. homeDirectory: /mnt/media/home/testuser
  22. loginShell: /usr/sbin/nologin
  23. gecos: testuser
  24. description: User account
  25. userPassword:: e1NTSEF9RzVTakJBZjMyM1d6b2ZycWpUZ0hIRXhnak0vdnlTWCs=
  26. ...
  27. # id testuser
  28. uid=20004(testuser) gid=20016(testgroup) groups=20016(testgroup)
Если у вас в выводе команд наблюдается, что-то подобное, то все работает нормально. Удалить пользователя и группу можно командами - ldapdeleteuser и ldapdeletegroup. приступаем к установке и настройке самбы.
  1. # cd /usr/ports/net/samba34
  2. # make install clean
Опции, которые я выбрал:
  • LDAP
  • ACL_SUPPORT
  • QUOTAS
  • POPT
После завершения установки надо скопировать схему samba.schema в папку схем openldap:
  1. # cp /usr/local/share/examples/samba34/LDAP/samba.schema /usr/local/etc/openldap/schema
Теперь раскомментируем строку в файле slapd.conf, где подключается только что скопированная схема и перезапускаем демон slapd. Ну и идем править конфиг самбы.
  1. #======================= Global Settings =====================================
  2. [global]
  3.    workgroup = HOME
  4.    server string = Documents
  5.    netbios name = srv-home.local
  6.  
  7.    security = user
  8.    hosts allow = 192.168.7. 127.
  9.    load printers = no
  10.    printing = bsd
  11.    #guest account = nobody
  12.    #log file = /var/log/samba34/log.%m
  13.    log file = /dev/null
  14.    log level = 0
  15.    max log size = 5000
  16.    encrypt passwords = yes
  17.    #passdb backend = tdbsam
  18.    passdb backend = ldapsam:ldap://localhost/
  19.    ldap suffix = dc=srv-home,dc=local
  20.    ldap user suffix = ou=users
  21.    ldap group suffix = ou=groups
  22.    ldap machine suffix = ou=computers
  23.    ldap admin dn = "cn=root,dc=srv-home,dc=local"
  24.    ldap delete dn = no
  25.    ldap ssl = no
  26.  
  27.    ;include = /usr/local/etc/smb.conf.%m
  28.  
  29.    read raw = yes
  30.    write raw = yes
  31.    use sendfile = yes
  32.    socket options = IPTOS_LOWDELAY TCP_NODELAY SO_SNDBUF=32768 SO_RCVBUF=32768 SO_KEEPALIVE
  33.  
  34.    interfaces = 192.168.7.250/24 127.0.0.1/8
  35.    bind interfaces only = yes
  36.    local master = yes
  37.    domain master = yes
  38.    preferred master = yes
  39.  
  40.    os level = 65
  41.    domain logons = yes
  42.    wins support = yes
  43.    time server = yes
  44.  
  45.    admin users = nekit
  46.    logon path = \\%L\profiles\%U
  47.    logon drive = H:
  48.    logon home = \\%L\%U
  49.    logon script = logon.cmd
  50.  
  51.    display charset = koi8-r
  52.    unix charset = koi8-r
  53.    dos charset = cp866
  54.  
  55.    case sensitive = no
  56.  
  57.    store dos attributes = yes
  58.  
  59. # Скрипт, для добавления машин
  60.    add machine script = /usr/local/sbin/ldapaddmachine '%u' smb_pdc_computers
  61.    add user script = /usr/local/sbin/ldapadduser '%u' smb_pdc_users
  62.    add group script = /usr/local/sbin/ldapaddgroup '%g'
  63.    add user to group script = /usr/local/sbin/ldapaddusertogroup '%u' '%g'
  64.    delete user script = /usr/local/sbin/ldapdeleteuser '%u'
  65.    delete group script = /usr/local/sbin/ldapdeletegroup '%g'
  66.    delete user from group script = /usr/local/sbin/ldapdeleteuserfromgroup '%u' '%g'
  67.    set primary group script = /usr/local/sbin/ldapsetprimarygroup '%u' '%g'
  68.    rename user script = /usr/local/sbin/ldaprenameuser '%uold' '%unew'
  69.  
  70. #============================ Share Definitions ==============================
  71. [netlogon]
  72.    comment = Netlogon Service
  73.    path = /mnt/media/samba/netlogon
  74.    read only = yes
  75.    browseable = no
  76.    public = no
  77.  
  78. [profiles]
  79.    comment = User profiles
  80.    path = /mnt/media/samba/profiles
  81.    writeable = yes
  82.    browseable = no
  83.    public = no
  84.    csc policy = disable
  85.    create mask = 0600
  86.    directory mask = 0700
  87.  
  88. [homes]
  89.    comment = Home Directories
  90.    browseable = no
  91.    writable = yes
  92.    force create mode = 0640
  93.    force directory mode = 0750
  94.  
  95. # NOTE: If you have a BSD-style print system there is no need to
  96. # specifically define each individual printer
  97. [printers]
  98.    comment = All Printers
  99.    path = /var/spool/samba
  100.    browseable = no
  101. # Set public = yes to allow user 'guest account' to print
  102.    guest ok = no
  103.    writable = no
  104.    printable = yes
  105.  
  106. [Video]
  107.    comment = Video
  108.    path = /mnt/media/samba/video
  109.    browseable = yes
  110.    public = no
  111.    writable = yes
  112.    force create mode  = 0640
  113.    force directory mode = 0750
  114.    create mask = 0640
  115.    directory mask = 0750
  116.    force user = root
  117.    force group = wheel
  118.    valid users = @smb_video_read, @smb_video_write
  119.    write list = @smb_video_write
  120.    read list = @smb_video_read, @smb_video_write
  121.  
  122. [Music]
  123.    comment = Music
  124.    path = /mnt/media/samba/music
  125.    browseable = yes
  126.    public = no
  127.    writable = yes
  128.    force create mode = 0640
  129.    force directory mode = 0750
  130.    create mask = 0640
  131.    directory mask = 0750
  132.    force user = root
  133.    force group = wheel
  134.    valid users = @smb_music_read, @smb_music_write
  135.    write list = @smb_music_write
  136.    read list = @smb_music_read, @smb_music_write
  137.  
  138. [Distrib]
  139.    comment = Distrib
  140.    path = /mnt/media/samba/distrib
  141.    browseable = yes
  142.    public = no
  143.    writable = yes
  144.    force create mode = 0640
  145.    force directory mode = 0750
  146.    create mask = 0640
  147.    directory mask = 0750
  148.    force user = root
  149.    force group = wheel
  150.    valid users = @smb_distrib_read, @smb_distrib_write
  151.    write list = @smb_distrib_write
  152.    read list = @smb_distrib_read, @smb_distrib_write
  153.  
  154. [Wallpapers]
  155.    comment = Wallpapers
  156.    path = /mnt/media/samba/wallpapers
  157.    browseable = yes
  158.    public = no
  159.    writable = yes
  160.    force create mode = 0640
  161.    force directory mode = 0750
  162.    create mask = 0640
  163.    directory mask = 0750
  164.    force user = root
  165.    force group = wheel
  166.    valid users = @smb_wallpapers_read, @smb_wallpapers_write
  167.    write list = @smb_wallpapers_write
  168.    read list = @smb_wallpapers_read, @smb_wallpapers_write
Теперь нужно сказать пароль самбе от главного пользователя лдапа:
  1. # smbpasswd -W
  2. Enter password: ***
  3. Retype enter password: ***
Добавляем самбу в автозагрузку и запускаем.
  1. # echo 'smbd_enable="YES"' >> /etc/rc.conf
  2. # echo 'nmbd_enable="YES"' >> /etc/rc.conf
  3. # service samba start
Проверим, запустилась ли samba:
  1. # sockstat | grep -E "smbd|nmbd"
  2. root     smbd       18247 10 tcp4   192.168.7.250:139     192.168.7.101:2386
  3. root     smbd       18247 21 tcp4   127.0.0.1:61042       127.0.0.1:389
  4. root     smbd       18247 25 tcp4   127.0.0.1:62217       127.0.0.1:389
  5. root     smbd       92555 21 tcp4   127.0.0.1:63357       127.0.0.1:389
  6. root     smbd       92553 21 tcp4   127.0.0.1:63357       127.0.0.1:389
  7. root     smbd       92553 22 tcp4   127.0.0.1:445         *:*
  8. root     smbd       92553 23 tcp4   127.0.0.1:139         *:*
  9. root     smbd       92553 24 tcp4   192.168.7.250:445     *:*
  10. root     smbd       92553 25 tcp4   192.168.7.250:139     *:*
  11. root     nmbd       92548 11 udp4   *:137                 *:*
  12. root     nmbd       92548 12 udp4   *:138                 *:*
  13. root     nmbd       92548 13 udp4   192.168.7.250:137     *:*
  14. root     nmbd       92548 14 udp4   192.168.7.250:138     *:*
Если на экране вы видите что-то подобное, то запуск самбы прошел успешно. Создаем группы в системе, которым будут сопоставляться группы Windows.
  1. # ldapaddgroup smb_pdc_admins
  2. # ldapaddgroup smb_pdc_users
  3. # ldapaddgroup smb_pdc_computers
  4. # ldapaddgroup smb_pdc_guests
Далее нужно сопоставить группы винды группам системы:
  1. # net groupmap add rid=512 unixgroup=smb_pdc_admins type=d ntgroup="Domain Admins"
  2. # net groupmap add rid=513 unixgroup=smb_pdc_users type=domain ntgroup="Domain Users"
  3. # net groupmap add rid=514 unixgroup=smb_pdc_guests type=domain ntgroup="Domain Guests"
  4. # net groupmap add rid=515 unixgroup=smb_pdc_computers type=domain ntgroup="Domain Computers"
Посмотрим, что получилось:
  1. # net groupmap list
  2. Domain Admins (S-1-5-21-2073026716-1291088168-25512215-512) -> smb_pdc_admins
  3. Domain Users (S-1-5-21-2073026716-1291088168-25512215-513) -> smb_pdc_users
  4. Domain Computers (S-1-5-21-2073026716-1291088168-25512215-515) -> smb_pdc_computers
  5. Domain Guests (S-1-5-21-2073026716-1291088168-25512215-514) -> smb_pdc_guests
Для разграничения прав к шарам я указал группы, которым разрешены либо чтение, либо запись. Их тоже нужно создать и сопоставить им виндовые группы:
  1. # ldapaddgroup smb_video_read
  2. # ldapaddgroup smb_video_write
  3. # ldapaddgroup smb_music_read
  4. # ldapaddgroup smb_music_write
  5. # ldapaddgroup smb_distrib_read
  6. # ldapaddgroup smb_distrib_write
  7. # ldapaddgroup smb_wallpapers_read
  8. # ldapaddgroup smb_wallpapers_write
  9.  
  10. # net groupmap add unixgroup=smb_video_read type=local ntgroup="Video Share Read"
  11. # net groupmap add unixgroup=smb_video_write type=local ntgroup="Video Share Write"
  12. # net groupmap add unixgroup=smb_music_read type=local ntgroup="Music Share Read"
  13. # net groupmap add unixgroup=smb_music_write type=local ntgroup="Music Share Write"
  14. # net groupmap add unixgroup=smb_distrib_read type=local ntgroup="Distrib Share Read"
  15. # net groupmap add unixgroup=smb_distrib_write type=local ntgroup="Distrib Share Write"
  16. # net groupmap add unixgroup=smb_wallpapers_read type=local ntgroup="Wallpapers Share Read"
  17. # net groupmap add unixgroup=smb_wallpapers_write type=local ntgroup="Wallpapers Share Write"
Создаем администратора домена:
  1. # ldapadduser nekit smb_pdc_admins
  2. # smbpasswd -a nekit
  3. New password: ***
  4. Retype password: ***
Еще нужно дать группе или пользователю права на включение машин в домен и другие:
  1. # net rpc rights grant "Domain Admins" SeMachineAccountPrivilege -U nekit
  2. # net rpc rights grant "Domain Admins" SeTakeOwnershipPrivilege -U nekit
  3. # net rpc rights grant "Domain Admins" SeBackupPrivilege -U nekit
  4. # net rpc rights grant "Domain Admins" SeRestorePrivilege -U nekit
  5. # net rpc rights grant "Domain Admins" SeRemoteShutdownPrivilege -U nekit
  6. # net rpc rights grant "Domain Admins" SePrintOperatorPrivilege -U nekit
  7. # net rpc rights grant "Domain Admins" SeAddUsersPrivilege -U nekit
  8. # net rpc rights grant "Domain Admins" SeDiskOperatorPrivilege -U nekit
В принципе настройка контроллера домена закончена и можно включать компы в него. Для удобства администрирования пользователями и компами в домене NT4 есть утилиты от мелкософта srvtools. Так же если вы будете назначать групповые политики через файл NTconfig.pol, то понадобится тулза poledit и шаблоны для определенной версии винды (Windows 2000, Windows XP). Все утилиты были взяты из дистра винды NT4, а шаблоны берутся из серверной винды. На этом все, пользуемся...
ВложениеРазмер
Иконка пакета srvtools383.63 КБ
Иконка пакета poledit66.02 КБ
Иконка пакета Шаблоны для poledit (Windows 2000)11.58 КБ
Иконка пакета Шаблоны для poledit (Windows 2003)8.58 КБ

Добавить комментарий

Filtered text

CAPTCHA
Этот вопрос предназначен для предотвращения автоматизированной обработки форм.
Fill in the blank.