Mac OS X - How to Symlink / home to / Users

12

Per quelli di noi che si dilettano nei pinguini e nelle mele, sembra molto utile poter usare / percorsi di casa o di habbit o per quei casi strani in cui il valore potrebbe essere stato sincronizzato da qualche parte lungo la linea in alcuni file che usi su entrambe le macchine.

    
posta anthonyryan1 17.03.2012 - 12:57
fonte

5 risposte

17

sudo ln -s /Users /home funzionerà con una configurazione aggiuntiva, ma non penso che sia una buona idea dato che dovresti accedere a casa tramite ~ nella shell o $HOME . Anche /home potrebbe essere uno standard Linux e spesso usato in Unix ma non sempre è così meglio fare affidamento su informazioni che sono garantite per funzionare, non qualcosa che funziona solo la maggior parte del tempo se tutti hanno mantenuto una convenzione.

Per fare in modo che% co_de funzioni, segui questi passaggi (dai commenti):

EDITOR=nano sudo -e /etc/auto_master
# add a "#" at the start of the line beginning with /home
# save changes
sudo automount -cv
sudo ln -s /Users /home
    
risposta data 17.03.2012 - 13:26
fonte
3

Mi dispiace che questa risposta non sia esattamente autorevole, dato che non l'ho mai fatto io stesso - sebbene abbia usato un simile automounter su altri sistemi Unix - ma qui mi viene spiegato su quale sia il /home usato per OS X.

Quindi, seguiamo il percorso:

Se digiti per la prima volta mount in Terminale per mostrare montaggi attivi, vedrai questa riga:

map auto_home on /home (autofs, automounted, nobrowse)

autofs mappe sono definite in /etc/auto_master , e /home è a sua volta definita specificamente in /etc/auto_home . Se dai un'occhiata a /etc/auto_home , vedrai questa riga:

+/usr/libexec/od_user_homes

Segui la traccia un ulteriore passaggio a od_user_homes man page , e troverai un programma il cui scopo è quello di prendere un nome utente, cercarlo in Open Directory e restituire un URL alla home directory di quell'utente. Se leggi su auto_master su la sua pagina man , scoprirai che utilizzando un programma eseguibile per una mappa i risultati vengono chiamati in quel programma per cercare un URL da montare, che a sua volta viene montato sul posto .

L'applicazione prevista sembra essere quella, se il tuo Mac è connesso a un servizio di directory, andando a /home/jdoe farà sì che l'automounter monti la directory home di jdoe lì.

Sulla base di ciò, sembra logico concludere che se non intendi connettere il tuo Mac a un servizio di directory, probabilmente stai rimuovendo il mount automatico di /home come dettagliato in questo commento . Non so in che modo i futuri aggiornamenti del sistema operativo si occuperanno di questo, però.

    
risposta data 28.03.2013 - 13:44
fonte
2

Non serve a /home . OS X, come varie altre versioni di Unix, ha una posizione unica per l'utente. In Linux è a /home/user , e in OS X è a /Users . Questo è il motivo per cui è buona norma usare la scorciatoia " ~ " o la variabile d'ambiente $HOME .

Mentre puoi creare un link simbolico alla directory base / home dell'utente /Users/[username] usando il seguente comando:

ln -s ~ /foo

Non funzionerà per creare un collegamento chiamato /home in quanto esiste già una directory (non usata) con quel nome nella radice del sistema.

    
risposta data 22.03.2013 - 14:39
fonte
1

Non vedo alcuna ragione per non rinominare la directory / home (nel caso in cui io abbia torto) e creare un link simbolico da / home a / Users (o, come nella mia macchina, / Volumes / Users dato che il mio disco di sistema è per sistema, dannazione!)

Lavoravo come amministratore di sistema, in un dipartimento universitario con 11 versioni di Unix. Avevamo tutti i tipi di collegamenti simbolici nella struttura della directory globale in modo che il file system potesse fare la cosa giusta e gli script si avvicinavano il più possibile al lavoro ovunque. Ti imbatti in alcuni trucchi, ma se le tue dita sono abituate a digitare / home / foo e un link simbolico rimanda il lavoro di riqualificazione per le tue dita, vai su haead.

Allo stesso modo alcuni linuxen avranno già le directory Home come / usr / home.

Un posto in cui lavoravo aveva le directory home di / Users / {group} / {username} come protezione parziale contro gli studenti che si aggiravano nei file dei professori se il prof era incurante delle sue autorizzazioni. La directory Users era stata eseguita ma nessun bit di lettura era stato impostato e le directory di gruppo erano leggibili solo per i membri del gruppo.

(Tutto questo nell'illustrazione ci sono molti modi per privare questo particolare felino della sua pelle.

Un possibile trucco: controlla che la macchina del tempo non finisca per fare due copie di tutto. Non so come TM tratti i collegamenti simbolici. In tal caso, aggiungi / home all'elenco di esclusioni di TM.

    
risposta data 23.03.2013 - 17:58
fonte
0

L'ho provato prima e ho funzionato per circa una settimana fino al riavvio ...

Non puoi semplicemente collegare simbolicamente /home a /Users . Infatti, non puoi nemmeno rimuovere /home .

Se riesci a rimuovere /home , riapparirà dopo il riavvio.

Se sposti /home in /home.old e symlink /home , rimuoverà il link simbolico /home .

Puoi farlo funzionare finché il tuo Mac non si arresta in modo anomalo o non si riavvia.

Al riavvio, tutto svanisce!

Al riavvio, Mac OS X sembra pensare che stai creando un nuovo utente, quindi sovrascriverà tutte le tue preferenze utente nella tua vecchia directory /Users/username .

Dato che hai copiato tutto in /home/username , ti aspetti di vedere la tua nuova home directory quando fai ls /home dopo il riavvio. Invece, non ottieni NIENTE !!! È come se non fosse mai esistito.

Nel mio caso, stavo impazzendo per circa 30 minuti, poi ho avviato la modalità utente singolo per vedere se si poteva fare qualcosa. Stavo pensando che potrei essere in grado di prendere un file di registro o provare ad avviare un'utilità di riparazione.

In modalità utente singolo, la mia home directory era lì. Apple nasconde intenzionalmente qualsiasi directory appena creata in /home dall'utente in modalità multiutente. Questa è una caratteristica di design intenzionalmente malvagio.

Apple è lame e scoraggia qualsiasi tipo di hacking del proprio sistema operativo. Che tipo di funzionalità di progettazione è quella? Apple nasconde il contenuto della directory /home appena creata. Non c'è assolutamente alcun motivo legittimo per Apple di rimuovere automaticamente la directory /home ... o qualsiasi directory creata dall'utente!

In questo caso, stanno montando una directory sulla tua directory / home ... in modo efficace nascondendola.

Se sei davvero determinato a usare /home invece di /Users , potresti riuscire a evitarlo scrivendo uno script per impostare tutto su ogni avvio.

Inoltre, dovrei ricordare che dovresti essere in grado di utilizzare un'altra directory che non è /home come sostituto di /Users perché è bannato solo /home .

Se usi bash, dovrai impostare alcune delle variabili di ambiente ... vale a dire: CD_HOME e HOME .

Desidero aggiungere che ... sebbene non sia possibile smontare o forzare smontare /home , puoi montare un disco sopra /home . Tutto questo montato sopra "auto_home".

Sono riuscito a montare il disco di ripristino su /home con successo ... forse è così che si può fare.

    
risposta data 12.03.2015 - 08:58
fonte

Leggi altre domande sui tag