Mengapa / usr / local / bin saya hanya dapat diakses oleh pengguna root? Hak yang mana untuk memperbaikinya?

0

Saya baru-baru ini ingin menggunakan pod untuk memperbarui jalur kerangka kerja.

Cocoapods diinstal dan dapat ditemukan di sini:

/usr/local/bin/

Tapi kejutan! Ini diatur ke akses hanya root:

ls -l / usr / local
drwx ------ tempat sampah 504 /
staf drwxr-xr-x @ john termasuk /
drwxr-xr-x @ john staff lib /
share roda drwxr-xr-x root /

Jadi saya tidak bisa menggunakan pod karena:

  • pod menginstal ranah

    heeeyy Bung, Anda tidak dapat mengakses pod karena Anda tidak root.!

  • sudo pod instal ranah

    heeeyy kawan, kamu tidak bisa menggunakan pod sebagai root! .!

Saya merasa bahwa folder ini tidak boleh ditetapkan sebagai 'root saja' karena:

Saya tahu Linux bukan BSD tapi tetap saja, tidak terlalu berbeda


Akhirnya inilah pertanyaan saya:

  • Saya mencari dan tidak ada pengguna dengan uid 504, apakah ini mencurigakan?

(Saya memeriksanya dengan "" dscacheutil -q pengguna | grep 504 "")

  • Apa yang dianggap sebagai hak dan pemilik pada folder?

  • Apakah ada seseorang yang memiliki masalah yang sama?

  • Adakah yang tahu mengapa ini terjadi?

itMaxence
sumber
1
Apakah Anda pernah menggunakan MacPorts atau yang serupa? Alasan saya bertanya adalah pada sistem saya, uid 504 adalah polkituser yang tampaknya kadang-kadang dibuat oleh MacPorts, jadi mungkin saja itu adalah pengguna yang telah dihapus.
tubedogg
Saya pikir saya pernah menggunakannya sekali ya, jadi mungkin ini yang saya kira. Terima kasih ~
itMaxence

Jawaban:

1

Pengaturan default untuk / usr / local ditampilkan di sini

~ $ ls -ld /usr/local
drwxr-xr-x@ 3 root  wheel  102  5 Aug 20:01 /usr/local 

ini berarti bahwa file dan direktori di bawah / usr / local hanya dapat dibuat oleh pengguna root misalkan saya / usr / local memiliki

~ $ ls -l /usr/local
total 0
drwxr-xr-x  12 root  wheel  408 11 Sep 12:11 bin

Jadi direktori share Anda terlihat normal tetapi yang lain memiliki perubahan aneh

sertakan dan lib terlihat seperti Anda mengubah izin / usr / local sehingga Anda dapat menulis ke sana dan kemudian membuat dua direktori ini (Setup yang paling umum seperti menginstal Homebrew) (kita perlu melihat apa yang ls -ld /usr/localmenunjukkan.

Adapun bin pasti ada beberapa hal. Pertama, pengguna baru harus ditambahkan pada suatu waktu, pengguna normal (dibuat melalui System Preferences GUI mulai dari 501) misalnya saya adalah pengguna kedua dan jadi id saya adalah 502 dan kemudian direktori tersebut dibuat atau dicantumkan pada pengguna itu- atau direktori itu dibuat di tempat lain dan kemudian dipindahkan sebagai root ke tempat itu.
Secara terpisah izin direktori telah diubah olehchmod 700

Jadi pengaturan yang benar adalah sebagai per / usr / local / share kecuali jika Anda menggunakan Homebrew di instal default dan kemudian mereka harus seperti / usr / local / include

Menandai
sumber
Saya menemukan file wireshark lama di / usr / local / bin yang dimiliki oleh uid 504! (sejak dihapus) Saya hanya menginstal RubyGems dan Macports, tidak ada ls -ld /usr/localpertunjukan Homebrew. drwxr-xr-x root wheel /usr/local/Terima kasih!
itMaxence
1

Folder / usr dilindungi oleh System Integrity Protection (SIP) dan dimiliki oleh root, seperti semua isinya, dengan pengecualian tunggal dari / usr / local (dan subdirektori).

Pengguna root adalah uid 0, bukan 504. Seri 500 harus berupa akun yang dibuat pengguna atau aplikasi. / usr / local / bin pada sistem saya dimiliki oleh nama pengguna saya "tubedogg" di grup "admin", dan telah drwxrwxr-xsebagai izin.

tubedogg
sumber
Terima kasih atas jawabannya! Saya akan memperbarui hak-hak ini \ o / Ya saya tahu bahwa ID root adalah 0 tetapi hak pada folder itu drwx ------ jadi hanya root yang bisa mengaksesnya, itulah yang saya maksud. Saya tidak tahu untuk 500+ ID, terima kasih
itMaxence
-1

Itu /usr/local/sendiri milik root wheelsaya. Tetapi semua folder yang mungkin Anda gunakan sebagai pengguna pod bin include etc lib opt share vardimiliki oleh pengguna dan grup admin saya.

Untuk mengubah kepemilikan folder dan file di dalamnya jalankan: sudo chown -R john:staff /usr/local/bin chmod -R 755 /usr/local/bin

Anton Chikin
sumber
Terima kasih atas jawabannya! Tidak dapat memvotasikan jawaban yang (tidak cukup reputasi)
itMaxence