không thể truy cập / dev / null: Quyền bị từ chối, mặc dù crw-rw-rw- 1 root root 1, 3 tháng 9 21 12:05 / dev / null


11

Trên postgres người dùng:

$ ls -l /dev/null
ls: cannot access /dev/null: Permission denied

Suy nghĩ về root người dùng, quyền là chính xác:

# ls -l /dev/null
crw-rw-rw- 1 root root 1, 3 Sep 21 12:05 /dev/null

Tôi đã cố gắng tạo lại nó:

# rm /dev/null && mknod -m 0666 /dev/null c 1 3

Nhưng kết quả là như nhau. Tôi đang sử dụng VPS với debian 7 và kernel 2.6.32 trên x86_64

Câu trả lời:


18

Vấn đề xuất phát từ quyền cho / dev:

# ls -ld /dev
drwx------ 3 root root 4096 Sep 21 12:12 /dev

Vì vậy, người dùng không thể truy cập / dev.

# chmod a+x /dev
# chmod a+r /dev

Đã giải quyết vấn đề.


Vì vậy, tôi muốn biết tại sao nó có những quyền đó. Bạn có thể muốn cài đặt lại. Mọi thứ trong / dev đều được quản lý kernel và lẻ của nó có quyền sai.
cripto

không, mọi thứ trong / dev không phải là "kernel được quản lý".
tlund

@tlund vui lòng xem lại sách kernel yêu thích của bạn. "Thư mục / dev phản ánh tình trạng hiện tại của hạt nhân" doc.opensuse.org/products/draft/SLES/SLES-admin_sd_draft/...
cripto

@ user1048138: Tôi cũng muốn biết. Tôi bắt đầu từ một thiết lập debian 7 tự động từ nhà cung cấp VPS của tôi. Sau đó tôi cập nhật, nâng cấp, chỉ sử dụng apt-get. Cộng thêm một gói bằng "hand" với wget some_domain / some_package.deb ; dpkg -i some_package.deb; cài đặt apt-get -f. Tại một thời điểm, / dev / null đã được thay đổi thành một tệp tiêu chuẩn và / dev quyền đã thay đổi. Tôi không thể nói thêm.
lalebarde

1

Tôi đã có một vấn đề tương tự, và đã đến đây bằng cách tìm kiếm các triệu chứng, nhưng giải pháp không phù hợp với trường hợp của tôi. Vì vậy, tôi muốn thêm một lý do có thể khác ngay cả khi nó không phù hợp với OP.

Trong trường hợp đặc biệt của tôi, tôi đã sử dụng proot(một chroottrình bao bọc đẹp ). Nhưng các quyền đã được chính xác /dev/null/devchính nó.

Nó tình cờ là sự gắn kết của chrootthư mục, mà tôi đã làm thông qua thunarnhư một người dùng bình thường. Vì vậy, trong trường hợp này, mount không có quyền chính xác.

Bạn có một thời gian tồi tệ để tìm thấy điều này, bởi vì bạn không thấy các quyền này, khi chỉ nhìn vào các tệp.

Đường dẫn giải pháp chung sẽ là bắt đầu kiểm tra các điều kiện tại vị trí sự cố ( /dev/null) và bước ra cấp độ tiếp theo (s) ( /dev), sau đó gắn kết, hệ thống tệp, v.v., bất cứ điều gì tiếp theo.

Ở mỗi bước bạn có thể có một số điều kiện tiên quyết, mỗi điều kiện có cấp độ bên ngoài của riêng nó. Ví dụ: người dùng có thể ở trong một nhóm sai, dẫn đến tệp cấu hình nhóm, có thể có quyền sai, v.v.

Rõ ràng, bạn phải theo một loại cây nói chung.


0

Tôi không thể tự giải quyết vấn đề này, vì vậy đây là những gì tôi đã làm:

mycommand.sh | echo -n

Các echolệnh không chú ý đến đầu vào tiêu chuẩn, vì vậy nó sẽ bị loại bỏ. Và -nđó là để một dòng mới vô dụng không được in ra thiết bị xuất chuẩn.


1
Trong khi điều này có thể trả lời câu hỏi, nó sẽ là một câu trả lời tốt hơn nếu bạn có thể cung cấp một số lời giải thích tại sao nó làm như vậy.
DavidPostill

1
Có, nhưng làm thế nào để trả lời câu hỏi "không thể truy cập / dev / null: Quyền bị từ chối, mặc dù crw-rw-rw- 1 root 1, 3 tháng 9 21 12:05 / dev / null"?
DavidPostill

1
Nó không trả lời câu hỏi. Nhưng nó cung cấp một cách giải quyết. Đôi khi không có câu trả lời trực tiếp lý tưởng.
Mark Stewart

0
chmod a+rw /dev/null /dev/random /dev/urandom /dev/ptmx /dev/tty /dev/zero /dev/full /dev/fuse /dev/net/tun

đây là những gì giải quyết vấn đề của tôi trên VPS. Xin lưu ý rằng sau khi bạn khởi động lại máy chủ của mình - bạn đã chạy lại lệnh này

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.