黑客24小时在线接单网站

电脑高手24在线咨询,黑客24小时在线接单网站,黑客接单平台,黑客网站找人,黑客在线qq接单

在Linux中使用访问控制列表(ACL)保护文件/目录

作为系统管理员,我们的首要任务是保护数据的安全,避免被未经授权的人访问。我们都知道使用一些有用的东西Linux命令设置的权限,如chmod、chown和chgrp等待命令,但这些默认权限集有一定的局限性,有时可能不能满足我们的要求。例如,我们不能为同一目录或文件设置不同的权限集。因此,访问控制列表(ACL)应运而生。

在Linux中使用访问控制列表(ACL)保护文件/目录

Linux访问控制列表

例如,你有三个用户,即“tecmint1”、“tecmint2”和“tecmint3”。例如,每个用户都有一个共同的用户组“acl”。用户“tecmint1”希望,只有“tecmint2”用户可以阅读和访问回归“tecmint1”其他人无权访问用户所有的文件。

访问控制列表(ACL)让我们做同样的事情。ACL允许我们授予用户、用户组或不在用户组列表中的任何用户组的权限。

注:根据红帽产品说明文件,为ext3文件系统和NFS提供导出文件系统ACL支持。

如何检查Linux系统中的ACL支持?

在继续下一步之前,你应该确保ACL支持现有内核和已挂载的文件系统。

1. 检查核心是否支持ACL。

检查是否为文件系统提供以下命令ACL是否有支持POSIX_ACL=Y选项(如果是N,而不是Y,这意味着内核不支持ACL,需要重新编译)。

[root@linux ~]# grep -i acl /boot/config*

CONFIG_EXT4_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_JFS_POSIX_ACL=y
CONFIG_XFS_POSIX_ACL=y
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_FS_POSIX_ACL=y
CONFIG_GENERIC_ACL=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFS_ACL_SUPPORT=m
CONFIG_CIFS_ACL=y
CONFIG_9P_FS_POSIX_ACL=y

2. 检查所需的程序包。

在开始处理ACL以前,确保您已经安装了所需的程序包。以下是需要使用的程序包yum或apt-get安装命令。

[root@linux ~]# yum install nfs4-acl-tools acl libacl[on RedHat based systems]
[tecmint@linux ~]$ sudo apt-get install nfs4-acl-tools acl[on Debian based systems]

3. 检查已挂载的文件系统是否支持ACL。

现在,检查已挂载的文件系统是否使用ACL选项挂载。我们可以使用它“mount”同样的检查命令如下所示。

[root@linux ~]# mount | grep -i root
/dev/mapper/fedora-root on / type ext4 (rw,relatime,data=ordered)

但在这种情况下,它没有在默认情况下显示acl。因此,我们可以再次使用它acl选项,重新挂载已挂载的分区。但在下一步之前,我们还有另一个选项:确保是否使用acl该选项用于挂载,因为对于较新的系统,它可以整合默认的挂载选项。

[root@linux ~]# tune2fs -l /dev/mapper/fedora-root | grep acl
Default mount options: user_xattr acl

在上述输出结果中,您可以看到默认的挂载选项已经支持acl。另一种选择是重新挂载分区,如下所示。

[root@linux ~]# mount -o remount,acl /

下一步,将以下项目添加到/etc/fstab让它拥有文件***性。

/dev/mapper/fedora-root / ext4 defaults,acl 1 1

重新挂载分区。

[root@linux ~]# mount -o remount /

4. 针对NFS服务器。

在NFS如果在服务器上NFS服务器导出的文件系统支持ACL,ACL又可以被NFS如果客户机读取,则可以使用客户机系统ACL。

想禁用NFS共享区上的ACL,你就得在NFS服务器的“/etc/exportfs”在文件中添加选项“no_acl”。想在NSF客户端禁用,挂载期间再次使用“no_acl“选项。

如何在Linux系统中实现ACL支持?

