pengembangan-web-mp-pd.com

Bagaimana cara mengambil kepemilikan file dari baris perintah?

Sering kali saya menemukan file yang perlu saya miliki. Saya biasanya menggunakan cacls untuk mengubah izin ntfs, tetapi sepertinya tidak memiliki kepemilikan. Di bawah * nix saya akan menjalankan sesuatu seperti chown me:me <file>. Apakah ada jendela yang setara dengan chown?

34
Joe

subinacl adalah alat kekuasaan sysadmin Windows untuk melakukan segala sesuatu yang berkaitan dengan kepemilikan dan ACL. Anda dapat mengubah kepemilikan kepada siapa pun selain hanya Anda ( Anda tidak dapat melakukan ini dengan GUI ).

subinacl /file test.txt /setowner=domain\foo

Ini memungkinkan Anda mengatur izin untuk setiap pengguna yang Anda suka, tanpa harus menjadi administrator (seperti yang saya yakini membutuhkan takeown.exe).

25
crb

Anda sedang mencari "TAKEOWN.EXE", yang pertama kali di Windows Server 2003 sebagai komponen standar, dan saya percaya item kit sumber daya sebelumnya. Ini tersedia di Windows 7, dan mungkin sistem yang lebih baru.

takeown /f <some-file-or-folder> /r

/r melakukan operasi secara rekursif pada semua anak dari folder yang ditentukan. Tidak seperti subinacl, Anda harus masuk sebagai pengguna yang Anda coba ambil kepemilikan; atau, Anda dapat dengan mudah memberikan kepemilikan kepada grup "Administrator".

Berikut adalah salinan dokumentasinya, seperti yang disimpan pada SS64 :

Sintaks TAKEOWN [/ s Komputer [/ u [Domain] UserName [/ p [Kata sandi]]]]/f Nama File [/ a] [/ r [/ d {Y | N}]]

Komputer Kunci Nama atau alamat IP komputer jarak jauh (jangan gunakan garis miring terbalik). default = komputer lokal. Parameter ini berlaku untuk semua file dan folder yang ditentukan dalam perintah.

/ u [Domain] UserName Jalankan skrip dengan izin dari akun pengguna yang ditentukan. default = izin sistem.

/ p [Kata Sandi] Kata sandi akun pengguna yang ditentukan dalam parameter/u.

/ f Nama File Nama file, jalur UNC atau pola nama direktori. Menerima karakter wildcard *

/ a Berikan kepemilikan kepada grup Administrator daripada pengguna saat ini.

/ r Melakukan operasi rekursif pada semua file di direktori dan subdirektori yang ditentukan.

/ d {Y | N} Menekan Konfirmasi konfirmasi yang ditampilkan ketika pengguna saat ini tidak memiliki izin "Daftar Folder" pada direktori yang ditentukan, dan alih-alih menggunakan nilai default: Y: Ambil kepemilikan direktori. N: Lewati direktori. Perhatikan bahwa Anda harus menggunakan opsi ini bersama dengan opsi/r. Jika/a parameter tidak ditentukan, kepemilikan file diberikan kepada pengguna yang saat ini masuk ke komputer.

Pola campuran menggunakan (? Dan *) tidak didukung oleh perintah takeown.

Setelah mengubah pemilik file/folder, Anda kemudian dapat menetapkan izin penuh untuk file dan kemudian membaca atau menghapusnya.

26
Evan Anderson

Ambil kepemilikan dan hak penuh folder dan semua yang ada di dalamnya:

takeown /F somedir /A /R
icacls somedir /grant:r User:F /T

Pastikan untuk memulai Command Prompt sebagai Administrator!

Saya harus memulai Command Prompt sebagai Administrator, itu berhasil untuk saya di Windows 8.1. Dengan kejanggalan Windows 8.1, saya harus mencari "command", klik kanan pada ikon Command Prompt. Bagi saya untuk melihat opsi "Jalankan sebagai Administrator". Saya memiliki Command Prompt yang disematkan ke Taskbar saya, tetapi mengklik kanan tidak akan menampilkan opsi "run as Administrator".

