Italiano

Strumenti per sviluppatori · Calcolatore Chmod

chmod su Windows, macOS, FAT e condivisioni di rete: dove si fermano i bit di modalità

· Sfondo

chmod unix controllo degli accessi

confini del filesystem mostrati come un diagramma di bit di autorizzazione Unix distinto
Illustrazione vettoriale originale ToolAcre

I bit di modalità sono un'idea Unix e altri filesystem li falsificano o li eliminano. Questo post spiega cosa succede alle autorizzazioni sui supporti NTFS, FAT, macOS e SMB o NFS e come reagisce git.

Git mostra ogni file come modificato: l'unica modifica è la modalità 100644 in 100755 dopo la clonazione su un file system diverso

Una modifica Git da 100644 a 100755 espone una differenza ordinaria: 644 manca di esecuzione, mentre 755 la include per tutte e tre le classi. La decodifica dei valori finali produce rw-r--r-- e rwxr-xr-x. Il calcolatore non può spiegare perché Git ha segnalato la modifica, quale piattaforma l'ha prodotta o se le impostazioni del file system e del repository hanno influenzato l'osservazione.

Utilizzare il convertitore come decodificatore neutro prima di modificare la politica. Immettere 644 e 755, confrontare ciascuna casella di esecuzione e confermare l'output simbolico. Il percorso facoltativo influisce solo sul testo del comando visualizzato; non viene letto nulla dal disco. Senza parser Git o accesso ai metadati, la pagina stabilisce il significato della modalità ma non l'intento del progetto o l'autorità di autorizzazione.

Un cambio di modalità in Git può essere decodificato qui ma non attribuito a una piattaforma

Il comportamento ACL di Windows richiede origini non presenti qui. La calcolatrice modella una classe del proprietario, una classe del gruppo, tutti gli altri e tre bit speciali. Non rappresenta voci di accesso, ereditarietà, identità o sintassi di Windows. La struttura menziona i metadati WSL, ma il materiale del repository fornito non ne documenta nessuno, quindi le affermazioni dettagliate sulla piattaforma supererebbero le prove disponibili.

La notazione simbolica rimane un'utile aritmetica anche quando l'archiviazione utilizza un altro modello. Il parser accetta nove caratteri di autorizzazione, facoltativamente con un indicatore di tipo riconosciuto, convalida ciascuna posizione e la converte in un numero intero. Non può dire se Windows o WSL persiste, sintetizza o ignora quel valore. Consultare la documentazione della piattaforma responsabile prima di applicare i comandi visualizzati.

Il comportamento dei metadati ACL e WSL di Windows richiede origini della piattaforma

Le maschere di montaggio della famiglia FAT non sono incluse in questa implementazione. Il pannello non ha campi umask, fmask, dmask, opzioni di montaggio o filesystem. Può dividere una modalità segnalata in proprietario, gruppo e altri bit, ma non può derivare quella modalità dalla configurazione o dimostrare come FAT o exFAT l'hanno prodotta. Affermazioni di comportamento più ampie necessitano di fonti di piattaforme esterne.

Seguire la direzione supportata dalle prove. Ottieni una modalità efficace da un'osservazione affidabile del sistema, quindi inseriscila e controlla i flag di lettura, scrittura ed esecuzione rappresentati. Il riepilogo a quattro cifre rivela anche i bit speciali forniti. Non invertire tale aritmetica in una diagnosi di montaggio: il numero intero non registra alcuna origine e la pagina non interroga alcuna archiviazione.

Le maschere di montaggio della famiglia FAT non sono incluse nell'implementazione

I metadati macOS aggiuntivi non vengono analizzati da questo percorso. L'input simbolico prevede nove posizioni di autorizzazione, facoltativamente precedute da un carattere di tipo file riconosciuto. Non accetta indicatori finali, non legge voci o flag ACL e non esegue query sui metadati del percorso. Una modalità rwx di base può essere decodificata separatamente, ma ogni segnale macOS aggiuntivo rimane al di fuori di queste fonti.

