作为一个系统管理 ,我们的首要任务将是保护和未经授权的访问安全的数据。 我们都知道我们设置使用一些像CHMOD,CHOWN,chgrp命令 ......等有用的Linux命令然而,这些缺省权限设置有一些限制,有时可能不按我们的需要的工作权限。 例如,我们无法为同一目录或文件上的不同用户设置不同的权限集。 因此, 访问控制列表 (ACL)进行了实施。

Linux访问控制列表

比方说,你有三个用户,“howtoing1','howtoing2'和'howtoing3”。 每一个有共同组说' 的ACL'。 用户howtoing1'想,只有“howtoing2”用户可以读取和'howtoing1'并没有其他人拥有的访问文件应该对任何访问。

ACL S( 访问控制列表 )允许我们做同样的伎俩。 这些ACL允许我们授予权限的用户 , 组和不属于在用户的组列表中的任何用户的任一组。

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

如何检查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][howtoing@linux ~]$ sudo apt-get install nfs4-acl-tools acl[on Debian based systems]

3.检查安装的文件系统的ACL支持

现在,检查已装入的文件系统是否已使用ACL选项装入。 我们可以用'坐骑 '命令,如下图所示检查一样。[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服务器上,如果NSF服务器导出的文件系统支持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用于获取一个文件夹“ 音乐 ”的默认ACL。[root@linux ~]# getfacl Music/

# file: Music/

# owner: root

# group: root

user::rwx

group::r-x

other::r-x

default:user::rwx

default:group::r-x

default:other::rw-

设置默认ACL后

要设置默认的ACL特定文件或目录,使用'setfacl的 '命令。 在下面的例子中,setfacl命令将设置一个新的ACL上的文件夹“ 音乐”( 读取和执行 )。[root@linux ~]# setfacl -m d:o:rx Music/

[root@linux ~]# getfacl Music/

# file: Music/

# owner: root

# group: root

user::rwx

group::r-x

other::r-x

default:user::rwx

default:group::r-x

default:other::r-x

如何设置新的ACL

设置或修改的任何文件或目录使用“setfacl的'命令。 例如,给读取和写入权限用户howtoing1“。# setfacl -m u:howtoing1:rw /howtoing1/example

如何查看ACL

对任何文件或目录的访问控制列表查看使用“getfacl的说明书 ”命令。 例如,要查看下面的命令“/ howtoing1 /例如 ”使用访问控制列表。# getfacl /howtoing1/example

# file: howtoing1/example/

# owner: howtoing1

# group: howtoing1

user::rwx

user:howtoing1:rwx

user:howtoing2:r--

group::rwx

mask::rwx

other::---

如何删除ACL

对于从任意文件/目录去除ACL时,我们用x和b的选择,如下所示。# setfacl -x ACL file/directory # remove only specified ACL from file/directory.

# setfacl -b file/directory #removing all ACL from file/direcoty

让我们在下面的场景中实现ACL。

两个用户(howtoing1和howtoing2),名为“ACL”双方有共同的辅助组。 我们将创建由“howtoing1”拥有一个目录,并提供读取 ,并在该目录执行权限给用户howtoing2“。

第1步:创建两个用户,并从两个删除密码[root@linux ~]# for user in howtoing1 howtoing2

> do

> useradd $user

> passwd -d $user

> done

Removing password for user howtoing1.

passwd: Success

Removing password for user howtoing2.

passwd: Success

第2步:创建一个组和用户的二级集团。[root@linux ~]# groupadd acl

[root@linux ~]# usermod -G acl howtoing1

[root@linux ~]# usermod -G acl howtoing2

第3步:创建目录/ howtoing并更改所有权howtoing1。[root@linux ~]# mkdir /howtoing1

[root@linux ~]# chown howtoing1 /howtoing1/[root@linux ~]# ls -ld /howtoing1/

drwxr-xr-x 2 howtoing1 root 4096 Apr 17 14:46 /howtoing1/[root@linux ~]# getfacl /howtoing1

getfacl: Removing leading '/' from absolute path names

# file: howtoing1

# owner: howtoing1

# group: root

user::rwx

group::r-x

other::r-x

第4步:登录并howtoing1并创建/ howtoing文件夹的目录。[howtoing@linux ~]$ su - howtoing1

Last login: Thu Apr 17 14:49:16 IST 2014 on pts/4[howtoing1@linux ~]$ cd /howtoing1/

[howtoing1@linux howtoing1]$ mkdir example[howtoing1@linux howtoing1]$ ll

total 4

drwxrwxr-x 2 howtoing1 howtoing1 4096 Apr 17 14:50 example[howtoing1@linux howtoing1]$ whoami

howtoing1

第5步:使用“setfacl的 ',让'howtoing1”将所有的rwx权限,“howtoing2'只会对” 示例 “文件夹读取权限,其他就没有权限现在设置访问控制列表。$ setfacl -m u:howtoing1:rwx example/

$ setfacl -m u:howtoing2:r-- example/

$ setfacl -m other:--- example/

$ getfacl example/

# file: example

# owner: howtoing1

# group: howtoing1

user::rwx

user:howtoing1:rwx

user:howtoing2:r--

group::r-x

mask::rwx

other::---

第6步:现在与其他用户即“howtoing2'上的另一端和目录更改为'/ howtoing1”登录。 现在尝试查看使用'ls'的命令的内容,然后尝试改变目录,看看下面的区别。[howtoing@linux ~]$ su - howtoing2

Last login: Thu Apr 17 15:03:31 IST 2014 on pts/5[howtoing2@linux ~]$ cd /howtoing1/

[howtoing2@linux howtoing1]$ ls -lR example/

example/:

total 0[howtoing2@linux howtoing1]$ cd example/

-bash: cd: example/: Permission denied[howtoing2@linux howtoing1]$ getfacl example/

# file: example

# owner: howtoing1

# group: howtoing1

user::rwx

user:howtoing1:rwx

user:howtoing2:r--

group::rwx

mask::rwx

other::---

第7步:现在给“ 执行 ”权限在“ 示例 ”文件夹“howtoing2”,然后用“CD”命令来查看效果。 现在,“howtoing2'有权限查看和更改目录,但不具备写任何东西的权限。[howtoing1@linux howtoing1]$ setfacl -m u:howtoing2:r-x example/

[howtoing1@linux howtoing1]$ getfacl example/

# file: example

# owner: howtoing1

# group: howtoing1

user::rwx

user:howtoing1:rwx

user:howtoing2:r-x

group::rwx

mask::rwx

other::---[howtoing@linux ~]$ su - howtoing2

Last login: Thu Apr 17 15:09:49 IST 2014 on pts/5[howtoing2@linux ~]$ cd /howtoing1/

[howtoing2@linux howtoing1]$ cd example/

[howtoing2@linux example]$ getfacl .[howtoing2@linux example]$ mkdir test

mkdir: cannot create directory ‘test’: Permission denied[howtoing2@linux example]$ touch test

touch: cannot touch ‘test’: Permission denied

注 :实施ACL之后,您将看到“ls -l命令”下面输出额外的“+”号。[root@linux howtoing1]# ll

total 4

drwxrwx---+ 2 howtoing1 howtoing1 4096 Apr 17 17:01 example

参考链接

acl在内核里的位置_在Linux中使用ACL(访问控制列表)保护文件/目录相关推荐

  1. acl在内核里的位置_访问控制列表的使用原则是在靠近源的位置应用基本ACL,在靠近目的的位置应用高级ACL。_学小易找答案...

    [单选题]根据公司的发展,你认为该公司最可能采用的部门化方式是 [多选题]ACl中可以关联一下哪些行为? [单选题]你认为本案例最能说明的管理原则是 [简答题]В тексте мы столкнул ...

  2. pg数据库执行sql文件_在linux中Postgresql数据库如何执行脚本文件

    在linux中Postgresql数据库如何恢复数据库?执行sql脚本文件呢?具体步骤如下: 一.恢复数据库备份文件 1.将数据库备份文件xxx.backup用连接工具拷贝到/opt下,这个不固定,位 ...

  3. acl在内核里的位置_Linux 进程在内核眼中是什么样子的?

    本篇算是进程管理的的揭幕篇,简单介绍一个进程在内核眼里的来龙去脉,为接下来的进程创建,进程调度,进程管理等篇章做好学习准备. 从程序到进程再到内核 啥是程序,啥是进程,一张图可以给我们解释: 程序转换 ...

  4. acl在内核里的位置_Windows 注入篇 之 内核 APC 注入

    一.Windows 下进程创建过程概述: 1. 应用层通过CreateProcess发起进程创建,然后进入系统调用. 2. 系统调用中通过 NtCreateProcess,创建进程的各种资源(内存空间 ...

  5. linux内核锁死怎么解决_解决Linux内核中的2038年问题

    linux内核锁死怎么解决 由于时间在Linux中的表示方式,带符号的32位数字无法支持20:38(UTC)3:14:07之后的时间. 2038年 (Y2038或Y2K38)问题是关于时间数据类型表示 ...

  6. linux内核grub的作用与用途,linux中grub是干嘛的

    1. 前言 本文主要讲解Linux 原生的启动引导程序GRUB的原理及功能. grub如何引导操作系统的启动 2. 什么是grub GRUB(Grand Unified Bootloader)是GNU ...

  7. windows linux cpu 抢占式 时间片_嵌入式Linux中进程调度怎样来解析

    合作微信:xydf321456 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户.多任务.支持多线程和多CPU的操作系统.它能运行主要的UNIX工具软件. ...

  8. linux中的acl权限,linux中的权限和ACL

    权限,特殊权限,FACL 用ls -l filename 可以查看文件或者目录的详细信息,具体分析一下 在第一个空格前,有10个字段,第一个"-"表示文件类型,后边"rw ...

  9. linux中一切都是文件_在Linux中,“一切都是文件”是什么意思?

    linux中一切都是文件 One of the defining features of Linux and other UNIX-like operating systems is that &qu ...

最新文章

  1. Node.js链式回调
  2. aspxgridview 增加行号
  3. 【APICloud系列|11】使用APPuploader申请ios开发证书及ios发布证书教程
  4. 计算机考试单招考试面试,单招计算机面试题.docx
  5. 【牛客 - 283F】出装方案(最小费用最大流)
  6. js php c语言for循环,小蚂蚁学习C语言(8)——C语言for循环
  7. 译 - Cassandra 数据建模的基本规则
  8. 自然语言处理--中文文本向量化counterVectorizer()
  9. Dempster-Shafer Evidence Theory
  10. 浅论汽车电子行业的汽车开放系统架构AUTOSAR
  11. python爬虫学习,使用requests库来实现模拟登录4399小游戏网站。
  12. 【译】3D打印:介绍
  13. 被遗忘的设计模式——空对象模式(转载)
  14. 工具篇:这可能是全 GitHub 最牛逼的抢票神器!
  15. 我的世界基岩版红石教程(超简单)2
  16. Git ~ commit 规范
  17. DICOM图像全方位解读
  18. fortran2010编译出错,无法找到exe文件的解决方法
  19. 网上图书购买系统项目
  20. Win10 设置显示 ClearType 的设置

热门文章

  1. ue4蓝图运行顺序_UE4蓝图解析(四)
  2. android 代码循环,Android – 每5秒循环一部分代码
  3. linux内核串口调试,linux 串口调试方法
  4. 条件运算符的嵌套问题
  5. mysql1558错误,mysql删除用户错误ERROR 1558解决办法
  6. python判断性别程序设计_python基础15 ---面像对象的程序设计
  7. Spring Cloud 之 Eureka.
  8. 微信开发经常会用到的一些方法
  9. Python基础教程 第六章 学习笔记
  10. ABAP 常用FUNCTION (最近工作中用到的)