Di Windows 10, "Jalankan sebagai Administrator" harus tersedia untuk Anda sebagai opsi klik kanan.

Sintaks Takeown :

takeown [/s <Computer> [/u [<Domain>\]<User name> [/p [<Password>]]]] /f <File name> [/a] [/r [/d {Y|N}]]

Referensi takeown .

Sintaks Icacls :

icacls <FileName>[/GRANT [: r] <Sid>: <Perm> [...]] [/ Denegar <Sid>: <Perm> [...]] [/Remove [:g|:d]] <Sid> [...]] [/ t] [/ c] [/ l] [/ q] [/ setintegritylevel <Level>: <Policy> [...]]Icacls <Directory>[/ sustituir <SidOld><SidNew>[...]] [/ restore <ACLfile>[/ c] [/ l] [/q]]

Referensi icacls .

17
chipiik

Saya tahu ini adalah posting lama benar-benar, tetapi ada cara yang dibangun ke dalam Windows 7 dan yang lebih baru (mungkin di Windows Vista, tapi saya tidak yakin). Jalankan berikut ini dari perintah yang ditingkatkan Prompt di folder yang ingin Anda atur ulang. /t memberitahu icacls untuk melakukan operasi secara rekursif.

icacls .\* /setowner %UserDomain%\%UserName% /t
icacls .\* /reset /t

Perintah pertama mengatur ulang pemilik yang pernah masuk melalui variabel lingkungan. Tentu saja, nama tertentu dapat digunakan sebagai gantinya.

Perintah kedua kemudian memaksa izin untuk diulang kembali ke pohon ke semua folder dan file anak.

Semoga ini bisa membantu seseorang di masa depan.

8
Jim

Anda mungkin ingin melihat SetACL , pisau manajemen izin swiss tentara. Berikut ini adalah contoh tentang cara menetapkan kepemilikan semua file pada drive C: ke "Administrator" dan menghapus perlindungan warisan dari semua objek anak dalam sekali jalan:

SetACL.exe -on "C:\\" -ot file -actn setprot
           -op "dacl:np;sacl:nc"
           -rec cont_obj
           -actn setowner -ownr "n:S-1-5-32-544;s:y"

Anda juga dapat menambahkan -silent.

6
Helge Klein

Untuk Windows 2003, 2008 atau Vista atau 7 gunakan Takeown .

Untuk Windows 2000 gunakan Fileowners.pl .

3
Dave Drager

Pada Windows Server 2003 R2 (dan yang lebih baru), Anda dapat memanfaatkan alat bawaan icacls.exe untuk mengubah kepemilikan dari baris perintah, serta semua manipulasi cacls.exe tradisional yang digunakan itu mengembang ...

Perhatikan bahwa icacls.exe default ke mode "edit", sedangkan cacls.exe default ke mode "replace" - perubahan selamat datang bagi kita yang digigit (lebih dari sekali) dengan sedikit nuansa cacl!

3
jnaab

Alternatif lain adalah fileacl Ini kecil dan dapat mengatur/membatalkan set flag "inherit/don't inherit" pada objek, tidak seperti kebanyakan utils windows.

1
Skelewir
  1. buka perintah Prompt sebagai pengguna admin dan ubah ke direktori yang bermasalah
  2. ambil kepemilikan semua file di sana ... contoh: takeown /f *.jpg
  3. berikan hak akses kepada pengguna pilihan Anda ... contoh: icacls *.jpg /grant "Everyone":F (perhatikan bahwa dalam Windows non-bahasa Inggris "Semua Orang" mungkin tidak ada, mis. dalam bahasa Jerman Windows hanya berfungsi dengan "Jeder" - gelandangan nyata bahwa Windows menerjemahkan opsi perintah!)
0
Jörg

Saya telah menemukan solusi menggunakan Windows Tools: cacls

cacls <file or directory> /E /T /G <user>:F
0
chepseskaf