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?

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.


32

również

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

jeśli grupa też musi zostać zmieniona


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”


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!


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


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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.