Executando script de login no Unity para 16.04

3

Eu tenho um computador cliente Ubuntu 16.04 que está conectado ao LDAP (FreeIPA). Leva seus usuários do IPA LDAP. Assim, temos uma diretiva mkhomedir no arquivo /etc/pam.d/common-session que cria automaticamente o diretório home.

session required        pam_mkhomedir.so      skel=/etc/skel/      umask=0022

Eu escrevi um pequeno script de personalização para o Unity Desktop para todos os usuários que fazem login no Desktop. Agora, queremos executar esse script sempre que um usuário / novo usuário fizer login. Como queremos que todos os usuários vejam um Desktop padrão.

Minha configuração é a seguinte:

Script de login a ser executado:

$ cat /usr/bin/login.sh

#!/bin/bash
dconf reset -f /
xdg-settings set default-web-browser google-chrome.desktop
gsettings set org.gnome.desktop.session idle-delay 0
gsettings set org.gnome.desktop.screensaver lock-enabled false
gsettings set com.canonical.Unity.Launcher launcher-position Bottom
dconf write /org/compiz/profiles/unity/plugins/unityshell/icon-size 24

Configuração do LightDM que mudei:

$ cat /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf

[Seat:*]
greeter-session=unity-greeter
greeter-show-manual-login=true
greeter-setup-script=/usr/bin/numlockx on
session-setup-script=/usr/bin/login.sh

O LightDM sob essa configuração executa o script toda vez que um usuário que efetuou login antes efetua o login. Porém, quando um novo usuário sem o diretório home tenta efetuar login, existe um loop de login que direciona o novo usuário para receber novamente.

Após a auditoria, percebemos que o diretório pessoal criado automaticamente do usuário recém-logado é criado com a propriedade root: root

drwx------  6 root        root        4096 Jun  7 12:10 newuser/

Isso só acontece se o usuário nunca tiver feito login antes.

Eu tentei colocar o script de configuração de sessão em /etc/lightdm/lightdm.conf com as variações abaixo:

$ cat /etc/lightdm/lightdm.conf

[Seat:*]
user-session=ubuntu
greeter-session=unity-greeter
session-setup-script=/usr/bin/login.sh

$ cat /etc/lightdm/lightdm.conf

[SeatDefaults]
user-session=ubuntu
greeter-session=unity-greeter
session-setup-script=/usr/bin/login.sh

$ cat /etc/lightdm/lightdm.conf

[LightDM]
user-session=ubuntu
greeter-session=unity-greeter
session-setup-script=/usr/bin/login.sh

Também tentou colocar lightdm.conf em /usr/share/lightdm/lightdm.conf.d/

Nenhuma dessas abordagens funcionou. O mesmo comportamento!

Como resultado, quando tento executar esse script, novos usuários sem diretórios de usuário não podem fazer login no Unity. Mas se o usuário tiver efetuado login antes (diretório pessoal criado com propriedade correta), ele poderá continuar usando o Unity com a personalização.

Eu fiz pesquisas sobre o script de logon lightdm, pam e linux. Mas não consegui encontrar e responder a este problema. Alguém pode ajudar o que fazer para criar o diretório inicial de novos usuários com as permissões corretas?

    
por recap2000 07.06.2018 / 11:30

0 respostas