在日常使用Ubuntu服务器时,我们经常遇到这样的场景:root用户创建了某个文件夹,但需要授权给普通用户访问和操作。那么,有哪些方式可以实现这个需求?今天,我们总结了3种常见的授权方法,并详细介绍最佳实践。

一、修改文件夹所有者 (chown)

适合场景:

  • 想直接把这个文件夹的“归属权”交给某个普通用户。

示例:

假设文件夹路径为/data,希望授权给用户user1

sudo chown user1:user1 /data

这样user1就成了/data的所有者,有完整的读写执行权限。


二、修改文件夹权限 (chmod)

适合场景:

  • 不改变所有者,只想让所有用户或某个用户组拥有权限。

示例:

/data对所有用户开放读写权限:

sudo chmod 777 /data

/data只有特定组(比如user1所在的组)能操作:

sudo chown root:user1 /data
sudo chmod 770 /data

三、使用ACL实现精精化权限控制 (setfacl)

适合场景:

  • 需要给特定用户赋予权限,同时保持root所有者不变。

  • 需要灵活控制读、写、执行等具体权限。

  • 需要让权限递归生效,并对新文件自动继承权限。


示例1:给user1授权操作/data目录

sudo setfacl -m u:user1:rwx /data

注意:这只对/data相效,子目录不会继承。


示例2:递归授权所有子目录和文件

sudo setfacl -R -m u:user1:rwx /data

示例3:设置默认权限,让新建文件也继承

sudo setfacl -d -m u:user1:rwx /data

总结对比

方式

优点

适用场景

chown

简单直接,普通用户拥有完整控制权

完全转让

chmod

方便设置组权限,兼容性强

组共享访问

setfacl

精精控制,支持递归和继承

处理复杂权限管理场景


结论

根据实际场景选用最适合的方式,既保证安全又提升效率。希望这篇总结对你有所帮助!