Dato un 755 pulito, la calcolatrice esegue il rendering di rwxr-xr-x e lo spiega per il target selezionato. Eseguire la directory significa inserire e raggiungere voci denominate; eseguire il file significa eseguire un programma. Questa distinzione supportata dall’implementazione sopravvive all’attribuzione della piattaforma. Qualsiasi regola di accesso, notazione o interazione aggiuntiva con macOS con bit di modalità richiede prove specifiche non disponibili in questo materiale del repository.

I metadati macOS aggiuntivi non vengono analizzati da questo percorso

La mappatura delle identità o la sintesi delle modalità di SMB e NFS si trova al di fuori dell'implementazione. Il convertitore non contatta alcun server, non legge alcuna configurazione di montaggio, non risolve alcun UID e non può identificare il proprietario o il gruppo. Le sue classi sono slot astratti derivati ​​da un numero intero. Una modalità segnalata da un montaggio di rete rimane decodificabile, ma il comportamento dettagliato del filesystem di rete non è supportato qui.

Questo limite impedisce un errore di categoria. La modalità 775 significa che il proprietario e il gruppo hanno rwx mentre l'altro ha r-x. Non rivela la proprietà remota, l'appartenenza al gruppo, la mappatura dell'identità o se un server ha sintetizzato la visualizzazione. Verifica qui i bit presentati, quindi raccogli prove di esportazione, client, server e identità dall'ambiente reale prima di decidere l'autorizzazione.

La sintesi dell'identità o della modalità SMB e NFS non è inclusa nell'implementazione

Quando Git segnala un cambio di modalità, decodifica i valori prima di rivedere la policy. Per 100644 e 100755, utilizza 644 e 755: rw-r--r-- diventa rwxr-xr-x. Il proprietario, il gruppo e gli altri vengono eseguiti ciascuno perché la loro cifra acquisisce peso 1. Ciò stabilisce la differenza semantica senza assegnare una causa a Git, una piattaforma o un filesystem.

Determinare l'intento dalle prove del progetto che queste fonti non contengono. La calcolatrice non può leggere core.fileMode, analizzare .gitattributes, ispezionare l'indice o decidere se lo stato dell'eseguibile è autorevole. Il suo comando basato sul percorso rimane ineseguito. Trasportare la differenza rwx verificata nella revisione del repository, quindi modificare la politica solo dopo aver identificato la fonte di verità prevista.

Esempio realizzato: decodificare la modalità Git report prima di modificare la policy del repository

I comandi di autorizzazione di Windows appartengono a un modello separato. Questo strumento emette forme chmod come valori ottali o u=rw,g=r,o=r. Non analizza la sintassi di Windows né mappa tre classi Unix su un Windows ACL. Qualsiasi traduzione apparentemente plausibile sarebbe un'invenzione, perché dodici bit tradizionali non possono preservare ogni identità e voce di accesso rappresentata da un altro sistema di autorizzazione.

L'autorizzazione per l'archiviazione degli oggetti è ugualmente separata. Il calcolatore accetta solo una modalità tradizionale e non contatta mai un servizio, legge la policy del bucket o gestisce le identità degli oggetti. Usalo quando un reale valore ottale o simbolico in stile Unix necessita di essere decodificato. Per l'archiviazione di oggetti e altri modelli, ispeziona i dati e la documentazione delle policy native anziché forzarli nella notazione chmod.

La sintassi di Windows e l'archiviazione degli oggetti rimangono modelli separati

Conferma quale livello possiede la verità dei permessi prima di utilizzare chmod. Una modalità presentata da Git, un mount o un'altra piattaforma può essere tradotta in bit proprietario, gruppo, altro e speciale. La convalida rileva cifre e posizioni simboliche non corrette, mentre s, S, t e T preservano lo stato speciale. La conversione spiega il valore, non la sua origine o autorità.

La revisione finale dovrebbe separare l'aritmetica dall'ambiente. Verificare la modalità, registrare l'esatta classe e bit differenti e identificare la destinazione come file o directory. Quindi ispeziona la piattaforma, il file system, le impostazioni del repository, le identità, gli ACL e le policy con origini native. Il ruolo ristretto della pagina è prezioso: interpretazione affidabile in modalità Unix senza pretendere di diagnosticare l'applicazione multipiattaforma.