Cách giải quyết lỗi Permission Denied trong Linux

Tác giả: VPS chính hãng 11 tháng 09, 2023

Quyền riêng tư là mối quan tâm số một của Linux. Vì quyền của người dùng và nhóm các tệp và thư mục Linux hoạt động độc lập nên việc được phép mở tệp không nhất thiết có nghĩa là bạn có thể chỉnh sửa tệp đó. Để hoạt động bình thường với hệ điều hành Linux, bạn cần biết rằng việc chạy các lệnh cần có quyền (đọc, viết hoặc thực thi). Các đặc quyền của tệp và thư mục được liên kết với chúng và hệ thống không cho phép bạn truy cập vào các tệp và thư mục nếu bạn không được ủy quyền. Đó là lúc lỗi “permission denied” sẽ xảy ra. Giải quyết lỗi Permission Denied (bị từ chối cấp phép) trong Linux là những gì chúng tôi sẽ chia sẻ trong bài viết này để bạn có kỹ năng về những việc cần làm khi gặp phải lỗi phổ biến này. 

Lỗi Permission Denied là gì và tại sao người dùng Linux hay gặp phải lỗi này?

Như bạn có thể biết, ”root” trong Linux có toàn quyền truy cập vào tất cả các thư mục và tệp để thực hiện bất kỳ thay đổi cần thiết nào. Bằng cách này, những người dùng khác không được phép thực hiện tất cả các hành động mà ”root” thực hiện.

Hệ thống Linux có ba loại quyền khác nhau: quyền đọc, quyền ghi và quyền thực thi (read, write và execute). Quyền của người dùng và nhóm được liên kết với từng tệp và thư mục trong hệ thống tệp Linux, xác định ai có quyền truy cập để đọc, ghi và thực thi tệp. Khi bạn gặp sự cố Permission Denied trên hệ thống Linux, điều đó thường biểu thị rằng tệp hoặc thư mục bạn đang cố gắng tương tác không thuộc về tài khoản người dùng của bạn.

=>> Lỗi “404 Not Found”: Sửa lỗi apt-get trên Ubuntu

Lỗi Permission Denied trong Linux cho thấy tương tác với tệp không được chấp thuận

Lỗi Permission Denied trong Linux cho thấy tương tác với tệp không được chấp thuận

Việc giải quyết lỗi Permission Denied trong Linux không quá phức tạp. Thực hiện theo các hướng dẫn cần thiết trong hướng dẫn này để kiểm tra các đặc quyền của tệp và thư mục.

Giải pháp nhanh chóng để khắc phục lỗi Permission Denied trong Linux

Điều kiện để giải quyết lỗi Permission Denied

Để hướng dẫn này hoạt động chính xác, hãy cung cấp các tùy chọn bên dưới:

  • Một server chạy VPS Linux.
  • Người dùng không phải root có đặc quyền sudo.

Là người dùng Linux, bạn có thể gặp phải lỗi “Permission Denied” khi làm việc trên các tệp và thư mục Linux của mình. Trong khi thực thi tập lệnh shell mà không có đủ quyền trên tài khoản người dùng, lỗi này sẽ xảy ra. Hãy cùng xem qua các giải pháp hữu ích để giải quyết lỗi Permission Denied trong Linux.

Giải pháp 1. Kiểm tra đặc quyền của một tệp/thư mục cụ thể

Để xem thông tin về chủ sở hữu, nhóm và quyền của tất cả các tệp và thư mục, bạn có thể kiểm tra các quyền hiện tại trên chúng. Để xem tập tin và thư mục nào có quyền, hãy chạy:

$ ls -l Shell Script Name.sh

Đầu ra hiển thị xem chủ sở hữu, nhóm và người dùng có đọc, ghi và thực thi quyền trên tệp hay không.

  • r chỉ định quyền đọc.
  • w chỉ định quyền ghi.
  • x chỉ định quyền thực thi.

Giải pháp 2. Thêm quyền cần thiết

Bây giờ bạn đã nhận thấy những quyền nào bạn không có trên tài khoản người dùng của mình. Đã đến lúc thêm các quyền thích hợp mà bạn cần. Bạn có thể sử dụng lệnh chmod để đạt được mục đích của phương pháp này.

Để thêm quyền đọc, hãy chạy:

