sudo chown thất bại với hoạt động không được phép


8

Tôi đã tìm thấy những câu hỏi tương tự ở đây, nhưng câu trả lời được cung cấp cho những câu hỏi đó không giải quyết được vấn đề của tôi.

Nếu tôi làm:

sudo chown <username> main.m

Tôi nhận được một hoạt động không được phép lỗi.

Giải pháp chung cho các lỗi trước là:

sudo chflags nouchg main.m

để xóa một cờ khóa. Tuy nhiên, sau khi làm điều này, tôi vẫn không thể chown tập tin. Tôi cũng đã thử:

chflags noschg main.m

trong chế độ người dùng đơn lẻ mà không gặp may mắn - Tôi gặp lỗi hoạt động không được phép.

Nếu bất cứ ai có bất kỳ suy nghĩ, tôi sẽ quan tâm.


Điều cơ bản mà bạn đang cố gắng làm là gì? Có lẽ có một lý do để tập tin đó có một khóa.
Tamara Wijsman

Vì vậy, tôi có thể sử dụng nó làm dữ liệu thử nghiệm mà không cần đặt mã vào công cụ trợ giúp bảo mật, yêu cầu công việc bổ sung để gỡ lỗi - không phải là không thể, nhưng đủ khó chịu nếu tôi có thể thay đổi các thuộc tính của tệp để không cần công cụ trợ giúp bảo mật, điều đó sẽ làm cho mọi thứ dễ dàng hơn một chút. Xem xét rằng đây chỉ là dữ liệu thử nghiệm đã được tạo, không còn lý do chính đáng nào để nó có khóa.
ericg

1
Loại hệ thống tập tin là tập tin trên? Bạn không cố gắng sử dụng chowntrên hệ thống tập tin NTFS / FAT phải không?
Zoredache

@ericgorr: Hầu hết trong số đó là trên đỉnh đầu của tôi; Tôi không biết chính xác công cụ trợ giúp an toàn là gì. Nhưng như bạn nói, đó chỉ là dữ liệu thử nghiệm đã được tạo ra; Bạn đã đóng đúng tệp kiểm tra trong mã của bạn chưa?
Tamara Wijsman

@Tom một công cụ trợ giúp là cách cung cấp cho ứng dụng các đặc quyền nâng cao trong khi duy trì các đặc quyền - vì vậy, nếu ứng dụng muốn sửa đổi tệp bảo mật, chẳng hạn, nó sẽ báo cho công cụ trợ giúp (được ủy quyền) sửa đổi tệp cho nó. Tôi đoán ericgorr muốn tránh nâng ứng dụng của anh ấy / cô ấy hoặc một cái gì đó để tránh việc gỡ lỗi nghiêm ngặt đi kèm với điều đó.
Vervious

Câu trả lời:


8

Các tệp Mac có thể được bảo vệ theo bốn ba cách khác nhau mà tôi biết:

  1. Quyền sở hữu và quyền tiêu chuẩn Unix như r / w / x cho người dùng / nhóm / người khác mà bạn thấy ls -lvà sửa chữa với chown(1)chmod(1).
  2. Cờ tập tin như uchgschgbạn thấy với ls -lOvà sửa chữa với chflags(1).
  3. Siêu dữ liệu Finder cũ "Khóa bit" mà bạn thấy GetFileInfo filename. Bạn cũng có thể thấy sự hiện diện của siêu dữ liệu Finder, nhưng không phải ý nghĩa của nó ls -l@. Bạn có thể sửa nó với SetFile(1). Đừng bận tâm, điều này được ánh xạ đến uchgcờ bây giờ.
  4. Danh sách điều khiển truy cập (ACL) mà bạn thấy ls -levà sửa với các đối số liên quan đến ACL chmod(1).

Vì vậy, hãy xem những gì với tệp của bạn bằng cách kết hợp tất cả các cờ đó với ls:

ls -lO@e main.m

Có vẻ như bạn đã biết cách đối phó với # 1 và # 2.

Nếu bạn thấy ACL (# 4), bạn có thể sửa nó bằng các đối số liên quan đến ACL chmod(1).

Nếu bạn vẫn còn bối rối, hãy cập nhật Câu trả lời của bạn với đầu ra từ lslệnh kết hợp mà tôi đã đề xuất ở trên, để chúng tôi có thể thấy những gì đang diễn ra.


Vấn đề dường như là với ACL. Tôi thấy thật thú vị khi sudo không có được một cái khóa như vậy. Hơn nữa, chmod -R -a # 0 * đã xóa ACL khỏi hầu hết các tệp trong cấu trúc phân cấp, nhưng không thể xóa chúng khỏi một số - sử dụng sudo với chmod không giúp ích.
ericg
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.