Các ứng dụng đồ họa thường lưu trữ các cài đặt và dữ liệu cụ thể của người dùng khác trong các tệp cấu hình được ghi trong thư mục nhà của người dùng . Các ứng dụng cơ chế chính sử dụng để xác định những gì chúng nên sử dụng làm thư mục nhà của người dùng là HOME
biến môi trường . (Bạn có thể tự kiểm tra nó với echo $HOME
).
Giả sử bạn đang chạy gedit
(một trình soạn thảo văn bản đồ họa) như root
. Nếu bạn chạy sudo gedit
, HOME
sẽ tiếp tục chỉ về phía bạn thư mục chính, mặc dù chương trình đang chạy nhưroot
. Do đó, gedit
sẽ ghi các tập tin cấu hình nhưroot
vào thư mục chính của bạn. Đây đôi khi sẽ cho kết quả trong các tập tin cấu hình được sở hữu bởiroot
và do đó không thể tiếp cận với bạn (khi sau đó bạn chạy chương trình như chính mình chứ không phải là root
). Điều này chủ yếu xảy ra khi ứng dụng phải tạo một tệp cấu hình mới. Các tệp mới được tạo, theo mặc định, được sở hữu bởi người dùng tạo chúng (người trong trường hợp này là root
, không phải bạn).
Đó là lý do chính tại sao bạn nên chạy các ứng dụng đồ họa với giao diện đồ họa sudo
thay vì thẳng sudo
. Trong Ubuntu và hầu hết các dẫn xuất của nó (bao gồm Xubfox và Lubfox), giao diện đồ họa tiêu chuẩn là gksu
/gksudo
. Trong Kubfox nó là kdesudo
. (Nó phụ thuộc vào môi trường máy tính để bàn đang được sử dụng.)
Nếu bạn muốn sử dụng sudo
trực tiếp để chạy một ứng dụng đồ họa như thế nào gedit
, bạn có thể chạy:
sudo -H gedit
Các -H
lá cờ làm sudo
bộ HOME
để trỏ đến root
's thư mục nhà (đó là /root
).
Điều đó vẫn không tự động xử lý quyền sở hữu .Xauthority
bằng cách sao chép nó vào thư mục tạm thời (đây là điều khác mà các mặt trận đồ họa sudo
chăm sóc cho bạn). Nhưng trong trường hợp không thường xuyên .Xauthority
không thể truy cập được, bạn sẽ gặp lỗi khi nói và sau đó bạn có thể khắc phục sự cố bằng cách xóa nó ( sudo rm ~/.Xauthority
), vì nó tự động được tạo lại. Do đó, bảo vệ .Xauthority
quyền sở hữu và quyền của bạn ít quan trọng hơn bảo vệ quyền sở hữu và quyền của các tệp cấu hình.
Ngược lại với một root
thuộc sở hữu .Xauthority
, khi các file cấu hình trở thành sở hữu như root
, nó không phải lúc nào cũng như rõ ràng vấn đề là gì (vì các chương trình đồ họa thường sẽ chạy, nhưng không làm việc rất tốt, và đầu ra bất kỳ lỗi nào hữu ích cho giao diện điều khiển). Và đôi khi, đó là một rắc rối lớn hơn để khắc phục, đặc biệt nếu bạn đang ở trong tình huống bạn muốn một hoặc nhiều tệp trong thư mục nhà của mình thuộc sở hữu của một người khác ngoài bạn (vì sau đó bạn không thể khắc phục đơn giản bằng cách đệ quy chown
tất cả các tệp của mình trở lại với chính mình).
Do đó, sudo
(ít nhất là không -H
) không nên được sử dụng để chạy ứng dụng đồ họa trừ khi bạn rất quen thuộc với hoạt động bên trong của ứng dụng và biết chắc chắn rằng nó không bao giờ cố gắng ghi bất kỳ tệp cấu hình nào.