Quyền từ chối viết vào nhật ký mysql


8

Tôi chỉ đang thử nghiệm bản cài đặt Ubuntu mới (Vivid 15.04) trên Vagrant và gặp sự cố với mysql và đăng nhập vào một vị trí tùy chỉnh.

Trong /var/log/syslogtôi nhận được

/usr/bin/mysqld_safe: cannot create /var/log/mysqld.log: Permission denied

Nếu ls -l /vartôi nhận được

drwxrwxr-x 10 root syslog 4096 Jun  8 19:52 log

Nếu tôi tìm trong / var / log thì tập tin không tồn tại

Tôi nghĩ rằng tôi đã tạm thời vô hiệu hóa apparmor chỉ để cô lập nếu đó là vấn đề khác hoặc gây ra sự cố, nhưng không chắc liệu nó có tạo ra sự cố không (chỉnh sửa: nghĩ rằng nó vẫn có thể được bật, vì vậy không chắc đây là sự cố hay đơn giản quyền).

Nếu tôi cố gắng tự tạo tệp như mysql, tôi cũng bị từ chối (Tôi tạm thời cho phép nó bash truy cập để kiểm tra, tôi sẽ xóa sau).

touch /var/log/mysql.log
touch: cannot touch ‘/var/log/mysql.log’: Permission denied

Nếu tôi nhìn vào một máy chủ đang chạy (centos) khác, nó có các quyền như trên (và viết là người dùng mysql), vì vậy tôi tự hỏi làm thế nào mà mysql thường có quyền truy cập vào thư mục / var / log và làm cách nào tôi có thể truy cập nó truy cập thư mục đó thông qua chạy bình thường?

Đây là hồ sơ apparmor của tôi cho mysql


/usr/sbin/mysqld {
  #include 
  #include 
  #include 
  #include 
  #include 

  capability dac_override,
  capability sys_resource,
  capability setgid,
  capability setuid,

  network tcp,

  /etc/hosts.allow r,
  /etc/hosts.deny r,

  /etc/mysql/** r,
  /usr/lib/mysql/plugin/ r,
  /usr/lib/mysql/plugin/*.so* mr,
  /usr/sbin/mysqld mr,
  /usr/share/mysql/** r,
  /var/log/mysqld.log rw,
  /var/log/mysqld.err rw,
  /var/lib/mysql/ r,
  /var/lib/mysql/** rwk,
  /var/log/mysql/ r,
  /var/log/mysql/* rw,
  /var/run/mysqld/mysqld.pid rw,
  /var/run/mysqld/mysqld.sock w,
  /run/mysqld/mysqld.pid rw,
  /run/mysqld/mysqld.sock w,

  /sys/devices/system/cpu/ r,

/var/log/mysqld.log rw,

  # Site-specific additions and overrides. See local/README for details.
  #include 
}

Tôi cũng đã thêm tập tin trên vào apparmor.d / vô hiệu hóa directoru

Lưu ý: Tôi đã thêm dòng này /var/log/mysqld.log rw, ban đầu nó không có ở đó và có cùng một vấn đề (sau khi thực hiện tải lại apparmor).


apparmor module is loaded.
5 profiles are loaded.
5 profiles are in enforce mode.
   /sbin/dhclient
   /usr/lib/NetworkManager/nm-dhcp-client.action
   /usr/lib/NetworkManager/nm-dhcp-helper
   /usr/lib/connman/scripts/dhclient-script
   /usr/sbin/tcpdump
0 profiles are in complain mode.
1 processes have profiles defined.
1 processes are in enforce mode.
   /sbin/dhclient (565) 
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Jun  8 20:33:33 vagrant-ubuntu-vivid-64 systemd[1]: Starting MySQL Community Server...
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: 150608 20:33:33 mysqld_safe Logging to '/var/log/mysqld.log'.
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: touch: cannot touch ‘/var/log/mysqld.log’: Permission denied
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: chmod: cannot access ‘/var/log/mysqld.log’: No such file or directory
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: 150608 20:33:33 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
Jun  8 20:33:33 vagrant-ubuntu-vivid-64 mysqld_safe[11231]: /usr/bin/mysqld_safe: 126: /usr/bin/mysqld_safe: cannot create /var/log/mysqld.log: Permission denied

Câu trả lời:


12

Dường như với tôi, hầu hết mọi người tạo một thư mục có tên mysqlbên trong /var/log, thay đổi chủ sở hữu của thư mục này thành người dùng mysql.

sudo mkdir /var/log/mysql
sudo chown mysql:mysql /var/log/mysql   

Nên làm vậy. Hãy chắc chắn để cập nhật vị trí đăng nhập của máy chủ và khởi động lại nó. Sau khi bạn đã thử nghiệm kích hoạt lại hồ sơ apparmor của mysql.

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.