Jak zmienić właściciela punktu montowania

44

Przenieśliśmy katalog danych mysql na inny dysk, więc teraz /var/lib/mysqljest tylko punktem podłączenia do innej partycji. Ustawiamy właściciela /var/lib/mysqlkatalogu na mysql.mysql.

Ale za każdym razem, gdy montujemy partycję, własność zmienia się na root.root. Z tego powodu nie mogliśmy utworzyć dodatkowej bazy danych MySQL.

Nasz wpis fstab:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime        0       2

Jak zmienić właściciela punktu podłączenia na użytkownika innego niż root?

Arie K.
źródło

Odpowiedzi:

43

Musisz zmienić uprawnienia zamontowanego systemu plików, a nie punktu instalacji, gdy system plików nie jest zamontowany. Więc mount /var/lib/mysqlwięc chown mysql.mysql /var/lib/mysql. Spowoduje to zmianę uprawnień katalogu głównego systemu plików MySQL DB.

Podstawową ideą jest to, że system plików zawierający DB musi zostać zmieniony, a nie punkt montowania, chyba że jego ścieżka ma pewne problemy, np. libMoże być odczytany tylko przez root.

Cristian Ciupitu
źródło
32

również

mount device mount-point -o uid=foo -o gid=foo

jeśli grupa też musi zostać zmieniona


źródło
2
Gdzie UID footo nazwa użytkownika, którego chcesz być właścicielem punktu podłączenia. A gid footo nazwa grupy użytkowników, zasadniczo taka sama jak nazwa użytkownika. W razie wątpliwości po prostu wpisz ls -lswój katalog domowy i sprawdź odpowiednio imię i nazwisko.
Zequez,
10

Dodaj UID i GID w następujący sposób:

/dev/mapper/db-db  /var/lib/mysql ext3  relatime,rw,exec,uid=frank,gid=www-group        0       2

Możesz użyć rzeczywistych nazw użytkowników / grup (uwaga na spacje) lub numerycznych wartości UID, GID. Dodałem rw i exec, które mogą dodatkowo pomóc w zapobieganiu problemom z dostępem (zakładając, że korzystasz z systemu programistycznego, a nie serwera produkcyjnego).

PS: Aby uzyskać jeszcze większy dostęp (w razie potrzeby), dodaj „, tryb_dysku = 0777, tryb_pliku = 0777”

Frank Nocke
źródło
3
Nie, to jest relatime. lwn.net/Articles/244829
endolit
7
-1, ponieważ flagi uidi giddziałają tylko w systemach plików, które nie obsługują schematu uprawnień systemu Linux - tj. FAT i NTFS, między innymi. Zobacz askubuntu.com/a/34068/329506
mgarciaisaia
2
tak, wpadłem na problem z UID / GID - czy istnieje rozwiązanie?
tofutim
Pomogło mi to z dyskiem FAT32. Dziękuję Ci.
Naeem Khan
3

Upewnij się, że zmieniasz uprawnienia, gdy system plików nie jest zamontowany - robienie tego podczas montowania nigdy dla mnie nie działało.

Dodatkowo możesz dodać opcję „user” do swojego fstab, na przykład:

/dev/mapper/db-db   /var/lib/mysql    ext3    relatime,user        0       2

Powinno to również oznaczać, że komenda mount (jeśli trzeba ją wywołać) nie będzie potrzebować uprawnień administratora do zamontowania tego woluminu. Brak zmiany fstab nie powstrzyma Cię jednak przed rozwiązaniem problemu!

Tom Werner
źródło
2

Zwykle robię to w pustym niezmontowanym katalogu

chmod 777 <directory>

Więc zrób

chown -R mysql.mysql <directory>

Następnie w / etc / fstab wykonaj

<device>    <directory>  ext3   user,defaults 0 2

Następnie użyj

mount -a

do zamontowania wszystkich systemów plików wymienionych w / etc / fstab.

To działa dla mnie. Spróbuj

Saurabh Barjatiya
źródło
2

Jeśli chcesz to zrobić tylko jako część mountwiersza poleceń, możesz użyć -oprzełącznika i wykonać:

mount device mount-point -o uid=foo

To zmieni właściciela punktu montowania na użytkownika foozamiast na root.

Nasko
źródło