$ chmod +r Shell Script Name.sh

Để thêm quyền ghi, hãy chạy:

$ chmod +w Shell Script Name.sh

Để thêm quyền thực thi, hãy chạy:

$ chmod +x Shell Script Name.sh

Ngoài ra, bạn có thể thêm tất cả các quyền cùng một lúc nếu bạn không có một trong số chúng:

$ chmod +rwx Shell Script Name.sh

Giải pháp 3. Giành quyền sở hữu tệp trong Linux

Nếu được yêu cầu, bạn có thể có được nhiều quyền hơn những người dùng khác. Tuy nhiên, bạn sẽ có thể chỉnh sửa quyền khi bạn cần. Ví dụ: bằng cách sử dụng lệnh chown, bạn có thể thay đổi chủ sở hữu của tệp thành người dùng vpschinhhang:

$ chown vpschinhhang Shell Script Name.sh
Chỉnh sửa quyền của tệp Linux với lệnh chown

Chỉnh sửa quyền của tệp Linux với lệnh chown

Giải pháp 4. Đọc, chỉnh sửa hoặc thực thi tệp

Để đọc, chỉnh sửa hoặc thực thi tệp hệ thống, bạn có thể thay đổi quyền đối với tệp hoặc sử dụng tài khoản root trong Linux Ubuntu. Quyền của tệp hệ thống hoặc tệp cấu hình ứng dụng có thể được thay đổi, mặc dù làm như vậy có thể gây ra hậu quả bất lợi. Vì vậy, để chỉnh sửa một tập tin, hãy chạy:

$ sudo nano /path/to/config

Ngoài ra, bạn có thể sử dụng lệnh Linux sau để mở, chỉnh sửa hoặc thực thi tệp mà bạn yêu cầu quyền khi đăng nhập bằng tài khoản root:

$ su -
# nano /path/to/config

Giải pháp 5. Thay đổi quyền trên các thư mục trong Linux

Bạn có thể sử dụng lệnh bên dưới để thay đổi quyền trên các thư mục. Để làm điều này, hãy chạy:

$ chmod +w /path/to/dir

Ngoài ra, bạn có thể sử dụng đối số -R cho lệnh của mình để thay đổi các quyền trên tất cả các tệp:

$ chmod -R +w /path/to/dir

Giải pháp 6. Sử dụng chế độ Absolute

Các quyền rwx được gọi là chế độ symbolic. Bạn có thể sử dụng chế độ absolute để thể hiện quyền bằng số. Vì vậy, bạn có thể cấp tất cả quyền đọc, ghi và thực thi cho chủ sở hữu tệp, và quyền đọc cho tất cả người dùng khác bằng cách chạy lệnh như bên dưới:

$ chmod 744 file-name
  • 4 chỉ định quyền đọc.
  • 2 chỉ định quyền ghi.
  • 1 chỉ định các quyền thực thi.
  • 0 có nghĩa là không có quyền nào được cấp.

Hoặc để cấp toàn quyền cho tất cả người dùng, hãy nhập:

$ chmod 777 file-name

Bây giờ bạn đã biết cách giải quyết lỗi Permission Denied. Như bạn đã thấy nguyên nhân gây ra lỗi là do thiếu các quyền cần thiết. Do đó bạn đã học cách thay đổi quyền đối với tệp, sở hữu hoặc sử dụng đặc quyền của quản trị viên bằng lệnh sudo với các lệnh liên quan.

Người dùng thông thường sẽ gặp phải lỗi Permission Denied vì họ không có đủ đặc quyền để thực thi các lệnh khác nhau. Chỉ người dùng root (hoặc người dùng có quyền truy cập sudo) mới được phép thay đổi quyền đối với tệp hoặc thư mục bạn muốn truy cập. Bất kể cấu hình như thế nào, tài khoản người dùng root luôn có toàn quyền đối với tất cả các tệp. Sử dụng các giải pháp trong hướng dẫn này sẽ giúp bạn khắc phục lỗi từ chối cấp phép trong Linux. Hãy liên hệ với chúng tôi nếu bạn gặp bất kỳ vấn đề kỹ thuật nào. Đội ngũ hỗ trợ kỹ thuật 24/7 luôn cố gắng hết sức để giải quyết vấn đề của bạn. Chúc các bạn thành công!