Ter diretório direcional do usuário1 no hdd interno e user2 'home direcrory no disco rígido externo?

2

Alguém sabe se é possível ter a pasta home de um usuário, por exemplo; / home / user1 no disco rígido interno e quando faço o login com o usuário2 o / home / user2 no disco rígido externo?

    
por Mrrbt 05.05.2018 / 10:02

3 respostas

1

O diretório HOME do usuário é definido no logon do usuário, a partir do sexto campo separado por dois pontos na entrada /etc/passwd do usuário. Por exemplo, o arquivo MY /etc/passwd contém esses usuários:

walt2:x:1001:1000:Walt2 Sullivan,,,:/home/walt2:/bin/bash
walt:x:1000:1000:Walt Sullivan,,,:/home/walt:/bin/bash

O diretório walt2 do usuário HOME é /home/walt2 e o walt do diretório HOME é /home/walt . Eles podem estar em qualquer lugar que esteja montado no início do login do usuário.

Leia man 5 passwd e man vipw (sempre use vipw para editar o passwd - ele pode usar qualquer EDITOR , não apenas vi ).

    
por waltinator 05.05.2018 / 16:34
0

CADA usuário tem um arquivo ~.config/users-dirs.dirs em sua casa, onde você pode definir qual é a sua casa, editando o arquivo (anote os comentários no arquivo). Cada um pode ter sua própria configuração de "localidade":

rinzwind@schijfwereld:~$ more .config/user-dirs.dirs 
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="/discworld/Desktop"
XDG_DOWNLOAD_DIR="/discworld/Downloads"
XDG_TEMPLATES_DIR="/discworld/Templates"
XDG_PUBLICSHARE_DIR="/discworld/Public"
XDG_DOCUMENTS_DIR="/discworld/Documents"
XDG_MUSIC_DIR="/discworld/Music"
XDG_PICTURES_DIR="/discworld/Pictures"
XDG_VIDEOS_DIR="/discworld/Videos"

e

rinzwind@schijfwereld:~$ more .config/user-dirs.locale 
en_US

Este é o original que usa $ HOME (ou seja, / home / $ USER /):

XDG_DESKTOP_DIR="$HOME/Desktop"
XDG_DOCUMENTS_DIR="$HOME/Documents"
XDG_DOWNLOAD_DIR="$HOME/Downloads"
XDG_MUSIC_DIR="$HOME/Music"
XDG_PICTURES_DIR="$HOME/Pictures"
XDG_PUBLICSHARE_DIR="$HOME/Public"
XDG_TEMPLATES_DIR="$HOME/Templates"
XDG_VIDEOS_DIR="$HOME/Videos"

Existe também um método de linha de comando:

xdg-user-dirs-update --set DOWNLOAD "directory"

onde o diretório precisa encaixar os comentários no primeiro bloco de código nesta resposta.

Faça assim e você pode até usar o NTFS no local externo. Você ainda teria um diretório / home / $ USER /, mas todo o software estará usando sua localização externa. "home" ainda é / home / $ USER / já que todas as configurações ainda estão lá.

    
por Rinzwind 05.05.2018 / 10:11
0

Obrigado pelas respostas rápidas.

Depois de pensar por um tempo eu acho que a solução Rinzwind é a mais limpa até agora.

Eu encontrei uma maneira bagunçada de colocar o perfil user2 inteiro em um disco rígido externo e funciona bem, mas ele está mexendo com firejail em alguns programas e aposto que há mais alguns problemas que saem mais tarde. Sem o drive conectado, ele está inicializando normalmente, o login no user1 funciona bem, o login no user2 será pulado e retornará à tela de login, já que a unidade será conectada.

Se alguém estiver interessado em mexer com:

  1. eu fiz um diretório / mnt / exthome
  2. montou o disco rígido externo formatado em ext4 e
  3. adicionou o novo usuário2 ao diretório pessoal / mnt / exthome / user2.
  4. e modificou o / etc / fsab com a opção flag nofail
mkdir /mnt/exthome

mount /dev/sdb1 /mnt/exthome

adduser user --home /mnt/exthome/user2

obteve o UUID da unidade externa com blkid e adicionou a linha em / etc / fstab

UUID=************** /mnt/xhome/   ext4  defaults,nofail    0     2
    
por Mrrbt 05.05.2018 / 23:16