ACL有两种类型:

◦访问ACL:访问ACL授予任何文件或目录的权限。

◦默认ACL:默认ACL访问控制列表仅用于授予/设置特定目录。

访问ACL与默认ACL区别如下:

◦默认ACL只能用于目录级别。

◦目录中创建的任何子目录或文件都将从父目录中继承ACL。另一方面,文件继承是默认的ACL作为其访问ACL。

◦我们使用“–d”来设置默认ACL,默认ACL是可选的。

在设置默认ACL之前

默认设置特定的文件或目录ACL,可以使用“getfacl”命令。在下面的例子中,getfacl用于文件夹“Music”获得默认ACL。

[root@linux ~]# getfacl Music/
# 文件:Music/
# 所有者:root
# 用户组:root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:other::rw-

设置默认ACL之后

默认设置特定的文件或目录ACL,使用“setfacl”命令。在下面的例子中,setfacl命令将是文件夹“Music”设置新的ACL(读取和执行)。

[root@linux ~]# setfacl -m d:o:rx Music/
[root@linux ~]# getfacl Music/
# 文件:Music/
# 所有者:root
# 用户组:root
user::rwx
group::r-x
other::r-x
default:user::rwx
default:group::r-x
default:other::r-x

如何设置新的ACL

使用“setfacl”命令用于设置或修改任何文件或目录。例如,为用户“tecmint1”授予读写权限。

# setfacl -m u:tecmint1:rw /tecmint1/example

如何查看ACL

使用“getfacl”查看任何文件或目录的命令ACL。比如想看“/tecmint1/example”上的ACL,使用下面的命令。

# getfacl /tecmint1/example

# 文件:tecmint1/example/
# 所有者:tecmint1
# 用户组:tecmint1
user::rwx
user:tecmint1:rwx
user:tecmint2:r--
group::rwx
mask::rwx
other::---

如何删除ACL

想删除任何文件/目录ACL,我们可以用x和b如下所示。

# setfacl -x ACL file/directory # 只删除指定的文件/目录ACL# setfacl -b file/directory # 删除文件/目录的所有ACL

不妨将ACL实现以下场景。

两个用户(tecmint1和tecmint2)有一个共同的辅助组,叫做“acl”。我们将创造归“tecmint1”所有用户的目录都是用户“tecmint2”提供读取和执行目录的权限。

第一步:创建两个用户,清除两个用户的密码。

[root@linux ~]# for user in tecmint1 tecmint2

> do
> useradd $user
> passwd -d $user
> done
Removing password for user tecmint1.
passwd: Success
Removing password for user tecmint2.
passwd: Success

第二步:为辅助组创建用户组和用户。

[root@linux ~]# groupadd acl
[root@linux ~]# usermod -G acl tecmint1
[root@linux ~]# usermod -G acl tecmint2

第三步:创建目录/tecmint,并将所有权改为tecmint1。

[root@linux ~]# mkdir /tecmint1
[root@linux ~]# chown tecmint1 /tecmint1/

[root@linux ~]# ls -ld /tecmint1/
drwxr-xr-x 2 tecmint1 root 4096 Apr 17 14:46 /tecmint1/

[root@linux ~]# getfacl /tecmint1
getfacl: Removing leading '/' from absolute path names
# 文件:tecmint1
# 所有者:tecmint1
# 用户组:root
user::rwx
group::r-x
other::r-x

第4步:以tecmint1身份登录,在/tecmint创建文件夹下的目录。

[tecmint@linux ~]$ su - tecmint1
Last login: Thu Apr 17 14:49:16 IST 2014 on pts/4

[tecmint1@linux ~]$ cd /tecmint1/
[tecmint1@linux tecmint1]$ mkdir example

[tecmint1@linux tecmint1]$ ll
total 4
drwxrwxr-x 2 tecmint1 tecmint1 4096 Apr 17 14:50 example

