如何在Linux下设置访问控制列表(ACL)来控制用户的权限

如何在Linux下设置访问控制列表(ACL)来控制用户的权限,第1张

Linux下的访问控制列表(ACL)主要用来控制用户权限,可以做到不同用户对同一文件有不同的权限,那么具体要如何 *** 作呢?下面小编就教你如何在Linux下设置访问控制列表(ACL)来控制用户的权限。

使用拥有权限控制的Liunx,工作是一件轻松的任务。它可以定义任何user,group和other的权限。无论是在桌面电脑或者不会有很多用户的虚拟Linux实例,或者当用户不愿意分享他们之间的文件时,这样的工作是很棒的。然而,如果你是在一个大型组织,你运行了NFS或者Samba服务给不同的用户,然后你将会需要灵活的挑选并设置很多复杂的配置和权限去满足你的组织不同的需求。

Linux(和其他Unix等POSIX兼容的 *** 作系统)有一种被称为访问控制列表(ACL)的权限控制方法,它是一种权限分配之外的普遍范式。例如,默认情况下你需要确认3个权限组:owner、group和other。而使用ACL,你可以增加权限给其他用户或组别,而不单只是简单的“other”或者是拥有者不存在的组别。可以允许指定的用户A、B、C拥有写权限而不再是让他们整个组拥有写权限。

ACL支持多种Linux文件系统,包括ext2, ext3, ext4, XFS, Btfrs, 等。如果你不确定你的文件系统是否支持ACL,请参考文档。

在文件系统使ACL生效

首先,我们需要安装工具来管理ACL。

Ubuntu/Debian 中:

$ sudo apt-get install acl

CentOS/Fedora/RHEL 中:

# yum -y install acl

Archlinux 中:

# pacman -S acl

出于演示目的,我将使用ubuntu server版本,其他版本类似。

安装ACL完成后,需要激活我们磁盘分区的ACL功能,这样我们才能使用它。

首先,我们检查ACL功能是否已经开启。

$ mount

你可以注意到,我的root分区中ACL属性已经开启。万一你没有开启,你需要编辑/etc/fstab文件,在你需要开启ACL的分区的选项前增加acl标记。

现在我们需要重新挂载分区(我喜欢完全重启,因为我不想丢失数据),如果你对其它分区开启ACL,你必须也重新挂载它。

$ sudo mount / -o remount

干的不错!现在我们已经在我们的系统中开启ACL,让我们开始和它一起工作。

ACL 范例

基础ACL通过两条命令管理:setfacl用于增加或者修改ACL,getfacl用于显示分配完的ACL。让我们来做一些测试。

我创建一个目录/shared给一个假设的用户,名叫freeuser

$ ls -lh /

我想要分享这个目录给其他两个用户test和test2,一个拥有完整权限,另一个只有读权限。

首先,为用户test设置ACL:

$ sudo setfacl -m u:test:rwx /shared

现在用户test可以随意创建文件夹,文件和访问在/shared目录下的任何地方。

现在我们增加只读权限给用户test2:

$ sudo setfacl -m u:test2:rx /shared

注意test2读取目录需要执行(x)权限

让我来解释下setfacl命令格式:

-m 表示修改ACL。你可以增加新的,或修改存在的ACLu: 表示用户。你可以使用 g 来设置组权限test 用户名:rwx 需要设置的权限。

现在让我向你展示如何读取ACL:

$ ls -lh /shared

你可以注意到,正常权限后多一个+标记。这表示ACL已经设置成功。要具体看一下ACL,我们需要运行:

$ sudo getfacl /shared

最后,如果你需要移除ACL:

$ sudo setfacl -x u:test /shared

如果你想要立即擦除所有ACL条目:

$ sudo setfacl -b /shared

最后,在设置了ACL文件或目录工作时,cp和mv命令会改变这些设置。在cp的情况下,需要添加“p”参数来复制ACL设置。如果这不可行,它将会展示一个警告。mv默认移动ACL设置,如果这也不可行,它也会向您展示一个警告。

