Những điều xấu cụ thể xảy ra khi gedit được sử dụng với sudo?


10

Tôi đọc câu trả lời này giải thích rằng "đôi khi" root có thể sở hữu một cái gì đó trong /home/$USERthư mục.

Bất cứ ai có thể đưa ra một ví dụ làm thế nào để chứng minh nó. Chỉ cần đưa ra một trường hợp thử nghiệm khi một cái gì đó thực sự xấu xảy ra, khi tôi chạy

sudo gedit /etc/rc.local

chỉnh sửa tập tin và lưu lại.

Tôi đã nhận được rất nhiều ý kiến ​​trái chiều khi cố gắng giúp đỡ OP và những bình luận tràn ngập khi nói rằng việc chạy gedit với sudo là một tội ác.

Bất cứ ai có thể đưa ra một ví dụ thực tế?

Tôi giải thích rõ ràng tại sao câu hỏi này không phải là một bản sao. Không có câu trả lời cụ thể cho gedit cho câu hỏi được liên kết.

Và điều quan trọng là phải giải thích tại sao sử dụng rộng rãi sudo geditlà xấu, hoặc không thực sự, v.v.


2
Luôn luôn sử dụng nó với sudo, không bao giờ có vấn đề. Câu hỏi hay.
Dario Salvati

1
@Wilf, nano thích viết ~ / .nano_history mà nếu bạn chạy nó với sudo sẽ khiến tập tin được sở hữu bởi root, vì vậy khi bạn chạy nano mà không có sudo, nó sẽ phàn nàn rằng nó không thể truy cập tệp. Một sudo chownsửa chữa đơn giản nó.
psusi

1
Theo như RC.local, đó là một kịch bản cấp độ chạy, nó nên được sở hữu bởi root do đó sudo không có tác dụng gì với nó. Hãy thử nó với ~ / .bashrc. Tôi không nghĩ shell sẽ chấp nhận tệp đó nếu nó thuộc sở hữu của root và nên hồi quy về cài đặt mặc định. Nhưng đó chỉ là một gợi ý. Tôi sẽ trở lại vào ngày mai, xem câu hỏi này thế nào
Sergiy Kolodyazhnyy

1
Đối với hầu hết các biên tập viên, đây không phải là phần mở đầu, nhấn TIẾT KIỆM. Chỉnh sửa mOst cũng lưu cài đặt ở đâu đó, vì vậy nếu bạn / nó sửa đổi cài đặt, nó sẽ cập nhật chúng.
Wilf

2
Đối với những gì nó có giá trị, tôi chỉ cần chỉnh sửa tại chỗ để sử dụng -Hkhi tôi nhìn thấy nó.
muru

Câu trả lời:


11

Theo như sudo gedit, không có gì khủng khiếp, chỉ là thực hành kém, đặc biệt là vào cuối. Làm thế nào khó khăn hơn để đề nghị sudo -H gedit?

-H,--set-home Yêu cầu chính sách bảo mật đặt biến môi trường HOME thành thư mục chính được chỉ định bởi mục nhập cơ sở dữ liệu mật khẩu của người dùng đích. Tùy thuộc vào chính sách, đây có thể là hành vi mặc định.

Có gì không xảy ra?

Bạn nhận được một vài tập tin sở hữu root trong thư mục nhà của bạn. Một ( recently-used.xbel) có thể sẽ trở lại quyền sở hữu của người dùng. Điều này có thể xảy ra khi một tập tin bị xóa và tạo lại. Để xem những gì sudo geditđã thay đổi, hãy chạy find ~ -user root -group rootvà xem những gì được trả lại. Theo mặc định, điều này là không có gì.

Với lệnh đó, bạn có thể thấy một vài tệp thuộc sở hữu của root. Một cái sẽ là một cái mới .file, .gvfsvà sớm hay muộn là một sở hữu gốc ~/.cache/dconfvà đã nói ở trên recently-used.xbel.

Vì vậy, không có "bầu trời thất bại", nhưng vẫn còn. Bây giờ đã có báo cáo rằng việc tiếp tục sử dụng gây ra các vấn đề khác nhưng sẽ không yêu cầu những gì tôi không thấy ở đây.

Cũng lưu ý rằng kể từ ngày 13.10 sudo gedit, người dùng sẽ sử dụng cấu hình gedit của người dùng thay vì cấu hình gedit của root. Một lần nữa chỉ là thực hành xấu vậy tại sao tiếp tục làm như vậy hoặc đề nghị người khác làm như vậy?


