Tại sao tôi nhận được lỗi Cấp phép từ chối lỗi mặc dù tôi có quyền của nhóm?


7

Tôi đang cố gắng chạy một trò chơi tên là "Dofus", trong Manjaro Linux. Tôi đã cài đặt nó với trình đóng gói, đặt nó trong /opt/ankamathư mục. Quyền sở hữu thư mục này (và cho mọi tệp bên trong nó) là người dùng root và nhóm trò chơi. Theo hướng dẫn của gói cài đặt, tôi đã thêm mình (người dùng familia) vào nhóm trò chơi (bằng cách không làm như vậy, "Tôi sẽ phải nhập mật khẩu mỗi lần tôi cố chạy trình cập nhật").

Tuy nhiên, khi chạy trò chơi, nó gặp sự cố sau khi nhập mật khẩu của tôi (không cần thiết). Kiểm tra nhật ký, tôi đã gặp một số lỗi như sau:

[29/08 20:44:07.114]{T001}INFO    c/net/NetworkAccessManager.cpp L87  : Starting request GET http://dl.ak.ankama.com/updates/uc1/projects/dofus2/updates/check.9554275D
[29/08 20:44:07.291]{T001}INFO    c/net/NetworkAccessManager.cpp L313 : Request GET http://dl.ak.ankama.com/updates/uc1/projects/dofus2/updates/check.9554275D Finished (status : 200)
[29/08 20:44:07.292]{T001}ERROR   n/src/update/UpdateProcess.cpp L852 : Can not cache script data

Vì vậy, tôi nghi ngờ Quyền từ chối lỗi. Một thông báo lỗi một lúc sau khi bắt đầunhập mô tả hình ảnh ở đây

Điều đó có nghĩa là "Đã xảy ra lỗi khi ghi vào đĩa - xác minh xem bạn có đủ quyền và đủ dung lượng đĩa không".

Sau đó, sau một số nghiên cứu, tôi đã tìm thấy "audd" có thể ghi nhật ký truy cập tệp trong một thư mục. Sau khi thiết lập nó và xem truy cập tệp nào không thành công, đây là kết quả .

Tất cả các lỗi đó thực sự đề cập đến một tệp duy nhất /opt/ankama/transition/transition, với một tòa nhà chọc trời ( open). Quyền của tệp này là rwxrwxr-x( 775). Vì vậy, tôi đã cấp quyền cho nó, nhưng nó lại báo lỗi exit -13, đó là EACESSlỗi (Quyền bị từ chối).

Tôi đã cố gắng khởi động lại máy tính, để đăng nhập và đăng xuất. Không ai trong số họ làm việc.

Nếu tôi đặt quyền truy cập thư mục thành familia:games, nó sẽ không gặp sự cố, tôi thậm chí không cần nhập mật khẩu của mình. Tuy nhiên, nó không có vẻ đúng theo cách này. Bất kỳ ý tưởng nào về lý do tại sao tôi nhận được lỗi Từ chối quyền mặc dù tôi có quyền đọc / ghi / thực thi?

Mark đã nói rằng tôi có thể cần quyền + x trong tất cả các thư mục của tiền tố đường dẫn. Con đường chính nó là /opt/ankama/transition/transition. Các quyền cho tiền tố đường dẫn là:

/ opt - drwxr-xr-x (755), quyền sở hữu gốc: root

/ opt / ankama - drwxr-xr-x (755), quyền sở hữu gốc: trò chơi

/ opt / ankama / quá trình chuyển đổi - drwxrwxr-x (775), quyền sở hữu gốc: trò chơi

Tuy nhiên, một điều mà tôi nhận thấy là tất cả các thư mục con /opt/ankama775, mặc dù chính thư mục đó là 755. Tôi không nghĩ rằng điều này có nghĩa là bất cứ điều gì và thay đổi quyền để 775không hoạt động.

Ngoài ra, Giel đề nghị tôi có thể chạy AppArmor trên hệ thống của mình. Tuy nhiên, chạy # cat /sys/module/apparmor/parameters/enabledcho tôi N.


1
EACCESS cũng có thể dẫn đến khi "quyền tìm kiếm bị từ chối đối với một trong các thư mục trong tiền tố đường dẫn của tên đường dẫn", vì vậy hãy kiểm tra xem tất cả các thư mục có bit cho phép 'x' của chúng không.
Đánh dấu Plotnick

