标签: acl

ACL 与标准文件权限 - 访问文件时使用哪些权限?

ACL 和标准文件权限似乎是同步的:

$ getfacl test.cpp
# file: test.cpp
# owner: scdmb
# group: scdmb
user::rw-
group::rw-
other::r--

$ ls -l test.cpp
-rw-rw-r-- 2 scdmb scdmb 173 Jan  1  1970 test.cpp
Run Code Online (Sandbox Code Playgroud)

但是,正如我所读到的,inode 中有两个位置可以保存文件权限(i_mode 字段)以及放置 ACL 的这些扩展文件属性。那么当我访问文件时,使用哪些文件权限 - 标准还是 ACL?或者,这可能是以不同方式呈现的同一事物?

linux acl file-permissions

6
推荐指数
1
解决办法
7783
查看次数

管理员不是管理员?

我已将一些文件从 XP 计算机复制到运行 Windows 7 的 PC。我以标记为管理员的用户身份登录。

当我尝试访问该目录时,我被告知我没有权限。可以理解,但奇怪的是我作为管理员无权获得文件的所有权。我无权在 ACL 中添加用户或取得所有权,确实这些选项是灰色的。

为什么作为管理员用户我不能拥有文件的所有权?

security windows-7 permissions acl windows-xp

5
推荐指数
1
解决办法
2878
查看次数

父文件夹的 NTFS 权限以使子文件夹可访问

本地 Windows 系统上的快速场景。

E:使用 NTFS 格式化的驱动器具有以下布局和权限:

E:\                  (JohnDoe)
E:\folder            (Administrator)
E:\folder\subfolder  (JohnDoe)
Run Code Online (Sandbox Code Playgroud)
  • JohnDoe 具有对根目录的读/写访问权限。
  • JohnDoe 具有读/写访问权限 subfolder
  • JohnDoe不要访问folder
  • JohnDoe确实具备改变权限的能力。

由于JohnDoe无法访问folder,因此无法列出内容,他必须E:\folder\subfolder手动输入路径。没有“可点击”的方式从E:\subfolder

问题有没有办法JohnDoe发现可访问的存在和路径subfolder,而无法列出其父的内容folder?假设他没有被告知subfolder的姓名,并且权限与上述内容相同。

对于这个问题,忽略暴力攻击猜测subfolder名字的可能性。只允许使用非蛮力方法。

windows ntfs permissions acl

5
推荐指数
1
解决办法
5342
查看次数

如何将用户从 Windows 8 添加到 Windows 7 上的 ACL?

标题几乎说明了我想做什么。

我有 Windows 7 和 Windows 8 的双启动设置。有没有更简单的方法来做到这一点?我不想要takeown这些文件,只需向 ACL 添加一个(或两个)用户即可。

有没有更简单的方法来做到这一点?

理想情况下,我希望能够从编辑权限表单的高级对话框中选择用户,但我知道这可能是不可能的。

更新:如果答案是使用,icalcs那么请解释我如何添加用户,因为它不是 Windows 7 用户(即我不明白它如何知道我在说什么用户)。

windows-7 acl windows-8

5
推荐指数
1
解决办法
957
查看次数

在没有 root 权限的 Python 中使用 /sys/class/gpio/

我想使用 Python 模块Ablib与 GPIO 引脚进行交互。我想在没有 root 权限的情况下执行此操作。我怎样才能做到这一点?

当我创建一个ablib.Pin实例时,模块会打开/sys/class/gpio/export并将引脚编号写入其中。最初这会引发 IOErro:

IOError: [Errno 13] Permission denied: '/sys/class/gpio/export'
Run Code Online (Sandbox Code Playgroud)

这可以通过 轻松解决chmod。现在,当我创建一个ablib.Pin实例时,我在另一个文件上收到了 IOError:

IOError: [Errno 13] Permission denied: '/sys/class/gpio/pioC16/direction'
Run Code Online (Sandbox Code Playgroud)

ls -la关于/sys/class/gpio退货:

