如何在 Linux 中创建具有特定安全权限的文件? (即相当于 Win32 CreateFile+SECURITY_ATTRIBUTES)
How to create files with specific security permissions in Linux? (i.e. the equivalent of Win32 CreateFile+SECURITY_ATTRIBUTES)
使用 Windows' Win32 API 可以创建文件并为其分配适当的安全权限(例如,一些用户可以读取和写入文件,另一个组中的其他用户只能读但不写等),使用 CreateFile()
and its SECURITY_ATTRIBUTES
参数。
Linux 是否提供类似的东西?为此应使用哪些函数和数据结构?
(我可能遗漏了一些东西,但经典的 C fopen()
似乎没有提供类似的安全权限设置功能......)
编辑
澄清一下,我正在寻找类似 Windows ACL.
的内容
如果您要查找文件属性和所有权,可以使用 chmod() or fchmod() and chown() or fchown(). There's also SELinux which has setfilecon() 和其他一些 API 函数。请注意,并非每台 Unix 计算机都启用了 SELinux。
Linux 下的最新文件系统支持 ACL。
但是,当 mounting the file-system.
时,需要通过 /etc/fstab
的相应条目启用 ACL 支持
要从命令行获取和设置 ACL,请使用
关于如何以编程方式访问 ACL,请参阅 man 5 acl
。
使用 Windows' Win32 API 可以创建文件并为其分配适当的安全权限(例如,一些用户可以读取和写入文件,另一个组中的其他用户只能读但不写等),使用 CreateFile()
and its SECURITY_ATTRIBUTES
参数。
Linux 是否提供类似的东西?为此应使用哪些函数和数据结构?
(我可能遗漏了一些东西,但经典的 C fopen()
似乎没有提供类似的安全权限设置功能......)
编辑
澄清一下,我正在寻找类似 Windows ACL.
如果您要查找文件属性和所有权,可以使用 chmod() or fchmod() and chown() or fchown(). There's also SELinux which has setfilecon() 和其他一些 API 函数。请注意,并非每台 Unix 计算机都启用了 SELinux。
Linux 下的最新文件系统支持 ACL。
但是,当 mounting the file-system.
时,需要通过/etc/fstab
的相应条目启用 ACL 支持
要从命令行获取和设置 ACL,请使用
关于如何以编程方式访问 ACL,请参阅 man 5 acl
。