1
Tôi cũng thấy các cuộc gọi hệ thống renameunlinktrong nhật ký kiểm toán đó. Chương trình có thể dựa vào việc có quyền truy cập ghi vào một vài trong số các thư mục đó. Khi thất bại, mật khẩu bạn nói nó yêu cầu có thể dành cho người có quyền truy cập ghi.
Đánh dấu Plotnick

Bạn có thể đang sử dụng AppArmor hoặc một hệ thống MAC (Kiểm soát truy cập bắt buộc) tương tự để thực thi các quyền có thể thực thi ngoài các quyền của hệ thống tệp.
Giel

@Mark và @Giel: Đã thêm thông tin về AppArmor và quyền tiền tố đường dẫn. Mark, bạn có thể cung cấp thêm thông tin về những cuộc gọi renameunlinkcuộc gọi?
Ramon Dantas

Hãy tìm syscall=87dòng. Đó là bỏ liên kết. Và kiểm toán cho thấy thư mục là người dùng 0, nhóm 0, chế độ 755. Nếu quá trình đang chạy như bạn, nó sẽ không thành công với việc hủy liên kết đó trừ khi thư mục là chế độ 777 hoặc chủ sở hữu của nó là bạn hoặc nhóm của nó là một nhóm bạn 'là thành viên của và chế độ 775.
Mark Plotnick

Câu trả lời:


7

Đầu tiên, khi bạn thêm chính mình vào một nhóm, thay đổi không được áp dụng ngay lập tức. Cách dễ nhất là đăng xuất và đăng nhập lại.

Sau đó, có quyền ghi của các tệp dữ liệu (như đã đề cập trong một số ý kiến). Tuy nhiên, các giải pháp không tốt cho bảo mật.

  • Thêm một nhóm cho trò chơi. Không thêm bất kỳ người dùng nào vào nhóm này.
  • Làm cho trò chơi thực thi bằng cách chmod -R ugo+rX game-directory
  • Cấp quyền ghi cho chỉ nhóm và không ai khác sử dụng chmod -R ug+w,o-w game-directory
  • Thêm trò chơi vào nhóm chgrp -R game-group game-directory,chmod -R g+s game-directory

hoặc chỉ addgroup game-group; chgrp -R game-group game-directory; chmod -R u=rwX,g=rwXs,o=rX game-directory

Nếu trò chơi cần thay đổi quyền thì bạn có thể làm tương tự nhưng đối với người dùng thay vì nhóm. I E.

adduser game-owner; addgroup game-group; chown -R game-owner:game-group game-directory; chmod -R u=rwXs,g=rwXs,o=rX game-directory


Cảm ơn. Có vẻ như trò chơi muốn thay đổi quyền truy cập tệp, nhưng không muốn nó được chạy dưới quyền root. Điều đó thật lạ. Tôi nghĩ rằng tôi sẽ cần thay đổi chủ sở hữu thành chủ sở hữu của mình và cập nhật nó, sau đó trả lại quyền sở hữu cho root.
Ramon Dantas

Nếu nó muốn thay đổi quyền truy cập tệp, thì bạn sẽ phải làm như tôi đã mô tả nhưng đối với người dùng thay vì nhóm. Tôi sẽ nối vào cuối câu trả lời.
ctrl-alt-delor

1
không bao giờ cho phép nó chạy dưới quyền root, nếu bạn không thể cấp cho nó quyền chính xác bằng các chế độ / nhóm / người dùng truyền thống, thì bạn có thể cần Danh sách điều khiển truy cập hoặc khả năng. xem unix.stackexchange.com/questions/101263/ Cách
ctrl-alt-delor

0

Các thư mục cần x bit set (đối với thư mục bit được xem là bit tìm kiếm) để mở. Vì vậy, tôi sử dụng cây để tôi chỉ có thể nhận được bộ thư mục và tránh cơn ác mộng có tất cả các tệp được đặt làm tệp thực thi (tùy chọn cho cây là -d List directories only.):

sudo tree -faid here_goes_your_directory xargs -L1 -I{} sudo chmod 755  "{}"

Cảnh báo!!! bạn nên cân nhắc điều này:

  • sử dụng chmod hoặc chown đệ quy trên /thư mục gốc hoặc thư mục hệ thống sẽ phá hủy hệ điều hành của bạn (thực sự mọi thứ đệ quy trên /thư mục hoặc thư mục hệ thống đều nguy hiểm)

  • Đây không phải là một thực tiễn bảo mật tốt để đặt hàng loạt quyền như thế

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.