Shell++ task relies on `/tmp` for temporary storage of script to execute.
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- typescript
Direzione di ricerca
Non è indicato alcun file sorgente né alcun test. Individua il codice del task Shell++ che scrive lo script in /tmp, quindi esamina come vengono gestiti Agent.TempDirectory e la creazione dei file temporanei. Il lavoro è completato quando viene utilizzato un file univoco associato all’agente, con permessi restrittivi, e viene rimosso dopo l’esecuzione; i test devono coprire la creazione e la pulizia.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
There is a small security risk here, where people can overwrite the file since it's in a shared, well known, location. In the Azure-DevOps-Extension-Tasks we switched to using the tmp package to generate a unique path name and used the Agent's temp directory instead of /tmp as a better, more secure location. As part of creating the temporary file, we also stripped its permissions.
function writeBuildTempFile(taskName: string, data: any): string {
const tempDir = tl.getVariable("Agent.TempDirectory");
const tempFile = tmp.tmpNameSync({ prefix: taskName, postfix: ".tmp", tmpdir: tempDir });
tl.debug(`Generating Build temp file: ${tempFile}`);
tl.writeFile(tempFile, data, { mode: 0o600, encoding: "utf8", flag: "wx+" });
return tempFile;
}
And made sure to delete the file after execution:
async function deleteBuildTempFile(tempFile: string) {
if (tempFile && tl.exist(tempFile)) {
tl.debug(`Deleting temp file: ${tempFile}`);
await fs.unlink(tempFile);
}
}
- Lingua principale
- PowerShell
- Stelle
- 6
- Fork
- 4
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di microsoft/Extension-UtilitiesPack
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 46/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Tutte le issue di microsoft/Extension-UtilitiesPack
Issue simili
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
CI: startup_failure because callers grant fewer permissions than ledger-app-workflows@v1 declaresForse già presa @maykonmichel l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
LedgerHQ/app-boilerplate-rust#227 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
linuxmint/mintupdate#1107 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
jfrog/JFrog-Cloud-Installers#535 ·