现在需要限定某个用户对特定目录/文件的访问权限,或者把某个用户的访问范围限制在某个目录/文件中。现实情况下,还是能遇到这样的需求的,比如说ubuntu下有多个可登录用户,默认情况下,用户A的工作目录(一般为/home/A)对任何其他用户来说都是可读的,但是用户A可能不希望其他用户(或者某个特定用户)读取A的文件。

这里提出三个解决方案。

第一种:使用chmod更改特定目录的权限。这能起到限制特定目录被某些人访问的作用,限定某个用户的目的也能达到,但是会误伤其他用户。

第二种:使用linux容器,例如lxc。耗费空间,设置稍显麻烦。

第三种:使用setfacl命令设定访问控制。

其中,第三个方案是最符合要求的。本文主要讲该方案的具体实现并在我自己的本上测试。我的系统为Linux Mint 15 64位,根目录/使用的是ext4文件系统,/home使用的btrfs文件系统。

安装acl

复制代码代码如下:

sudo apt-get install acl

有资料说是要重启系统,但是测试的时候我发现这个在以前就已经安装好了(不知道是Mint自带了还是我胡乱装的),没有重启依旧有效。

使用setfacl

以root的身份执行下面的命令:

复制代码代码如下:

# mkdir /home/test

# touch /home/test/foo.txt

# vim /home/test/foo.txt

# ls -ld /home/test/

drwxr-xr-x 1 root root 14 Jan 16 09:46 /home/test/

# ls -ld /home/test/foo.txt

-rw-r--r-- 1 root root 6 Jan 16 09:46 /home/test/foo.txt

上面的命令在/home目录下创建目录test,在test目录下创建文件foo.txt,并在foo.txt下随便加了些内容。然后以普通用户letian的身份访问foo.txt,可以读foo.txt。

现在以root身份运行setfacl,使得/home/test目录及其里面的文件和目录不能被letian访问。

复制代码代码如下:

# setfacl -R -m u:letian:- /home/test/

-R表示递归,-m表示修改,u:letian:-表示用户(user)letian对/home/test没有任何权限。可以根据需要添加r、w、x及其组合。 我们查看一下test目录的详细信息:

复制代码代码如下:

# ls -ld /home/test/

drwxr-xr-x+ 1 root root 14 Jan 16 09:46 /home/test/

文件权限后面出现了一个+号,这说明该文件或者目录设置了ACL。foo.txt的权限信息后面也会有+号。 然后,以letian的身份访问该目录:

复制代码代码如下:

$ ls /home/test

ls: cannot open directory /home/test: Permission denied

使用getfacl

getfacl用来查看对某个目录/文件设置的acl。

复制代码代码如下:

$ getfacl /home/test

# file: /home/test

# owner: root

# group: root

user::rwx

user:letian:---

group::r-x

mask::r-x

other::r-x

删除设置的acl

复制代码代码如下:

# setfacl -b /home/test/

# getfacl /home/test

# file: /home/test

# owner: root

# group: root

user::rwx

group::r-x

other::r-x