1
Đôi khi bây giờ tôi cũng tận dụng cơ hội để chỉ cho người dùng cách sử dụng nano vì nó dễ dàng và hầu hết thời gian có thể thay thế gedit. Có một số trường hợp mặc dù gedit vẫn tốt hơn nano ngay cả đối với những người biết cách sử dụng. Ngoài ra sudo gedit có thể dẫn đến sudo nautilus có thể tệ hơn .. (Ở đây tôi có một gedit kích hoạt pkexec nhưng điều đó nằm ngoài phạm vi của cuộc thảo luận này
doug

@wjandrea, âm thanh tốt, được chỉnh sửa
doug

12

Có lẽ đó là một ảo mộng, nhưng có một số người nói điều tương tự:

  • Tại sao tôi nên sử dụng gksudo cho ứng dụng Gtk thay vì sudo?

    Tuy nhiên, có những lúc khác, khi các tác dụng phụ có thể nhẹ như các tiện ích mở rộng của Firefox không bị dính hoặc cực đoan như không thể đăng nhập được nữa vì các quyền trên .ICE Authority của bạn đã thay đổi.

  • Tại sao người dùng không bao giờ nên sử dụng sudo bình thường để bắt đầu các ứng dụng đồ họa?

    Giả sử bạn đang chạy gedit (trình soạn thảo văn bản đồ họa) với quyền root. Nếu bạn chạy sudo gedit, HOME sẽ tiếp tục trỏ đến thư mục chính của bạn, mặc dù chương trình đang chạy bằng root. Do đó, gedit sẽ ghi các tệp cấu hình như root vào thư mục chính của bạn. Điều này đôi khi sẽ dẫn đến các tệp cấu hình được sở hữu bởi root và do đó bạn không thể truy cập được (khi bạn chạy chương trình như chính mình và không phải là root).

  • Làm cách nào để chạy chương trình GUI với tư cách người dùng khác (Debian)?

    Trước hết, không sử dụng sudo hoặc su để thay đổi người dùng để chạy quy trình đồ họa hoặc bạn có thể gặp sự cố (~ / .ICE Authority thay đổi chủ sở hữu là một vấn đề đáng chú ý). Thay vào đó, hãy tạo một lối tắt sử dụng lệnh sau:

  • Chạy Sudo đồ họa

    Chà, thành thật mà nói, hầu hết thời gian là không. Đối với nhiều ứng dụng, bạn có thể chạy chúng theo cách không phù hợp bằng cách sử dụng sudo cho các ứng dụng đồ họa và không thấy tác dụng phụ bất lợi nào.

    ...

    Những lỗi này xảy ra vì đôi khi khi sudokhởi chạy một ứng dụng, nó khởi chạy với quyền root nhưng sử dụng tệp cấu hình của người dùng.

    Kho lưu trữ thư này cũng có thể được bạn quan tâm.

Vì vậy, hãy kiểm tra nó.

2 hộp ảo hoàn toàn mới. Ubuntu 14.04. Không bao giờ chạy firefox trên chúng. Điều gì sẽ xảy ra khi tôi chạy lệnh sudo firefox?

tim@Hairy14CVB:~$ sudo firefox    
(process:4857): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed

...

shutdownObserver@XPIProvider.jsm:2192:13

Điều này giống nhau (hoặc ít nhất là rất giống nhau) cho cả hai hộp ảo. Trong khi firefox đang chạy, tôi đã cài đặt một tiện ích mở rộng youtube - một tính năng nổi bật. Sau đó, tôi đóng firefox và kiểm tra đầu ra.

tim@Hairy14CVB:~$ ls -la .ICEauthority 
-rw------- 1 tim tim 1336 Jun  4 21:31 .ICEauthority

Vâng, .ICEauthoritytốt thôi! Tuy nhiên...

tim@Hairy14CVB:~$ ls -la | grep root
drwxr-xr-x  3 root root 4096 Jun  1 20:49 ..
drwx------  3 root root 4096 Jun  5 22:41 .dbus
drwx------  4 root root 4096 Jun  5 22:41 .mozilla

3 thứ trong thư mục nhà của tôi ( /home/tim/) được sở hữu bởi root ( .., .dbus.mozilla). Điều này giống nhau (hoặc ít nhất là rất giống nhau) cho cả hai hộp ảo.

Vì vậy, vấn đề này. Tôi không chắc chắn, vì vậy tôi đã chạy firefox, như thế này:

tim@Hairy14CVB:~$ firefox

(process:4959): GLib-CRITICAL **: g_slice_set_config: assertion 'sys_page_size == 0' failed
Error: Access was denied while trying to open files in your profile directory.

Và lỗi xấu xí này:

nhập mô tả hình ảnh ở đây

Để biết đầu ra thiết bị đầu cuối đầy đủ (bao gồm cả lảm nhảm firefox), hãy xem hai mục đích này, tại đâyđây .

Tôi vẫn có thể chạy firefox bằng root. Nhưng bây giờ nhiều tập tin đã được thay đổi:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  4 root root  4096 Jun  3 19:46 ..
drwx------  3 root root  4096 Jun  5 22:55 .adobe
drwx------  3 root root  4096 Jun  5 22:40 .dbus
drwx------  3 root root  4096 Jun  5 22:55 .macromedia
drwx------  4 root root  4096 Jun  5 22:40 .mozilla

Đây có phải là vì tôi đã tải lên một hình ảnh lên imgur.com? Không chắc.

Làm thế nào tôi sửa cái này? chown. Tôi không hiểu điều đó, nhưng internet đã nói là làm điều đó và đó là một Hộp ảo rất yolo.

sudo chown -R tim:tim /home/tim/

Và nó đã sửa nó. Bây giờ đầu ra chỉ là ..tập tin:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  4 root root  4096 Jun  3 19:46 ..

Và điều đó cũng tương tự trên máy tính thực tế của tôi. Ồ, và trên hộp ảo Kubfox của tôi:

tim@Hairy14VB:~$ ls -la | grep root
drwxr-xr-x  3 root root  4096 May 16 14:10 ..

Mà tôi chưa bao giờ chạy lệnh sudo. Vì vậy, tất cả là tốt. Chỉ không chạy sudotrên một ứng dụng GUI.

Thử nghiệm cuối cùng: chạy nó với -Hvà các -icờ:

sudo -H firefox

sudo -i firefox

Và tin tốt! Tuy nhiên, "điều" gốc duy nhất là ... Và tôi có thể chạy firefoxmà không cần root.


OP muốn tôi nói về Gedit.

Tôi đã chạy

sudo gedit

Sau đó cài đặt một số plugin ngẫu nhiên. Đây là đầu ra:

tim@Hairy14VB:~$ ls -la | grep root
ls: cannot access .gvfs: Permission denied
drwxr-xr-x  4 root root   4096 Jun  3 19:46 ..

Lưu ý rằng tôi thậm chí không thể xem quyền sở hữu .gvfsvì vậy tôi đã làm điều này:

tim@Hairy14VB:~$ sudo ls -la | grep root
drwxr-xr-x  4 root root   4096 Jun  3 19:46 ..
dr-x------  2 root root      0 Jun  6 10:05 .gvfs

Vì vậy, chạy sudo geditkhông thay đổi một tập tin trong thư mục nhà của tôi để root.

Tôi vẫn có thể mở gedit, nhưng lần này tôi nhận được một số rác:

(gedit:7422): Gtk-WARNING **: Attempting to read the recently used resources file at `/home/tim/.local/share/recently-used.xbel', but the parser failed: Failed to open file '/home/tim/.local/share/recently-used.xbel': Permission denied.

Và điều đó cho thấy có một tệp khác ( ~.local/share/recently-used.xbel) đã được thay đổi. Tôi nghĩ rằng đây là danh sách các tệp được sử dụng gần đây và (đoán may mắn) Bây giờ tôi không còn có danh sách các tệp được sử dụng gần đây:

Cần có một tập tin ở đó được gọi là output2.txt.save2. Đại từ của tôi là He / Ngài


1
Bạn đã viết tất cả mọi thứ nhưng câu trả lời cho câu hỏi. Chỉ cần đưa ra một trường hợp thử nghiệm với gedit. Tôi có nên gắn cờ là "không phải là một câu trả lời" không? Hoặc "chất lượng rất tệ" mặc dù lâu?)))
Pilot6

5
@ Pilot6 - trong câu hỏi Can anyone give an example how to prove it ..... Can anyone give a real example?- và điều này liên kết đến những thứ trong quá khứ và đưa ra một ví dụ về những gì có thể xảy ra với firefox với quyền root - Tôi có nên gắn cờ nhận xét của bạn 'không mang tính xây dựng' vì tôi không thể thấy 'khó chịu một cách kỳ lạ'? hãy là cmon tốt đẹp :)
Wilf

1
Ồ làm ơn đừng sử dụng ls -la|grep rootnhưng find . -uid 0hoặcfind . -user root
solsTiCe

1
@ Pilot6 được rồi, tôi đã chỉnh sửa để bao gồm một số thứ về gedit. Tôi không nghĩ nó bổ sung bất cứ điều gì vào câu trả lời của tôi, nhưng dường như bạn muốn nó ...
Tim

4
Cả trích dẫn và ví dụ chi tiết làm cho siêu hữu ích này! Tôi rất vui vì bạn đã thêm Gedit nhưng tôi đồng ý với @Wilf rằng nó vẫn tốt ngay cả trước đây. Nó không chỉ đơn thuần là các ví dụ Gedit mà tôi (cố tình) không bao gồm ở đó . Nếu mọi người muốn, tôi có thể thêm một ghi chú ngắn về "đôi khi", nhưng tôi thực sự nghĩ rằng câu hỏi này là riêng biệt và tôi đã bỏ phiếu để mở lại . Nếu chúng tôi mở lại, tôi sẽ thử và thêm một câu trả lời khác với nhiều chi tiết hơn về Gedit, nhưng đây vẫn sẽ là câu trả lời hữu ích nhất cho hầu hết mọi người.
Eliah Kagan
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.