Vím, že to zní jako duplicitní otázky, ale zkusil jsem následující a nepomohlo to:
Můj disk je připojen pod
/media/data
tak jsem vstoupil
sudo chown -R :users /media/data
Stále však nemohu zapisovat do tohoto oddílu jako uživatel.
Také jsem zkusil udělat záznam v /etc/fstab
UUID=... /media/data ext4 rw,suid,dev,exec,auto,user,async 0 0
ale poté už můj počítač nemohl spustit, protože nemohl najít disk.
Mám nainstalovaný server Ubuntu 14.04. Oddíl je uveden pod /dev/nvmeOn1p1
a nezobrazuje se v /etc/fstab
(viz obrázky níže).
(zařízení je „Intel DC P3700“ 800GB SSD)
Další poznámka:
Protože je oddíl prázdný, mohl bych ho také naformátovat a znovu vytvořit například pomocí gparted. Existuje v gparted nebo v jiných programech gui způsob, jak určit, že oddíl by měl být použitelný všemi uživateli?
Přijatá odpověď:
Možná děláte věci ve špatném pořadí. Když vytvoříte systém souborů pomocí mkfs.ext4
, vše uvnitř je ve vlastnictví uživatele root a root root s vaším výchozím nastavením systémových oprávnění.
Když tento souborový systém připojíte k adresáři, uvidíte oprávnění systému souborů a vlastníka, bez ohledu na původního vlastníka a oprávnění k tomuto adresáři.
Takže něco takového nebude fungovat:
sudo mkfs.ext4 /dev/some/data
sudo mkdir /media/data
sudo chown -R :users /media/data
sudo chmod -R g+rw /media/data
sudo mount /dev/some/data /media/data
Správná věc je vytvořit souborový systém, připojit jej a pak změnit oprávnění a vlastnictví. Nezáleží na tom, co děláte v /etc/fstab.
Správný způsob, jak to udělat, je tento:
sudo mkfs.ext4 /dev/some/data
sudo mkdir /media/data
sudo mount /dev/some/data /media/data
sudo chown -R :users /media/data
sudo chmod -R g+rw /media/data
To by mělo odpovědět na vaši otázku. Pokud potřebujete další podrobnosti, čtěte dále.
Abychom lépe porozuměli tomu, co se děje, pojďme trochu experimentovat se souborem obrázku
Vytvořte prázdný soubor, který chcete naformátovat a připojit pomocí fallocate -l 100MB /tmp/filesystem.img
. Poté jej naformátujte jako souborový systém ext4 pomocí sudo mkfs.ext4 /tmp/filesystem.img
(nejedná se o blokové zařízení, ale pokud odpovíte ano, můžete na něj stejně umístit funkční souborový systém ext4) a vytvořte adresář, který se použije jako bod připojení mkdir /tmp/experiment
.
Nyní zkuste změnit vlastníka a oprávnění k tomuto adresáři pomocí sudo chown -R :users /tmp/experiment
a sudo chmod -R g+rw /tmp/experiment
a zkontrolujte oprávnění pomocí ls -la /tmp/experiment
. Dostanete něco takového:
ls -la /tmp/experiment/
total 0
drwxrwx--x 2 gerlos users 40 feb 19 10:37 .
drwxrwxrwt 8 root root 180 feb 19 10:38 ..
To vám říká, že /tmp/experiment vlastní uživatel gerlos a uživatelé skupiny a členové skupiny v něm mohou číst, zapisovat a spouštět. Můžete do něj vkládat soubory, například pomocí touch /tmp/experiment/somefile
.
Nyní připojte souborový systém do tohoto adresáře pomocí sudo mount /mnt/filesystem.img /tmp/experiment
a znovu se podívejte na ls
výstup:
$ ls -la /tmp/experiment/
total 13
drwxr-xr-x 3 root root 1024 feb 19 10:41 .
drwxrwxrwt 8 root root 180 feb 19 10:41 ..
drwx------ 2 root root 12288 feb 19 10:41 lost+found
Jak vidíte, zdá se, že /tmp/experiment nyní vlastní root s různými oprávněními! Proč? Protože se nedíváme na samotný /tmp/experiment, ale na kořenový adresář souborového systému obsažený v /mnt/filesystem.img, připojený k /mnt/experiment.
Související:18.04:Proč Xorg i Xwayland?
Navíc váš běžný uživatel tam nebude moci vkládat soubory pomocí touch /tmp/experiment/anotherfile
.
Pokud se nyní pokusíte znovu spustit chown
a chmod
jako výše, nezměníte vlastníka a oprávnění v bodě připojení, ale v připojeném systému souborů a vaši uživatelé budou moci používat systém souborů. Chcete-li to potvrdit, naposledy se podívejte na výstup ls:
$ ls -la /tmp/experiment/
total 13
drwxrwxr-x 3 root users 1024 feb 19 10:41 .
drwxrwxrwt 8 root root 180 feb 19 10:45 ..
drwxrw---- 2 root users 12288 feb 19 10:41 lost+found
Jak můžete vidět, nyní mohou členové skupiny uživatelů vkládat soubory do systému souborů! Ve skutečnosti vašemu běžnému uživateli nic nebrání ve vytvoření nového souboru pomocí touch /tmp/experiment/myfile
:
$ ls -la /tmp/experiment/
total 13
drwxrwxr-x 3 root users 1024 feb 19 11:05 .
drwxrwxrwt 8 root root 180 feb 19 11:02 ..
drwxrw---- 2 root users 12288 feb 19 10:41 lost+found
-rw-rw---- 1 gerlos gerlos 0 feb 19 11:02 myfile
Mise splněna! 🙂