--w-------  1 my_user my_user 4096 Jan  1 01:42 export
lrwxrwxrwx  1 root root    0 Jan  1 01:42 pioC16 -> ../../devices/ahb.0/apb.1/pinctrl.2/fffff800.gpio/gpio/pioC16
Run Code Online (Sandbox Code Playgroud)

写入 115 时/sys/class/gpio/export,内核会创建符号链接/sys/class/pioC16。问题root是这个链接的所有者。我希望新创建的文件归my_user. 但我不知道如何做到这一点。我试过chmod并且chown

$ chown -R …
Run Code Online (Sandbox Code Playgroud)

linux permissions acl

5
推荐指数
1
解决办法
3847
查看次数

如何在文件创建时设置默认(非继承)acl 权限?

这是一个 freenas 盒子(FreeNAS-9.3-STABLE-201506292130)。

在基于 debian 的 linux 中,文件/目录的默认权限通常为 644/755(现在是 664/775?)。据我了解,发生这种情况是因为 umask 设置为 022 或 002,这控制着创建新文件的默认权限。但是在 freenas(windows acl 样式权限)中,默认文件创建仅继承包含目录的权限。我从 setfacl 手册页看到

setfacl(1) 手册页

有一个继承标志。但是,我更多的是寻找默认而不是继承。有没有办法改变这一点,让创建行为更接近基于 debian 的系统中所做的?也就是说,我希望文件是 644,目录是 755。我不希望新创建的文件只获得 755 权限,因为目录作为这些权限。

我一直在绞尽脑汁试图让一些事情发挥作用。我目前正在使用 NFSv4 ACL,当我尝试使用 POSIX ACL 时出现“品牌不匹配”错误,所以我一直坚持使用 windows 风格、freenas、freebsd、NFSv4、setfacl/getfacl 命令,我无法从我尝试的任何事情中获得上述行为。

$ mkdir test
$ cd test
$ ls -lat
drwxr-xr-x+  2 user  user   2 Aug  1 12:40 . 
drwxr-xr-x+ 67 user  user  67 Aug  1 12:40 ..
$ touch testfile
$ ls -lat
drwxr-xr-x+  2 user  user   3 Aug  1 12:40 . …
Run Code Online (Sandbox Code Playgroud)

freebsd freenas permissions acl

5
推荐指数
1
解决办法
2726
查看次数

如何将 add urlacl 添加到已使用的 443 端口?

我正在尝试将 uralacl 提供给运行此命令的用户 ad\user:

netsh http add urlacl url=http://+:443/ user=ad\user
Run Code Online (Sandbox Code Playgroud)

但收到此错误:Url 保留添加失败,错误:183 当该文件已存在时无法创建文件。

然后我运行这个命令,看看它是否已经被使用:

netsh http show url
Run Code Online (Sandbox Code Playgroud)

我看到它已经被保留了,可能是由 IIS 保留的:

保留 URL:https://+:443/sra_ {BA195980-CD49-458b-9E23-C84EE0A DCD75}/ 用户:NT SERVICE\SstpSvc 监听:是 代表:是 用户:BUILTIN\Administrators 监听:否 代表:否 用户: NT AUTHORITY\SYSTEM 听:是 委托:是 SDDL:D:(A;;GA;;;S-1-5-80-3435701886-3791383489-3228296122 -2938884314);(A); (A;;GA;;;SY)

我不想将我的用户添加到管理员。

所以我的问题是:我可以以某种方式将我的用户添加到这个 urlacl 而不删除然后添加它吗?所以结果 urlacl 是相同的,但包括我的用户。

acl netsh

5
推荐指数
1
解决办法
3185
查看次数

在 Linux 上使用 NFSv4 ACL

我已成功设置 NFSv4 客户端和服务器,大致遵循设置 NFS HOWTO 中的指南。两者都运行 Ubuntu Linux 14.04。这是一个没有复杂认证的小型测试环境;两台服务器只是使用相同的密码文件。一切似乎都在正常工作;文件在客户端可见,并且权限/用户 ID 正确。

