首先,我不是 Windows 专家。此外,与我交谈过的 Windows 人员似乎并不熟悉“icacls”,我认为这很奇怪。我通过搜索找到了它。我看到有人问过类似的问题,但从未收到答案。我希望通过提供一个具体的例子,它可能对某人有意义。尝试在不使用 gui 的情况下删除权限,为什么这似乎没有效果?(为安全起见更改了特定名称):
domain\testsftp@SERVER1 C:\Users\testsftp\.ssh>icacls authorized_keys
authorized_keys NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
DOMAIN\TESTSFTP:(I)(F)
DOMAIN\dal123:(I)(F)
DOMAIN\adm_j123:(I)(F)
Successfully processed 1 files; Failed processing 0 files
domain\testsftp@SERVER1 C:\Users\testsftp\.ssh>icacls authorized_keys /remove "DOMAIN\dal123"
processed file: authorized_keys
Successfully processed 1 files; Failed processing 0 files
domain\testsftp@SERVER1 C:\Users\testsftp\.ssh>icacls authorized_keys
authorized_keys NT AUTHORITY\SYSTEM:(I)(F)
BUILTIN\Administrators:(I)(F)
DOMAIN\TESTSFTP:(I)(F)
DOMAIN\dal123:(I)(F)
DOMAIN\adm_j123:(I)(F)
Successfully processed 1 files; Failed processing 0 files
domain\testsftp@SERVER1 C:\Users\testsftp\.ssh>
它说它是成功的,但没有任何改变。任何人都可以帮忙吗?谢谢!
无法删除 ACL 条目,因为它是从父目录继承
(I)
的,而不是直接添加到文件中的。摆脱它的唯一方法是:(OI)(CI)
但不是继承(I)
- 如果仍然显示为已继承,请尝试再上一级);/inheritance
文件(或父 .ssh 目录),将所有继承的 ACE 转换为可直接编辑的 ACE,然后/remove
从文件中获取不需要的 ACL 条目;/deny
或在文件(或父目录)上添加显式ACE。这不会摆脱不需要的“允许”ACE,但会使其无效,因为直接拒绝总是比继承的允许具有更高的优先级。(但它可能无法满足 OpenSSH。)这并非特定于 icacls – GUI 具有相同的限制,除非您先单击“禁用继承”,否则不会让您删除继承的访问条目。
在您的特定情况下,这两个用户似乎可以访问整个 C:\Users\testsftp,因此如果您不想删除它们,可以在 .ssh 子目录(或仅在如果需要,请使用 authorized_keys 文件)。