Perfis de roaming no ambiente heterogêneo

5

Por "perfis de roaming" eu realmente quero dizer "diretórios home compartilhados".

Então, eu configurei um par de AD e compartilhei uma pasta em \ad-1\homes . Em seguida, defina o objeto de usuário AD para montar H:\ = \ad-1\homes\%username% . Isso funciona bem no Windows (como seria de esperar).

Eu também configurei o Redirecionamento de Pastas em um GPO na UO do Usuário para apontar Documentos em \ad-1\homes\%username%\Documents e assim por diante.

Tudo funciona como seria de esperar no Windows. Yay.

No entanto.

O Linux é uma história diferente. Usando o Winbind e o Samba, entrei no domínio. Não tem problema.

# wbinfo -u
PRODUCT\administrator
PRODUCT\guest
PRODUCT\krbtgt
PRODUCT\aa
PRODUCT\ab

Eu editei o AD uidNumber e o gidNumber para obter isso:

# wbinfo -i PRODUCT\aa
PRODUCT\aa:*:10001:10000:aa:/home/PRODUCT/aa:/bin/bash

Pensei ingenuamente que seria possível montar \ad-1\homes em /home/$DOMAIN e como os nomes de usuário são os mesmos, eu poderia usá-los como diretórios pessoais.

Exceto porque o compartilhamento cifs é montado na inicialização, como root, as permissões são dwrxr-x-r-x root root . na árvore de diretórios, para que os usuários não possam escrever para elas.

Eu tentei quase todas as combinações de opções do mount.cifs, incluindo o promissor " multiuser ", e achei os melhores resultados usando sec=krb5i .

O que eu quero é montar o diretório \ ad-1 \ homes, em cima de / home / $ DOMAIN, e fazer com que pareça

name  owner
aa/ DOMAIN\aa
ab/ DOMAIN\ab
administrator DOMAIN\administrator

e assim por diante.

Alguém sabe como isso é possível?

Windows 2008 R2, montado no SLES 11 SP2.

    
por Tom O'Connor 03.05.2013 / 14:54

2 respostas

5

Estamos fazendo isso com nossas caixas do Debian associadas ao domínio do Active Directory (winbind). Usamos pam_mkhomedir para criar uma pasta pessoal em / home / EXAMPLE / $ USER para usuários do AD no logon. Em seguida, pam_mount realiza a montagem do diretório inicial do AD. No Debian, precisávamos instalar libpam-mount , pam_mkhomedir foi instalado por padrão

Uma vez instalados, os seguintes arquivos são modificados:

/etc/security/pam_mount.conf.xml:

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE pam_mount SYSTEM "pam_mount.conf.xml.dtd">
<pam_mount>
<debug enable="0" />
<mntoptions allow="nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other,workgroup,nosetuids,noexec,nosuid" />
<mntoptions require="nosuid,nodev" />
<logout wait="0" hup="0" term="0" kill="0" />
<mkmountpoint enable="1" remove="true" />
<!--
  Replace "fs1.ad.example.com" with your Windows file server.
  We mount our AD user homes under /home/EXAMPLE, change this to suit your needs.
  Edit "workgroup=EXAMPLE" to use your domain/realm.
-->
<volume fstype="cifs" server="fs1.ad.example.com" path="home/%(USER)" mountpoint="/home/EXAMPLE/%(USER)" user="*" options="workgroup=EXAMPLE,uid=%(USER),dir_mode=0700,file_mode=0700,nosuid,nodev" />

/etc/pam.d/common-session:

# <snip>
# We use pam to create the AD user home drives
session required        pam_mkhomedir.so skel=/etc/skel/ umask=0077
session optional        pam_mount.so nullok try_first_pass

Por exemplo, quando faço logon (FCSD \ jscott) em uma caixa do Linux, minha pasta pessoal do AD \\ staff \ home \ jscott é montada como / home / FCSD / jscott.

    
por 03.05.2013 / 15:59
2

Eu nunca fiz o que você está procurando, mas acho que o experimental CONFIG_CIFS_ACL se você quiser fazer isso com um único ponto de montagem. Caso contrário, o que @jscott está fazendo deve funcionar, embora o diretório pessoal de cada usuário seja um novo ponto de montagem e as ACLs no diretório inicial não funcionem.

    
por 03.05.2013 / 16:00