Cria automaticamente a pasta no diretório inicial dos novos usuários

0

Eu preciso atribuir automaticamente a cada novo usuário que é criada uma determinada pasta Sales em seu diretório pessoal. (por exemplo, quando você adiciona o usuário tim , tim recebe automaticamente uma pasta chamada Sales em seu diretório pessoal)

Como posso fazer isso?

    
por user_01 30.11.2015 / 21:04

2 respostas

3

Os diretórios iniciais de todos os novos usuários são cópias de /etc/skel quando o usuário é criado por meio de qualquer método que cria automaticamente um diretório inicial.

Se tiver certeza de que precisa da pasta Sales no diretório inicial de cada nova conta de usuário, basta criar a pasta em /etc/skel .

Verifique se o proprietário e a permissão de tudo o que você cria ou modifica estão corretos.

Defina as permissões desejadas, elas serão copiadas para o diretório inicial do novo usuário como elas são. Geralmente você pega 644 (representação octal) ou rw-r--r-- (representação de string). Você pode modificar isso com um dos comandos abaixo. Certifique-se de que tudo seja legível pelo proprietário e que todos os diretórios sejam executáveis pelo proprietário (caso contrário, o proprietário não poderá listar ou acessar seu conteúdo).

  • sudo chmod 644 /etc/skel/FILE_OR_DIRECTORY para definir permissões para um único arquivo ou diretório usando a representação octal.
  • sudo chmod u=rw,g=r,o=r /etc/skel/FILE_OR_DIRECTORY para definir permissões para um único arquivo ou diretório usando uma sintaxe semelhante à representação de string.
  • sudo chmod -R 644 /etc/skel para definir recursivamente permissões para todos os arquivos e diretórios usando a representação octal.
  • sudo chmod -R u=rw,g=r,o=r /etc/skel para definir recursivamente permissões para todos os arquivos e diretórios usando uma sintaxe semelhante à representação de string.

O proprietário deve ser root . Você muda isso recursivamente em todos os arquivos e pastas em /etc/skel com o comando abaixo:

sudo chown -R root: /etc/skel
    
por Byte Commander 30.11.2015 / 21:20
0

Uma alternativa relativamente simples seria criar um iniciador em /etc/xdg/autostart , que criará uma pasta no diretório inicial do (qualquer) usuário no login, somente se a pasta ainda não existir.

  • Crie um arquivo com as seguintes linhas:

    [Desktop Entry]
    Name=Create Sales
    Exec=/bin/bash -c "mkdir ~/Sales"
    Type=Application
    
  • Salve como sales.desktop (a extensão é essencial)

  • Execute o comando:

    sudo cp /path/to/sales.desktop /etc/xdg/autostart
    

Isso criará uma pasta ~/Sales no diretório pessoal de qualquer usuário assim que ele entrar (somente se não existir).

Explicação

Para executar um comando na inicialização (log-in na verdade) localmente, f ou apenas um usuário , podemos colocar um arquivo .desktop em ~/.config/autostart

Se fizermos o mesmo, mas armazenar o arquivo .desktop em /etc/xdg/autostart , o comando também será executado localmente, mas da mesma forma para qualquer usuário no login.

Se fizermos o arquivo .desktop executar o comando:

/bin/bash -c "mkdir ~/Sales"

nos certificamos de que a pasta seja criada, até mesmo criada novamente no próximo login, caso o usuário possa removê-la manualmente. Ao mesmo tempo, se a pasta existir, o comando não será executado, portanto, as pastas existentes não serão sobrescritas.

    
por Jacob Vlijm 30.11.2015 / 21:49