it-swarm-vi.tech

Làm thế nào để có quyền sở hữu các tập tin từ dòng lệnh?

Mỗi lần tôi chạy vào một tập tin mà tôi cần sở hữu. Tôi thường sử dụng cacls để thay đổi quyền ntfs, nhưng dường như không có quyền sở hữu. Trong * nix tôi sẽ chạy một cái gì đó như chown me:me <file>. Có cửa sổ tương đương với chown không?

34
Joe

subinacl là công cụ quyền lực của Windows sysadmin để thực hiện mọi việc phải làm với quyền sở hữu và ACL. Bạn có thể thay đổi quyền sở hữu thành bất kỳ ai khác ngoài bạn ( bạn không thể làm điều này với GUI ).

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

Điều này cho phép bạn đặt quyền cho bất kỳ người dùng nào bạn thích mà không cần phải là quản trị viên (như tôi tin rằng Takeown.exe yêu cầu).

25
crb

Bạn đang tìm kiếm "TAKEOWN.EXE", lần đầu tiên trong Windows Server 2003 là một thành phần tiêu chuẩn và tôi tin rằng một mục tài nguyên-bộ tài nguyên trước đó. Nó có sẵn trên Windows 7 và có lẽ các hệ thống mới hơn.

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

/r thực hiện thao tác đệ quy trên tất cả các con của thư mục đã chỉ định. Không giống như subinacl, bạn phải đăng nhập với tư cách là người dùng mà bạn đang cố gắng sở hữu; hoặc, bạn chỉ có thể gán quyền sở hữu cho nhóm "Quản trị viên".

Đây là bản sao tài liệu của nó, như được bảo quản trên SS64 :

Cú pháp TakenOWN [/ s Máy tính [/ u [Tên miền] Tên người dùng [/ p [Mật khẩu]]]]/f Tên tệp [/ a] [/ r [/ d {Y | N}]]

Key/s Computer Tên hoặc địa chỉ IP của máy tính từ xa (không sử dụng dấu gạch chéo ngược). mặc định = máy tính cục bộ. Tham số này áp dụng cho tất cả các tệp và thư mục được chỉ định trong lệnh.

/ u [Tên miền] Tên người dùng Chạy tập lệnh với quyền của tài khoản người dùng được chỉ định. mặc định = quyền hệ thống.

/ p [Mật khẩu] Mật khẩu của tài khoản người dùng được chỉ định trong tham số/u.

/ f FileName Tên tệp, đường dẫn UNC hoặc mẫu tên thư mục. Chấp nhận ký tự đại diện *

/ a Trao quyền sở hữu cho nhóm Quản trị viên thay vì người dùng hiện tại.

/ r Thực hiện thao tác đệ quy trên tất cả các tệp trong thư mục và thư mục con được chỉ định.

/ d {Y | N} Bỏ qua lời nhắc xác nhận được hiển thị khi người dùng hiện tại không có quyền "Thư mục danh sách" trên một thư mục được chỉ định và thay vào đó sử dụng giá trị mặc định: Y: Giữ quyền sở hữu thư mục. N: Bỏ qua thư mục. Lưu ý rằng bạn phải sử dụng tùy chọn này kết hợp với tùy chọn/r. Nếu tham số/a không được chỉ định, quyền sở hữu tệp được trao cho người dùng hiện đang đăng nhập vào máy tính.

Các mẫu hỗn hợp sử dụng (? Và *) không được hỗ trợ bởi lệnh Takeown.

Sau khi thay đổi chủ sở hữu cho một tệp/thư mục, sau đó bạn có thể gán toàn quyền cho các tệp và sau đó đọc hoặc xóa chúng.

26
Evan Anderson

Có quyền sở hữu và toàn quyền của thư mục và mọi thứ bên trong:

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

Đảm bảo bắt đầu Dấu nhắc lệnh với tư cách Quản trị viên!

Tôi đã phải khởi động Command Prompt với tư cách Quản trị viên, nó hoạt động với tôi trong Windows 8.1. Với sự lúng túng của Windows 8.1, tôi đã phải tìm kiếm "lệnh", nhấp chuột phải vào biểu tượng Dấu nhắc lệnh. Đối với tôi để xem tùy chọn "Chạy với tư cách quản trị viên". Tôi đã có Dấu nhắc lệnh được ghim vào Thanh tác vụ của mình, nhưng nhấp chuột phải vào nó sẽ không hiển thị tùy chọn "chạy với tư cách Quản trị viên".

Trong Windows 10, "Chạy với tư cách Quản trị viên" sẽ có sẵn cho bạn dưới dạng tùy chọn nhấp chuột phải.

Cú pháp Takeown :

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

Tham khảo mất .

Cú pháp của 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]]

Tham khảo icacls .

17
chipiik

Tôi biết đây là một thực sự bài cũ, nhưng có một cách được tích hợp trong Windows 7 và mới hơn (có thể trong Windows Vista, nhưng tôi không chắc). Chạy phần sau từ lệnh leo thang Nhắc trong thư mục bạn muốn đặt lại. /t bảo icacls thực hiện thao tác đệ quy.

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

Lệnh đầu tiên đặt lại chủ sở hữu cho người đã từng đăng nhập thông qua các biến môi trường. Tất nhiên, một tên cụ thể có thể được sử dụng thay thế.

Lệnh thứ hai sau đó buộc các quyền được xem lại xuống cây cho tất cả các thư mục và tệp con.

Mong rằng điều này sẽ giúp ai đó trong tương lai.

8
Jim

Bạn có thể muốn xem SetACL , con dao quản lý cấp phép của quân đội Thụy Sĩ. Đây là một ví dụ về cách gán quyền sở hữu tất cả các tệp trên ổ C: cho "Quản trị viên" và xóa bảo vệ quyền thừa kế khỏi tất cả các đối tượng con trong một lần:

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"

Bạn cũng có thể thêm -silent.

6
Helge Klein

Đối với Windows 2003, 2008 hoặc Vista hoặc 7, hãy sử dụng Takeown .

Đối với Windows 2000, hãy sử dụng Fileowners.pl .

3
Dave Drager

Trong Windows Server 2003 R2 (và phiên bản mới hơn), bạn có thể tận dụng công cụ tích hợp icacls.exe để thay đổi quyền sở hữu từ dòng lệnh, cũng như tất cả các thao tác cacls.exe truyền thống mà trên đó nó mở rộng ...

Lưu ý rằng icacls.exe mặc định ở chế độ "chỉnh sửa", trong khi cacls.exe mặc định ở chế độ "thay thế" - một thay đổi đáng hoan nghênh đối với những người trong chúng ta bị cắn (hơn một lần) bởi sắc thái nhỏ bé đó!

3
jnaab

Một cách khác là fileacl Nó nhỏ và có thể đặt/bỏ đặt cờ "kế thừa/không kế thừa" trên đối tượng, không giống như hầu hết các tiện ích cửa sổ.

1
Skelewir
  1. lệnh mở Nhắc với tư cách người dùng quản trị và thay đổi thư mục có vấn đề
  2. sở hữu tất cả các tập tin ở đó ... ví dụ: takeown /f *.jpg
  3. cấp quyền truy cập cho người dùng bạn chọn ... ví dụ: icacls *.jpg /grant "Everyone":F (lưu ý rằng trong Windows không phải tiếng Anh "Mọi người" có thể không tồn tại, ví dụ: trong tiếng Đức Windows, nó chỉ hoạt động với "Jeder" - bummer thực sự mà Windows dịch các tùy chọn lệnh!)
0
Jörg

Tôi đã tìm thấy giải pháp bằng Windows Tools: cacls

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