sql >> Databáze >  >> RDS >> Mysql

Jak mohu nechat MySQL zapisovat výstupní soubory jako jiný uživatel?

Výstupní soubor je vytvořen procesem mysqld, nikoli vaším klientským procesem. Proto výstupní soubor musí vlastnit uid a gid procesu mysqld.

Můžete se vyhnout nutnosti sudo pro přístup k souboru, pokud k němu přistupujete z procesu pod uid nebo gid, který má k souboru přístup. Jinými slovy, pokud mysqld vytváří soubory vlastněné uid a gid "mysql"/"mysql", přidejte svůj vlastní účet do skupiny "mysql". Pak byste měli mít přístup k souboru za předpokladu, že režim oprávnění souboru zahrnuje skupinový přístup.

Upravit:

Odstraňujete soubor v /tmp s režimem oprávnění k adresáři rwxrwxrwt. Sticky bit ('t') znamená, že můžete odstranit soubory pouze v případě, že vaše uid je stejné jako vlastník souboru, bez ohledu na oprávnění k souboru nebo adresáři.

Pokud výstupní soubor uložíte do jiného adresáře, který nemá nastavený lepivý bit, měli byste být schopni soubor normálně odstranit.

Přečtěte si tento úryvek z manuálové stránky pro sticky(8):

PŘÍPADNÉ ADRESÁŘE

Adresář, jehož `sticky bit' je nastaven, se stane adresářem pouze pro připojení, přesněji řečeno, adresářem, ve kterém je mazání souborů omezeno. Soubor v pevném adresáři může uživatel odstranit nebo přejmenovat pouze v případě, že má oprávnění k zápisu do adresáře a uživatel je vlastníkem souboru, vlastníkem adresáře nebo superuživatelem. Tato funkce je užitečně aplikována na adresáře, jako je /tmp, které musí být veřejně zapisovatelné, ale měly by uživatelům odepřít oprávnění vzájemně si svévolně mazat nebo přejmenovávat soubory.



  1. 3 způsoby, jak vypsat všechny uložené procedury v databázi SQL Server

  2. C# Mysql executenonqueryasync není asynchronní

  3. Získejte pokročilou hodnotu pole opakovače vlastních polí na základě jiné hodnoty opakovače

  4. Když je klauzule mysql WHERE prázdná, vrátí všechny řádky