Làm cách nào để mở tệp dưới dạng root trong TextEdit trên Lion?


13

Làm cách nào để mở tệp dưới dạng root, trong TextEdit? Tôi đã thử các lệnh này như root, nhưng TextEdit luôn nói rằng nó bị khóa:

open -e /etc/apache2/httpd.conf
open -e -F /etc/apache2/httpd.conf
open -e -F -W /etc/apache2/httpd.conf

Và tất nhiên sudo !!làm cho không có sự khác biệt.

Câu trả lời:


14

Bạn có thể mở một phiên bản textedit dưới dạng root bằng cách nhập đường dẫn đầy đủ đến tệp thực thi thực tế:

sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"

Khi phiên bản gốc của bạn được mở, bạn có thể duyệt đến tệp bạn cần hoặc thực hiện việc này từ dòng lệnh:

sudo su - root -c "open -e /etc/apache2/httpd.conf"

Cảm ơn, nó đã làm việc! sudo /Applications/Textedit.app/Contents/MacOS/TextEditsau đó chỉ cần mở tệp từ TextEdit
Znarkus

Nếu bạn không muốn gõ nó ra mỗi lần bạn có thể tạo bí danh bằng cách vào thư mục chính của bạn trong Terminal, sau đó pico .bash_profile, thêm alias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"', lưu tệp, khởi động lại Terminal. Bây giờ bạn có thể chỉ cần gõ sudotextđể bắt đầu TextEdit với quyền root.
webbiedave

Như các câu trả lời khác đã chỉ ra, để thực hiện nó trong 1 lớp, tùy chọn thực sự duy nhất là có một trình soạn thảo bên thứ 3 hỗ trợ nó. Sau đó, chỉ cần gõ open -t "/etc/hosts"ví dụ. Với TextWrangler bạn chỉ cần gõ edit /etc/hosts.
cregox

2
Thật là một trải nghiệm người dùng khủng khiếp! Có cách nào dễ hơn không?
Marc

2
Chà, trên Yosemite 10.10.2 của tôi sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"không hoạt động :(
Henrique de Sousa

8

BBEdit là công cụ miễn phí để thực hiện điều này vào năm 2019 và nó thay thế tất cả chức năng của TextErangler và bạn có thể tải xuống từ App Store và trang web của nhà phát triển.


TextEdit không thực sự là công cụ phù hợp để chỉnh sửa các tệp cấu hình - thay vào đó hãy sử dụng TextWrangler . Nó miễn phí, có khả năng tích hợp để chỉnh sửa các tệp có quyền truy cập root từ tài khoản quản trị viên, cũng như những thứ như mở tệp vô hình và thư mục dễ dàng chỉnh sửa tệp qua SFTP, v.v.


emacscũng có một chế độ conf mã hóa màu sắc đẹp.
msanford

Điều này dường như không làm việc cho tôi trong Mountain Lion. Tôi gặp lỗi khi cố lưu tệp cấu hình hệ thống trong TextWrangler. Điều này đã thay đổi?
Simon East

@Simon: Âm thanh như bạn có phiên bản TextWrangler từ App Store, thay vì tải xuống trực tiếp từ barebones.com . Nếu vậy, nó đã bị xóa một số tính năng (bao gồm cả tính năng này) để tuân thủ các chính sách bảo mật của App Store; thay vào đó hãy đổ nó và lấy phiên bản trực tiếp!
Gordon Davisson

Điều gì xảy ra nếu bạn sử dụng máy Mac không có internet? 2 hack dòng thiết bị đầu cuối chấp nhận giải pháp vẫn là nói chung tốt hơn. Nhưng để sử dụng hàng ngày thực tế, tôi luôn đồng hành cùng các bên thứ 3! :-)
cregox

6

Đây là một cách để tránh chạy TextEdit với quyền root:

EDITOR='open -Wne' sudo -e /etc/apache2/httpd.conf

Bạn sẽ cần thoát khỏi bản sao của TextEdit sau khi chỉnh sửa tệp.

sudo -e, đôi khi được gọi là sudoeditnhưng không phải trên OS X, tạo một bản sao tạm thời của tệp với quyền ghi cho người dùng hiện tại, gọi trình soạn thảo trên đó theo kiểu Unix thông thường, sau đó sao chép lại.

Các tùy chọn để open: -Wđợi TextEdit thoát, vì vậy sudobiết khi nào cần sao chép lại tệp. -nđảm bảo rằng nó đang chờ trên một phiên bản TextEdit riêng biệt, không phải là phiên bản bạn đã mở mà bạn có thể không muốn thoát. Bạn cũng có thể thay thế -tthay vì -enếu bạn có một trình soạn thảo văn bản yêu thích khác hơn là TextEdit.

Nếu bạn đã có một EDITORbiến được đặt để sử dụng trình soạn thảo đồ họa với công cụ dòng lệnh có khả năng chờ riêng của nó (như TextMate hoặc BBEdit), thì bạn không cần bất kỳ thủ thuật nào trong số này và chỉ có thể sử dụng sudo -e <file>trực tiếp.


2

Vì người dùng root bị vô hiệu hóa, cách duy nhất để buộc ứng dụng OS X tùy ý có quyền root là kích hoạt root và đăng nhập với quyền root.

Tất nhiên, ứng dụng có thể sử dụng API để yêu cầu hệ thống xác thực và bật lên hộp thoại bạn mong đợi khi được yêu cầu người dùng và mật khẩu quản trị viên. TextEdit không có chức năng đó, do đó bạn phải xử lý các quyền của tệp trước và sau khi mở và ghi các tệp mong muốn.

Bạn đã thử sử dụng sudo open -a texteditđể mở ứng dụng?


Bạn có đề xuất về các ứng dụng có chức năng đó không? Tốt nhất là miễn phí :)
Znarkus

3
Điều này không hoàn toàn chính xác. Trong Terminal.app tôi chạy sudo su -để khởi động shell với quyền root và sau đó tôi có thể chạy open "/Applications/Textedit.app/Contents/MacOS/TextEdit"thành công. Tôi không kích hoạt người dùng root cũng như chưa đăng nhập với tư cách người dùng root.
EmmEff

1
sudo chmod +w name_of_the_file
sudo open -a TextEdit name_of_the_file
sudo chmod -w name_of_the_file

Nên làm việc


Được rồi, vì vậy không thể khởi chạy TextEdit với quyền root? Tôi thực sự muốn tránh những rắc rối thêm khi thay đổi quyền qua lại.
Znarkus

1
Mọi thứ đã thay đổi ở Lion, tôi đoán đó là hộp cát
Paul Ecotta

Vấn đề là tập tin bạn đang cố mở không thể ghi vào gốc vì sự cho phép của họ. Nó sẽ giống nhau đối với một trong các tệp của bạn (thực tế nó giống nhau, ngoại trừ thực tế là TextEdit là "thông minh" cho các tệp của Người dùng, do đó, thay đổi quyền bằng cách hỏi bạn).
Gio

@Gio Thật vậy, đó là do hộp cát của Lion: /etc/apache2/httpd.confcó quyền mặc định 0444. Tôi đã cố gắng cả buổi sáng để chỉnh sửa tập tin đó (với emacsđiều khiển từ xa) nhưng chưa bao giờ nghĩ sẽ kiểm tra các quyền (Lion mới).
msanford

-5
sudo nano /etc/hosts 

làm việc cho Lion


2
Câu hỏi là về TextEdit, không phải nano.
gosmond
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.