现在我想使用 NFSv4 ACL 来控制对 NFSv4 服务器上文件的访问。我在客户端上安装了必需的命令行工具,并且能够看到类似于 NFSv4 ACL 的内容:

$ nfs4_getfacl .
A::OWNER@:rwaDxtTcCy
A::GROUP@:rxtcy
A::EVERYONE@:rxtcy
Run Code Online (Sandbox Code Playgroud)

但是,虽然我可以很好地获取 ACL 列表,但我无法设置任何 ACL。每次尝试都会导致Invalid argument错误setxattr

$ nfs4_setfacl -a A::OWNER@:rxtncy .
Failed setxattr operation: Invalid argument
Run Code Online (Sandbox Code Playgroud)

我使用 strace 来查看发生了什么。根据我能够找到的稀疏文档,NFSv4 ACL 作为二进制 XDR 数据存储system.nfs4_acl在文件上调用的扩展属性中。果然,这就是正在发生的事情;setxatt正在返回EINVAL

getxattr("/primary/home/rstudiouser", "system.nfs4_acl", 0x0, 0) = 80
getxattr("/primary/home/rstudiouser", "system.nfs4_acl", "\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\xe7\x00\x00\x00\x06OWNER@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\xa1\x00\x00\x00\x06GROUP@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\xa1\x00\x00\x00\x09EVERYONE@\x00\x00", 80) = 80
setxattr("/primary/home/rstudiouser", "system.nfs4_acl", "\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\xa9\x00\x00\x00\x06OWNER@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x01\xe7\x00\x00\x00\x06OWNER@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\xa1\x00\x00\x00\x06GROUP@\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\xa1\x00\x00\x00\x09EVERYONE@\x00\x00", 104, XATTR_REPLACE) = -1 EINVAL …
Run Code Online (Sandbox Code Playgroud)

linux permissions nfs acl ubuntu

5
推荐指数
1
解决办法
3525
查看次数

什么是特殊权限?

我正在检查该文件夹的安全权限C:\Windows\System32\Tasks,发现 Authenticated Users 组具有特殊权限(请注意,它没有写入权限):

在此输入图像描述

我进入“高级”选项卡,基本视图是(注意它没有读取权限):

在此输入图像描述

但是当我点击“显示高级权限”时,它显示了额外的“读取权限”:

在此输入图像描述

为什么同一个文件夹在三个视图中显示不同的内容?经过身份验证的用户组对此文件夹的实际访问权限是什么?

windows windows-explorer acl file-permissions windows-10

5
推荐指数
1
解决办法
2万
查看次数

高效安全地删除或取消垃圾时间机器备份

我一直在外部驱动器上存储我的 Time Machine 备份。注意到空间越来越小,我在 Finder 中查看了该外部驱动器,选择了一堆文件夹并将它们移至废纸篓。

我现在意识到这对我来说很愚蠢,原因有很多:

  • Time Machine 将在空间不足时正确删除旧备份。
  • 我现在的理解是,初始备份之后的所有 Time Machine 备份都是上一个备份的差异,而不是磁盘映像。因此,删除这些文件夹会使后续备份无用(我认为)。
  • 在我停止之前,“准备清空垃圾箱...要删除的项目:[数量]”对话达到了 150万个文件(!)。而且我没有权限,即使是 root,也没有权限 rm -rf 它们。
  • 我也没有权限,即使是 root,将 /Volumes/Time\ Machine\ Backups/.Trashes/ 中的文件 mv 返回到它们的原始位置。我读了一些关于访问控制列表的书,并且很担心通过与它们混在一起而犯更多的错误。

那么,有没有人对如何最好地处理这个问题有见解或建议?

具体来说,我想知道:

  • 删除垃圾箱中的项目会使我现有的 Time Machine 备份无用吗?
  • 如果删除当前在废纸篓中的那些文件夹 *is& OK,我将如何有效地执行此操作?
  • 如果删除这些文件夹会产生问题,我该如何将它们移回原来的位置?

在此先感谢你们提供的任何帮助。

trash permissions acl time-machine macos

4
推荐指数
1
解决办法
7506
查看次数