Linux中限制用户访问权限的3种方法
来源:互联网 发布:网络情歌排行 编辑:程序博客网 时间:2024/05/22 03:41
现在需要限定某个用户对特定目录/文件的访问权限,或者把某个用户的访问范围限制在某个目录/文件中。现实情况下,还是能遇到这样的需求的,比如说ubuntu下有多个可登录用户,默认情况下,用户A的工作目录(一般为/home/A)对任何其他用户来说都是可读的,但是用户A可能不希望其他用户(或者某个特定用户)读取A的文件。
这里提出三个解决方案。
第一种:使用chmod更改特定目录的权限。这能起到限制特定目录被某些人访问的作用,限定某个用户的目的也能达到,但是会误伤其他用户。
第二种:使用linux容器,例如lxc。耗费空间,设置稍显麻烦。
第三种:使用setfacl命令设定访问控制。
其中,第三个方案是最符合要求的。本文主要讲该方案的具体实现,其中根目录/使用的是ext4文件系统,/home使用的btrfs文件系统。
安装acl
代码如下:
sudo apt-get install acl
有资料说是要重启系统,有的没有重启依旧有效。
使用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
# 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/
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
# 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
0 0
- Linux中限制用户访问权限的3种方法
- 在linux中限制用户ftp访问权限
- 在linux中限制用户ftp访问权限
- Linux SSH Sftp 限制用户访问权限
- Jailkit 限制Linux用户访问权限
- 全局限制linux用户的权限
- 限制拨入VPN用户的访问权限
- 访问权限修饰符对方法的访问限制
- WIN7 中管理员用户在某文件夹被限制权限时的修改方法
- mysql添加新用户,限制用户访问权限
- Linux服务器中限制FTP用户访问方式
- NC63开发中遇到的访问权限限制问题
- 取消IIS用户访问人数限制的方法
- 在Windows Server 系统中根据用户对文件夹设置访问权限设置的方法
- 关于数据库中对用户访问数据库的IP限制
- 在linux中配置用户ftp访问权限[转载]
- msyql用户密码修改及关闭/限制MYSQL用户远程访问的权限
- 使用sc分配权限-限制某个用户或用户组对某个service的访问
- Xcode 的蛋疼---描述文件出错
- MVC连接SQL Server2008遇到的问题
- 用oracle database作为hvr的hub的一个注意点
- 【Android】【xUtils3网络下载图片的简单操作】
- 【一起学AngularJS】第六章、双向数据绑定
- Linux中限制用户访问权限的3种方法
- spfile参数文件丢失及恢复方案
- Android Studio 如何修改应用程序的版本号和Application Id
- 在Windows下配置和训练DPM(可变形部件模型)
- WSDL 详解
- web.xml 详细介绍
- 源码安装apache2.4遇到的问题
- Libgdx播放Spine动画(1)-基础
- 钓鱼 nkoj_1122