• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux中限制用户访问权限的3种方法

    现在需要限定某个用户对特定目录/文件的访问权限,或者把某个用户的访问范围限制在某个目录/文件中。现实情况下,还是能遇到这样的需求的,比如说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下删除大数据文件中部分字段重复行的方法
    下一篇:清除swap里的文件的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux中限制用户访问权限的3种方法 Linux,中,限制,用户,访问,