Cách thay đổi chủ sở hữu của điểm gắn kết


44

Chúng tôi đã chuyển thư mục dữ liệu mysql sang đĩa khác, vì vậy bây giờ /var/lib/mysqlchỉ là một điểm gắn kết với phân vùng khác. Chúng tôi đặt chủ sở hữu của /var/lib/mysqlthư mục là mysql.mysql.

Nhưng mỗi khi chúng tôi gắn kết phân vùng, quyền sở hữu sẽ thay đổi root.root. Vì điều này, chúng tôi không thể tạo thêm cơ sở dữ liệu MySQL.

Mục fstab của chúng tôi:

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

Làm cách nào để thay đổi chủ sở hữu của điểm gắn kết thành người dùng khác với root?

Câu trả lời:


43

Bạn cần thay đổi các quyền của hệ thống tập tin được gắn kết, không phải của điểm gắn kết khi hệ thống tập tin không được gắn kết. Vậy mount /var/lib/mysqlthì chown mysql.mysql /var/lib/mysql. Điều này sẽ thay đổi các quyền của thư mục gốc của hệ thống tệp MySQL DB.

Ý tưởng cơ bản là hệ thống tập tin giữ DB cần phải được thay đổi, không phải là điểm gắn kết, trừ khi đường dẫn của nó có một số vấn đề, ví dụ libchỉ có thể được đọc bởi root.


32

cũng thế

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

nếu nhóm cũng cần phải thay đổi


2
Trong đó uid foolà tên của người dùng mà bạn muốn làm chủ sở hữu của điểm gắn kết. Và gid foolà tên của nhóm người dùng, thường giống như tên người dùng. Trong nghi ngờ, chỉ cần gõ ls -lvào thư mục nhà của bạn và kiểm tra tên đầu tiên và thứ hai tương ứng.
Zequez

10

Thêm uid và gid như thế này:

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

Bạn có thể sử dụng tên người dùng / nhóm thực tế (coi chừng khoảng trắng) hoặc giá trị uid, gid số. Tôi đã thêm rw và exec, điều này có thể giúp bạn ngăn chặn các rắc rối truy cập hơn (giả sử bạn đang ở trên một hệ thống phát triển, không phải máy chủ sản xuất).

PS: Để có nhiều quyền truy cập hơn (nếu muốn), hãy thêm ", dir_mode = 0777, file_mode = 0777"


3
Không, đó là relatime. lwn.net/Articles/244829
endolith

7
-1 vì uidvà các gidcờ chỉ hoạt động trên các hệ thống tệp không hỗ trợ lược đồ quyền của Linux - tức là, FAT và NTFS, trong số các hệ thống khác. Xem Askubfox.com/a/34068/329506
mgarciaisaia

2
vâng, tôi gặp phải vấn đề uid / gid - có giải pháp nào không?
tofutim

Điều này đã giúp tôi với ổ đĩa FAT32 của tôi. Cảm ơn bạn.
Naeem Khan

3

Hãy chắc chắn rằng bạn thay đổi quyền khi hệ thống tập tin không được gắn kết - thực hiện nó trong khi gắn kết chưa bao giờ làm việc cho tôi.

Ngoài ra, bạn có thể thêm tùy chọn 'người dùng' vào fstab của mình, ví dụ:

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

Điều này cũng có nghĩa là lệnh mount (nếu cần được gọi) sẽ không cần quyền root để gắn kết âm lượng đó. Không thay đổi fstab của bạn sẽ không ngăn bạn khắc phục vấn đề của bạn!


2

Tôi thường làm điều này trên thư mục chưa đếm

chmod 777 <directory>

Sau đó làm

chown -R mysql.mysql <directory>

Sau đó, trong / etc / fstab làm

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

Sau đó sử dụng

mount -a

để gắn kết tất cả các hệ thống tập tin được liệt kê trong / etc / fstab.

Điều này làm việc cho tôi. Hãy thử một lần


2

Nếu bạn chỉ muốn làm điều đó như một phần của mountdòng lệnh, bạn có thể sử dụng công -otắc và thực hiện:

mount device mount-point -o uid=foo

Điều đó sẽ thay đổi chủ sở hữu của điểm gắn kết thành người dùng foothay vì root.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.