Apa arti "@" dalam izin file unix?


49

Saya memiliki file dengan izin berikut di MacBook Pro saya:

-rwxr-xr-x@ 1 root wheel 101K Feb 29 17:09 apachectl

Apa artinya @berdiri? Saya tidak dapat menjalankan file dan ini adalah satu-satunya hal yang menonjol bagi saya. Bagaimana saya bisa menyingkirkannya?

Seperti beberapa latar belakang, saya menyalin ini dari cadangan Time Machine.

Jawaban:


35

Jika file atau direktori memiliki atribut yang diperluas, Anda akan melihat @ di bidang izin. Untuk informasi keamanan tambahan (ACL), Anda akan melihat tanda +.

Dari man lspada OS X:

-@      Display extended attribute keys and sizes in long (-l) output.

The xattrprogram dapat digunakan untuk menampilkan dan memanipulasi atribut diperpanjang. Lihatlah apa yang ada di sana sebelum memutuskan untuk pergi sambil menghapus atribut-atribut itu. Lihat juga halaman manual untuk xattr.

Contoh cepat dari beberapa contoh kode kompromi PHP yang saya simpan untuk referensi:

$ ls -@l php-compromise.php 
-rw-r--r--@ 1 user  group  502620 Jul  5  2011 php-compromise.php
    com.apple.FinderInfo        32 
    com.apple.TextEncoding      15 

22

Terima kasih kepada @Jeff untuk koreksi. Saya salah ingat.

  • The @ditampilkan dengan atribut diperpanjang diatur
  • The +ditampilkan untuk ACL.
  • JIKA Anda memiliki atribut dan ACL maka Anda akan melihatnya @.

Jalankan perintah ls -le filenameuntuk melihat apakah ACL telah disetel.

Karena masalah Anda tampaknya berkaitan dengan mengakses file, saya yakin Anda memiliki set ACL selain atribut yang diperluas.

Untuk menyingkirkan menjalankan ACL echo | sudo chmod -E filenameuntuk file atau echo | sudo chmod -R -E directory namedirektori.

Lihat halaman manual chmod .


terima kasih atas tanggapannya. bagaimana saya bisa menyingkirkannya?
— VinnyD

Diperbarui dengan jawaban yang saya yakin harus bekerja.
— Zoredache

@Zoredache Izin ACL datang dengan tanda plus. @ Adalah "atribut yang diperluas."

Ya, saya melihat itu ketika saya mengecek. Saya harus ingat ke belakang. Dan apa yang terjadi ketika suatu file memiliki keduanya?
— Zoredache

Nevermind, saya punya mac boot. Jika Anda memiliki @atribut diperluas dan +set acl, tampaknya ls akan menampilkan a @. Karena ia mengalami masalah dalam mengakses file, sepertinya bagi saya masalahnya lebih besar kemungkinannya ia memiliki masalah dengan ACL.
— Zoredache

8

Dengan atribut karantina apel, chmod tidak cukup untuk menghapusnya.

Anda perlu menghapus atribut secara eksplisit:

sudo xattr -d com.apple.quarantine my_file

OP juga bertanya "Apa arti dari singkatan @?"
— Kamafeather

3

The @singkatan atribut diperpanjang, di samping standar hak akses file unix.

Periksa atribut yang diperluas:

ls -l@

Setel ulang semua atribut yang diperluas untuk satu file:

sudo xattr -c <filepath>

Setel ulang semua atribut diperluas secara rekursif:

sudo xattr -rc <directory>
sudo chmod -R -N <directory>

Diperiksa pada macOS High Sierra (10.13) dan macOS Mojave (10.14.6).


0

Saya menemukan bahwa -Eatau -Nsebenarnya tidak terlihat bahkan ketika menggunakan sudo. Satu-satunya cara saya bisa memperbaikinya adalah dengan masuk sebagai root


Itu bukan jawaban. Mungkin harus menjadi komentar untuk jawaban yang Anda maksud.
— Kamafeather
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.