Tại sao tôi không thể tạo một thư mục trong / sys


8

Tôi đang học Ubuntu và thử nghiệm mọi thứ.

Tôi nhận thấy tôi không thể tạo một thư mục trong / sys

Đây có phải là một thư mục đặc biệt hoặc một cái gì đó? Có các loại thư mục khác?

(Tôi đã làm một sudo -ivà một chmod a+w /sys)

Câu trả lời:


17

Trước tiên, bạn nên thay đổi /sysquyền của trở lại ( sudo chmod a-r /syssẽ làm điều đó, vì các quyền mặc định là dr-xr-xr-x). /syskhông nên viết thế giới!

Nói chung, để tạo ra các file và thư mục trong các bộ phận của hệ thống bên ngoài thư mục nhà của bạn, phương tiện truyền thông bên ngoài, và các /tmpthư mục, bạn nên làm điều đó nhưroot với sudo, chứ không phải bằng cách thay đổi quyền sở hữu hoặc để cho mình truy cập. Làm cho các thư mục có thể ghi trên thế giới đặc biệt không được khuyến khích.

Để biết thông tin về cách được đề xuất, xem:

Bạn thậm chí có thể sử dụng gksudo nautilus(hoặc sudo -H nautilusnếu bạn không có gksudo) để mở cửa sổ trình duyệt tệp sở hữu gốc. Mặc dù vậy, hãy cẩn thận với điều này - nó có thể làm bất cứ điều gì, và hầu hết những điều đó là những điều bạn có thể không muốn thực hiện. Ngoài ra, lưu ý rằng nếu bạn khởi chạy một chương trình từ cửa sổ trình duyệt tệp sở hữu gốc, chương trình đó cũng sẽ chạy dưới quyền root.

Đó thường là những gì bạn nên làm, để chỉnh sửa hoặc tạo nội dung mới của các thư mục thuộc sở hữu root. Tuy nhiên...

/syskhác; thậm chí rootkhông thể trực tiếp tạo ra thứ đó

Giống như /proc/dev, trong Ubuntu và các hệ điều hành khác sử dụng nhân Linux, /syslà một hệ thống tệp ảo , những gì nó thể hiện không phải là các tệp thực trên đĩa của bạn (hoặc bất cứ nơi nào).

Nói tóm lại, /syslà cách kernel cung cấp thông tin về các thiết bị (vật lý và ảo).

Một số mục trong /syshệ thống tập tin cũng có thể ghi một cách có ý nghĩa và viết cho chúng là một cách để tự động thiết lập cấu hình cho các thiết bị. (Không nên nhầm lẫn với /devhệ thống tập tin này; ghi vào các mục trong /devlà cách gửi dữ liệu đến thiết bị. )

Nhưng điều này vẫn phải được thực hiện như root. Thay vì thay đổi quyền trên /syshoặc bất kỳ phần nào của nó, bạn chỉ nên thực hiện các hành động đó với quyền root sudonhư được giải thích ở trên.

Câu trả lời này trên Unix.SE giải thích cách thực hiện điều đó và thậm chí cách cho phép một số người không phải quản trị viên (những người không thể thực hiện hầu hết các hành động với quyền root) để thay đổi một số /syscài đặt.

Để biết thêm thông tin về cách thức /syshoạt động, xem:

Các mục trong /sysđược tạo bởi kernel và trình điều khiển; bạn không thể tạo chúng từ dòng lệnh. (Như đã nêu ở trên, bạn có thể chỉnh sửa một số dưới dạng root, nhưng nhìn chung bạn không thể tạo một số mới từ không gian người dùng ngoại trừ bằng cách tải các mô-đun hạt nhân hoặc cài đặt trình điều khiển hoặc sửa đổi kernel.)

Nếu bạn có hứng thú với việc viết trình điều khiển, hãy xem:


4

Có, /syslà một thư mục "đặc biệt". Từ Wikipedia :

Các bản phân phối Linux hiện đại bao gồm một thư mục / sys như một hệ thống tệp ảo (sysfs, có thể so sánh với / Proc, là một Procfs), lưu trữ và cho phép sửa đổi các thiết bị được kết nối với hệ thống, trong khi nhiều hệ điều hành giống UNIX và Unix truyền thống sử dụng / sys như một liên kết tượng trưng đến cây nguồn kernel.

"Lưu trữ và cho phép sửa đổi các thiết bị được kết nối với hệ thống" là khá quan trọng. Thực tế /sysđược sử dụng như một hệ thống tệp ảo, được gắn kết đặc biệt, là lý do tại sao bạn (và root) không thể ghi vào nó. Tôi sẽ tránh gây rối với /sys. Với Linux, rất cởi mở và minh bạch, mọi thứ thường không thể thay đổi vì một lý do chính đáng; hoặc cho mục đích bảo mật, hoặc, trong trường hợp này, bởi vì có một cách khác để đạt được mục tiêu của bạn mà ít rủi ro hơn nhiều.

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.