总结

使用ACL让在你想要分享的文件上拥有更多的能力和控制,特别是在NFS/Samba服务。此外,如果你的主管共享主机,这个工具是必备的。

上面就是Linux下设置访问控制列表来控制用户权限的方法介绍了,因为ACL的配置和使用较为复杂,初学者在使用的时候容易出现错误,希望本文介绍的方法能够帮助到你。

嵌入式开发板到手后一般都会开放串口,对串口的 *** 作可以说是最基本的 *** 作,那么拿到开发板后怎样 *** 作串口呢?怎样利用串口向外发送数据呢?

我做的是一个通过串口来发送一串字符,实现NBIot的传输,系统是linux系统下的,发送的数据需要是16进制的数据。以下是c语言开发串口的相关代码记录。

1.找到串口的设备号

在linux系统下,所有的设备都是文件,所以要先找到串口这个设备文件,之后就可以对这个串口进行 *** 作。

#define UART_DEV "/dev/ttyAMA2"

2.打开串口并初始化串口

串口的打开只需要一个open函数就可以打开,下面有一个初始化的函数,先将串口打开,如果打开成功,会返回一个设备描述符。

在实际工作中,桌面系统用的最多还是Windows,怎么在Linux桌面远程控制Windows系统呢。

现在通过rdesktop软件就能方便的远程控制。。。首先要安装这个软件。

我的linux系统:Redhat enterprise linux 5

下面我们来安装rdesktop软件:

[root@Wang Server]# rpm -ivh rdesktop-1.4.1-4.i386.rpm

[root@Wang Server]# rdesktop --help

rdesktop: invalid option -- -

rdesktop: A Remote Desktop Protocol client.

Version 1.4.1. Copyright (C) 1999-2005 Matt Chapman.

See http://www.rdesktop.org/ for more information.

Usage: rdesktop [options] server[:port]

-u: user name

-d: domain

-s: shell

-c: working directory

-p: password (- to prompt)

-n: client hostname

-k: keyboard layout on server (en-us, de, sv, etc.)

-g: desktop geometry (WxH)

-f: full-screen mode连接后是否显示全屏

-b: force bitmap updates

-L: local codepage

-B: use BackingStore of X-server (if available)

-e: disable encryption (French TS)

-E: disable encryption from client to server

-m: do not send motion events

-C: use private colour map

-D: hide window manager decorations

-K: keep window manager key bindings

-S: caption button size (single application mode)

-T: window title

-N: enable numlock syncronization

-X: embed into another window with a given id.

-a: connection colour depth 连接后显示的位色,比如有8位色,16位色,24位色

-z: enable rdp compression

-x: RDP5 experience (m[odem 28.8], b[roadband], l[an] or hex nr.)

-P: use persistent bitmap caching

-r: enable specified device redirection (this flag can be repeated)

'-r comport:COM1=/dev/ttyS0': enable serial redirection of /dev/ttyS0 to COM1

or COM1=/dev/ttyS0,COM2=/dev/ttyS1

'-r disk:floppy=/mnt/floppy': enable redirection of /mnt/floppy to 'floppy' share

or 'floppy=/mnt/floppy,cdrom=/mnt/cdrom'

'-r clientname=<client name>': Set the client name displayed

for redirected disks

'-r lptport:LPT1=/dev/lp0': enable parallel redirection of /dev/lp0 to LPT1

or LPT1=/dev/lp0,LPT2=/dev/lp1

'-r printer:mydeskjet': enable printer redirection

or mydeskjet="HP LaserJet IIIP" to enter server driver as well

'-r sound:[local|off|remote]': enable sound redirection

remote would leave sound on server

-0: attach to console

-4: use RDP version 4

-5: use RDP version 5 (default)

[root@Wang Server]# rdesktop -u administrator 192.168.0.196

现在已经成功连接到192.168.0.196那台机子上。。。。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8325171.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-15
下一篇2023-04-15

发表评论

登录后才能评论

评论列表(0条)

    保存