Câu trả lời:
Trước tiên, bạn nên thay đổi /sys
quyền của trở lại ( sudo chmod a-r /sys
sẽ làm điều đó, vì các quyền mặc định là dr-xr-xr-x
). /sys
khô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 /tmp
thư 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 nautilus
nế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...
/sys
khác; thậm chí root
không thể trực tiếp tạo ra thứ đóGiống như /proc
và /dev
, trong Ubuntu và các hệ điều hành khác sử dụng nhân Linux, /sys
là 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, /sys
là 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 /sys
hệ 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 /dev
hệ thống tập tin này; ghi vào các mục trong /dev
là 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 /sys
hoặ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 sudo
như đượ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ố /sys
cài đặt.
Để biết thêm thông tin về cách thức /sys
hoạ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:
Có, /sys
là 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.