linux限制root用户访问权限,Linux中限制用户访问权限的3种方法相关推荐

  1. linux centos查看用户列表,查看centos中的用户和用户组_Centos查看系统中用户和用户组的方法...

    最近朋友刚接触Linux系统,想要查看系统中都又哪些用户和用户所属的组,接下来吾爱编程就为大家介绍一下Centos查看系统中用户和用户组的方法,有需要的小伙伴可以参考一下: 1.查看系统中的用户: C ...

  2. linux下logcat命令,Android shell命令行中过滤adb logcat输出的几种方法

    我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率.本文就具体介绍几种在shell命令行中过滤adb lo ...

  3. qt5设置linux系统时间,Qt中使用QLabel显示时间的两种方法

    Qt中使用QLabel显示时间的两种方法思路一致,只是实现方法不一样而已. main.cpp #include "displaytime.h" #include int main( ...

  4. shell实例第19讲:一个脚本中调用另一个脚本的3种方法

    在Shell脚本中调用另一个脚本(3种方法) 准备:主脚本是second.sh,主脚本中调用first.sh 方法1:exec(1)执行方式:exec /home/weibo/shell_test/s ...

  5. 在电商运营中与客户建立信任的4种方法

    在电商运营中与客户建立信任的4种方法 在众多人的财务和消费行为数据被泄露或非法收集之后,网络购物所带来的风险已成为消费者最为关注的问题之一. 建立客户的信任绝对不是一件容易的事情,尤其是对于电商企业来 ...

  6. Android中监听Home键的4种方法总结

    本文主要介绍了Android中监听Home键的4种方法总结,主要讲解了onSaveInstanceState方法.onUserLeaveHint方法.ACTION_CLOSE_SYSTEM_DIALO ...

  7. C#中窗体间传递数据的几种方法

    C#中窗体间传递数据的几种方法 在编写C#windows应用程序的时候我们经常会遇到这种问题,怎么样在两个窗体间传递数据呢?以下是我整理的网上的各种方法,在遇到一个实际问题:在form1中打开一个fo ...

  8. 非递归中序遍历二叉树总结(2种方法)

    算法 非递归中序遍历二叉树总结(2种方法) @author:Jingdai @date:2020.12.03 传送门 非递归先序遍历二叉树 非递归后序遍历二叉树 方法1 先序遍历是第一次遇到该节点遍历 ...

  9. JS获取URL中参数值(QueryString)的4种方法分享

    http://www.jb51.net/article/48942.htm JS获取URL中参数值(QueryString)的4种方法分享 作者: 字体:[增加 减小] 类型:转载 今天碰到要在一个页 ...

  10. 在HTML中使用CSS美化网页的三种方法

    在HTML中使用CSS美化网页的三种方法 CSS是Cascading Style Sheets(级联样式表)的缩写,CSS是一种样式表语言,用于为HTML文档定义布局.例如,CSS涉及字体.颜色.边距 ...

最新文章

  1. 2位图灵奖得主、7位院士等一众AI大佬云集共议数字化转型 | CNCC 2021
  2. Luogu P2619 [国家集训队2]Tree I 凸优化,wqs二分
  3. POJ - 2400 Supervisor, Supervisee(KM+打印方案)
  4. 习惯性朴实简单!一起学习MySQL常见单行函数,字符数学日期流程控制
  5. vNext之旅(2):net451、dotnet5.4、dnx451、dnxcore50都是什么鬼
  6. RSA加密-解密以及解决超长内容加密失败解决
  7. javaScript js 可滑动的div块
  8. html页面滚动导致阴影出现,三种处理滚动穿透问题方案的对比
  9. Top的VIRT是什么
  10. PMP课程笔记:第13章 项目相关方管理
  11. matlab使用parpool加速蒙特卡洛仿真
  12. 一级计算机手机试题app,计算机一级考试题库
  13. 【转载】ANSYS 动力分析 (9) - 瞬态动力分析 (1)
  14. stm32采集脉冲信号_stm32用ETR采集外部脉冲个数出现二分频问题,请教哪里设置......
  15. 2017双11核心技术揭秘—双十一海量数据下EagleEye的使命和挑战
  16. Arduino与Proteus仿真实例-HC-SRF04超声波测距仿真
  17. python绘制qq图_Python中作QQ图(quantilequantile Plot)
  18. SEPIC 单端初级电感转换器 稳压器 -- Zeta 转换器
  19. 深入Kubernetes 之 DaemonSet :容器化守护进程
  20. JACK——TeamsMaual6 Team Formation

热门文章

  1. 中国钢渣粉行业研究与投资战略报告(2021版)
  2. js正则表达式-匹配空格/数字范围/网址/电话等常用表达式
  3. JavaScript正则表达式匹配空格
  4. 爬取最新版51job/前程无忧
  5. java学习之心得体会
  6. IDEA快捷键--转载
  7. OpenSearch 可以轻松摄取、搜索、可视化和分析数据
  8. document.referrer 配合微信监听返回按钮优化用户体验
  9. python回合制游戏教程_适合初学者练手的 10 个 有趣Python项目|python教程|python入门|python教程...
  10. 旺店通·企业奇门与金蝶云星辰V1对接集成查询仓库连通商品新增(wk_仓库同步)