GNU/Linux >> Znalost Linux >  >> Linux

Jak mohu chown soubor na subuid bez sudo

Subuidy nemají fungovat tak, jak očekáváte, že budou fungovat. Jsou navrženy tak, aby mapovaly UID v uživatelském jmenném prostoru na různá UID mimo tento jmenný prostor, což se hodí (a vlastně bylo navrženo) pro kontejnery.

Proces však stále může mít nastaveno pouze jedno UID (uživatelský jmenný prostor) a uživatelé nemají povoleno měnit vlastnictví souborů ze zřejmých bezpečnostních důvodů. Nezáleží na tom, pokud jde o samotný proces, jestli je uživatel ve skutečnosti někdo jiný mimo jmenný prostor.

To je důvod, proč chown příkaz selže:nezáleží na tom, zda můžete mít nějaké jiné UID, pokud by jmenný prostor byl jiný , v tu chvíli toto UID nemáte, a proto nemůžete změnit vlastnictví žádných souborů (protože nejste root).

Proč můžete soubor odstranit:ve skutečnosti to nemá nic společného se subuids, místo toho vše závisí na tom, zda máte vlastnictví adresáře, ve kterém se soubor nachází. Vzhledem k tomu, že odstranění souboru změní adresář, a ne soubor samotný, pokud můžete zapsat adresář, můžete z něj odstranit jakékoli soubory (kromě "sticky" adresářů).


Existuje program lxc-usernsexec který je dodáván spolu s lxc . To vám umožní přemapovat ID uživatelů pomocí map /etc/subuid a /etc/subgid .

Konkrétně můžete provést následující.

  1. lxc-usernsexec -- touch /tmp/test
  2. ls -l /tmp/test ukáže, že soubor je vlastník:skupina stejný jako první pár subuid:subgid ve vaší mapě.
  3. rm /tmp/test by měl dát chybu, protože aktuálně nemáte správné uid/gid.
  4. lxc-usernsexec -- rm /tmp/test by měl soubor odstranit.

Snad to pomůže! Výše uvedené pravděpodobně vyžaduje různé nastavení pro nepřivilegované použití kontejneru LXC. Konkrétně si myslím, že /proc/sys/kernel/unprivileged_userns_clone by měla být 1.


Váš problém nemá nic společného se subuidem .

Podle https://superuser.com/questions/697608/chown-operation-not-permitted

Neprivilegovaní uživatelé (nikoli root) nemohou předávat soubory jiným uživatelským jménům. Pro použití chown musí mít uživatel oprávnění cílového uživatele. Jinými slovy, pouze root může dát soubor jinému uživateli.


Linux
  1. Jak mohu symbolicky propojit soubor v Linuxu?

  2. Jak může správce souborů připojit disk bez root?

  3. Jak mohu vydat příkaz do souboru, aniž bych při chybě dostal prázdný soubor?

  1. Linux chmod and chown – Jak změnit oprávnění a vlastnictví souborů v Linuxu

  2. Jak zjistit, zda má uživatel práva sudo

  3. Jak nastavit Sudo bez hesla pro konkrétního uživatele

  1. Jak mohu přidat běžného uživatele do souboru sudoers?

  2. Jak připojit k souboru jako sudo?

  3. Jak odstranit soubor bez použití rm?