Windows系统实际上与Linux系统有相似之处,Windows系统的文件、目录属性有只读、隐藏,Linux也是如此。
在Linux上,每个文件都有特定的属性。 主要同时包括文件类型和文件权限。 可分为5种类型:常规文件、目录文件、链接文件、设备文件和管道文件。
文件访问权限是对文件的访问权限,包括对文件的读取、写入、删除和执行。 Linux是一个多用户操作系统,允许多个用户同时登录和工作。 因此,Linux将文件或目录与用户或组相关联。 访问控制列表(ACL )可提高对计算机的访问控制,并限制所有用户(包括根用户)对文件、资源和套接字的访问。 我来告诉你一个简单的设置方法。
步骤1检查系统核心
首先,检查Linux系统的核心是否具有支持ACL的功能。 因为Linux系统并不是所有版本的核心都具有支持ACL的功能,最简单的方法是检查系统的当前核心是否支持。
[根@ mail/] # cat/boot/config-kernel-version|grep-I ext3
CONFIG_EXT3_FS=m
CONFIG_EXT3_IDEX=y
CONFIG_EXT3_FS_XATTR_SHARING=y
CONFIG_EXT3_FS_XATTR_USER=y
CONFIG_EXT3_FS_XATTR_TRUSTED=y
CONFIG_EXT3_FS_ACL=y
现在,如果可以看到上面的内容,它将被编译为核心,表示ext3文件系统支持ACL功能。 这些功能位于“编译核心”选项中。 如果在编译时找不到,请在ACL的官方网站上安装kernel(ACL.bestbits.at/)。
步骤2装载分区
可以通过以下方法装载分区来启用ACL :
#mount -t ext3 -o acl /dev/sda1 /fs1
也可以直接写在/etc/fstab文件中。 这样可以在接通电源后支持ACL功能。
#vi /etc/fstab
设置步骤ACL权限
ACL通常是为单个用户设置的。 以下是几个不同的例子。
例如,如果需要创建三个用户: test1、test2和test3,请首先以root身份登录系统,然后运行以下命令分别创建三个用户名和密码:
[root@mail root]#adduser test1
[root@mail root]#adduser test2
[root@mail root]#adduser test3
[根@ mail root ] # passwd test 1
[root@mail root]#passwd test2
[根@ mail root ] # passwd test 3
然后,将ext3文件挂载到目录/fs1中。
[ root @ mailroot ] # mount-text3- oacl/dev/sda1/fs1
将在test1中创建的文件在test2中设置读写权限:
[根@ mail root ] # chmod-r 777/fs1
要允许所有用户将文件添加到目录中:
首先在test1中登录系统,然后运行命令。
[test1@mail test1]# cd /fs1
[ test1 @ mail fs1] # echo ' createbytest1' test1.txt
[ test1 @ mail fs1] # chmod go-r test1.txt
[test1@mail fs1]# ll test1.txt
- rw----1test1 test 117 jul 1422336011 test1. txt
通过执行以下操作,除了对test1具有读写权限之外,其他人都没有读写非根test1.txt的权限: 首先以test2登录系统,然后运行以下命令:
[test2@mail test2]# cd /fs1
[test2@mail fs1]# cat test1.txt
cat : test1. txtpermissiondenied
然后在test1中登录系统,并运行以下命令:
[ test1 @ mail fs1] # setfacl-mu : test 23360 rwtest1. txt
通过以这种方式更改权限,test2可以对该文件具有读写权限。 看看文件属性的变化。
[test1@mail fs1]# ll
- rw-rw-r--1test1 test 110 feb 161:52 test1. txt
后面添加了“”。 这表示此文件使用ACL的属性设置,并使用命令getfacl查看ACL的文件属性设置。
[ test1 @ mail fs1] # getfacl test1.txt
# file: test1.txt
# owner: test1
# group :测试1
user:rw-
user :测试2: rw -
组:3360 rw -
mask:rw-
other:r--
您可以看到test2有读写此文件的权限。
在test2中登录系统并运行以下命令,看看发生了什么。
[test2@mail test2]# cd /fs1
[test2@mail fs1]# cat test1.txt
创建方式by test 1
原本test2就可以读取test1.txt文件。
[ test2@ mail fs1] # echo ' modifybytest2' test1.txt
[test2@mail fs1]# cat test1.txt
创建方式by test 1
Modify by test2
现在,test2还可以修改test1.txt文件。
然后用test3登录系统。
[test3@mail test3]# cd /fs1
[test3@mail fs1]# cat test1.txt
cat : test1. txtpermissiondenied
除test1、test2以外的用户没有读写test1.txt的权限(root除外)。