我最近删除了我的ACL,因为我的教授需要复制某些文件。现在我知道我应该只是授予他的用户权限,而不是使用'setfacl -b'全部删除它。在我的主目录上。
所以问题是如何使用setfacl / getfacl恢复或设置新的ACL到我的主目录?
答案 0 :(得分:4)
您无法“恢复”以ACL方式丢弃的内容。如果您知道之前设置的内容,可以仔细重新恢复那些记住的ACL。
在Unix系统上,最重要的标准是组和其他标准 - 它们不直接受ACL影响,但它们控制不受ACL控制的访问,您也必须正确使用它们。您需要确定适合您环境的内容。对于许多公司设置,允许组和其他人读取文件访问权限,在程序上执行,以及在目录上读取和搜索(执行)是合适的:
chmod 644 file
chmod 755 program
chmod 755 directory
如果你不应该让其他人借用你的课程,你就会把事情搞得一团糟,这样就不允许小组和其他人进入:
chmod 600 file
chmod 700 program
chmod 700 directory
或者你可以混搭;允许灵活性和开放访问您的主目录,但限制在其下面的人。在某些情况下,您可能允许组或其他只对目录执行权限(并且只读取文件)。然后其他人无法访问该文件,除非他们知道其名称,他们只能读取文件,而不能修改它或保存文件的目录。
不要忘记使用适当的umask设置,以便默认使用正确的权限创建文件。对于许多人来说,022的umask是合适的;组成员和其他人都不能写入文件或目录,但他们可以读取文件或执行程序。
这些都不需要ACL。如果要提供对某些组或用户的受控访问权限而不是其他人,则需要确保设置了相应的基本级别权限,然后可以有效地为文件或目录上的选定用户或组添加权限选择。
setfacl的Solaris 10手册页说命令语法是:
setfacl [-r] -s acl_entries file setfacl [-r] -md acl_entries file setfacl [-r] -f acl_file file
这没有提到问题中提到的'-b'选项,因此您可能正在使用其他平台。请注意,ACL控件将是POSIX 1e,但从未实际标准化,因此不同的平台在命令上实现略有不同的变体。
然后,Solaris 10手册页继续解释如何设置描述的“acl_entries”部分,并注意默认部分只能应用于目录,但默认值将用于目录。
ACL Entry Description
u[ser]::perms File owner permissions.
g[roup]::perms File group owner permissions.
o[ther]:perms Permissions for users other than
the file owner or members of file
group owner.
m[ask]:perms The ACL mask. The mask entry indi-
cates the maximum permissions
allowed for users (other than the
owner) and for groups. The mask is
a quick way to change permissions
on all the users and groups.
u[ser]:uid:perms Permissions for a specific user.
For uid, you can specify either a
user name or a numeric UID.
g[roup]:gid:perms Permissions for a specific group.
For gid, you can specify either a
group name or a numeric GID.
d[efault]:u[ser]::perms Default file owner permissions.
d[efault]:g[roup]::perms Default file group owner permis-
sions.
d[efault]:o[ther]:perms Default permissions for users other
than the file owner or members of
the file group owner.
d[efault]:m[ask]:perms Default ACL mask.
d[efault]:u[ser]:uid:perms Default permissions for a specific
user. For uid, you can specify
either a user name or a numeric
UID.
d[efault]:g[roup]:gid:perms Default permissions for a specific
group. For gid, you can specify
either a group name or a numeric
GID.
除了教授之外,您需要决定谁需要访问文件。也许你的实验室伙伴呢;也许教学助理会这样做;也许是你整整一年(但不是你以下的岁月 - 那些你可能已经知道你知道的东西)。但是,如果没有关于您的保护要求的任何更多信息,没有人可以帮助您更多。通常,很容易使ACL出错 - 如果有的话,请谨慎使用,并使用标准Unix权限作为主要访问控制。
下一次,我建议只是通过添加(而不是删除)ACL来允许你的教授进入 - 或者询问他希望你将文件复制到哪里(将责任放在他身上以解决权限问题)或复制将文件放入目录中,例如$ HOME / tmp / prof.jones,对目录具有711权限,对文件具有644权限,并告诉他哪些文件可供他复制。