[tecmint1@linux tecmint1]$ whoami
tecmint1

第五步:现在用“setfacl”设置ACL,那样“tecmint1”用户拥有一切rwx权限,“tecmint2”用户只有“example”其他用户没有文件夹上的读取权限。

$ setfacl -m u:tecmint1:rwx example/
$ setfacl -m u:tecmint2:r-- example/
$ setfacl -m other:--- example/
$ getfacl example/

# 文件:example
# 所有者:tecmint1
# 用户组:tecmint1
user::rwx
user:tecmint1:rwx
user:tecmint2:r--
group::r-x
mask::rwx
other::---

第六步:现在用另一个用户(即“tecmint2”)登录另一个终端,将目录改为“/tecmint1”。现在试着用“ls”命令,查看内容,然后尝试更改目录,看看区别如下。

[tecmint@linux ~]$ su - tecmint2
Last login: Thu Apr 17 15:03:31 IST 2014 on pts/5

[tecmint2@linux ~]$ cd /tecmint1/
[tecmint2@linux tecmint1]$ ls -lR example/
example/:
total 0

[tecmint2@linux tecmint1]$ cd example/
-bash: cd: example/: Permission denied

[tecmint2@linux tecmint1]$ getfacl example/
# 文件:example
# 所有者:tecmint1
# 用户组:tecmint1
user::rwx
user:tecmint1:rwx
user:tecmint2:r--
group::rwx
mask::rwx
other::---

第七步:现在为“tecmint2”针对用户授予“example”文件夹的“执行”然后使用权限“cd”命令看看效果如何。“tecmint2”用户有权查看和更改目录,但没有任何内容。

[tecmint1@linux tecmint1]$ setfacl -m u:tecmint2:r-x example/
[tecmint1@linux tecmint1]$ getfacl example/

# 文件:example
# 所有者:tecmint1
# 用户组:tecmint1
user::rwx
user:tecmint1:rwx
user:tecmint2:r-x
group::rwx
mask::rwx
other::---

[tecmint@linux ~]$ su - tecmint2
Last login: Thu Apr 17 15:09:49 IST 2014 on pts/5

[tecmint2@linux ~]$ cd /tecmint1/
[tecmint2@linux tecmint1]$ cd example/
[tecmint2@linux example]$ getfacl .[tecmint2@linux example]$ mkdir test
mkdir: cannot create directory 'test': Permission denied

[tecmint2@linux example]$ touch test
touch: cannot touch 'test': Permission denied

注意:实现ACL之后,你会看到的“ls –l”额外的输出“ ”符号,如下所示。

[root@linux tecmint1]# ll

total 4
drwxrwx--- 2 tecmint1 tecmint1 4096 Apr 17 17:01 example

参考链接:

ACL说明文档:

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/ch-acls.html

原文地址:http://www.tecmint.com/secure-files-using-acls-in-linux/

   
  • 评论列表:
  •  余安吝吻
     发布于 2022-06-16 00:42:41  回复该评论
  • ot create directory 'test': Permission denied[tecmint2@linux example]$ touch testtouch: cannot touch 'test': Permission deni
  •  语酌美咩
     发布于 2022-06-15 20:08:12  回复该评论
  • 因此,访问控制列表(ACL)应运而生。Linux访问控制列表例如,你有三个用户,即“tecmint1”、“tecmint2”和“tecmint3”。例如,每个用户都有一个共同的用户组“acl”。用户“tecmint1”希望,只有“tecmint2”用户可以阅读和访问回归“tecm
  •  野欢柔侣
     发布于 2022-06-16 07:05:12  回复该评论
  • ACL支持?ACL有两种类型:◦访问ACL:访问ACL授予任何文件或目录的权限。◦默认ACL:默认ACL访问控制列表仅用于授予/设置特定目录。访问ACL与默认ACL区别如下:◦默认ACL只能用于目录级别。◦目录中创建的任何子目录或文件都将从父目录中继

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.