论坛风格切换切换到宽版
  • 1747阅读
  • 3回复

[问题求助][RedHat] 关于getfacl命令的问题 [复制链接]

上一主题 下一主题
离线wx8052.
 
发帖
1934
C币
-235534
威望
393
贡献值
1
银元
-1
铜钱
4518
人人网人气币
0
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-05-01
系统调用表sys_call中也没有实现getfacl的系统调用,请问getfacl是.怎么实现的呢?有g.etfacl的源代码吗?投资

初识linu.x还望高手不吝指教!谢谢。.

[ 本帖最后由. jacky7.27 于 2008-12-5 10:55 编辑 ][成人用品]

评价一下你浏览此帖子的感受

精彩

感动

搞笑

开心

愤怒

无聊

灌水
离线ft16.
发帖
2054
C币
-198567
威望
421
贡献值
2
银元
0
铜钱
4653
人人网人气币
0
只看该作者 沙发  发表于: 2010-04-14
Re:[RedHat]
源码在发行版本中会有的,还是首先看看setfacl和getfacl的用途
setfacl,getfacl.
这个命令都有acl.
acl 全称 Access Control Lists 翻译成中文叫"访问控制列表",传统的 Linux 文件系统的权限控制是通过 user、group、other 与 r(读)、w(写)、x(执行) 的不同组合来实现的。随着应用的发展,这些权限组合已不能适应现时复杂的文件系统权限控制要求。 例如,目录 /data 的权限为:drwxr-x---,所有者与所属组均为 root,在不改变所有者的前提下,要求用户 tom 对该目录有完全访问权限 (rwx).考虑以下2种办法 (这里假设 tom 不属于 root group)
(1) 给 /data 的 other 类别增加 rwx permission,这样由于 tom 会被归为 other 类别,那么他也将拥有 rwx 权限。
(2) 将 tom 加入到 root group,为 root group 分配 rwx 权限,那么他也将拥有 rwx 权限。
以上 2 种方法其实都不合适,所以传统的权限管理设置起来就力不从心了。
为了解决这些问题,Linux 开发出了一套新的文件系统权限管理方法,叫文件访问控制列表 (Access Control Lists, ACL)。简单地来说,ACL 就是可以设置特定用户或者用户组对于一个文件的操作权限。
ACL 有两种,一种是存取 ACL (access ACLs),针对文件和目录设置访问控制列表。一种是默认 ACL (default ACLs),只能针对目录设置。如果目录中的文件没有设置 ACL,它就会使用该目录的默认 ACL.
首先我来讲一下getfacl ( 显示文件或目录的 ACL)
在我的电脑里首先有一个用户叫NEU.我们学校的简称.同时还有一个用户,software,我的专业名称.
以neu用户进行操作,在其目录下建立一个文件fileofneu.
可以看到它的初始权限为-rw-rw-r--然后我把这个文件权限进行下修改.使用的命令为chmod,修改后的文件权限为-rw-rw----现在这个文件的权限就不允许其它用户访问了.
然后切换到sofeware用户,来证实这个文件的不可访问性.
下面我们就通过getfacl命令来查看.这时候得进入neu用户下操作了.其命令格式很简单:getfacl fileofneu
权限一目了然.不多介绍了,下面就要用Setfacl来进行修改了.使其在对于其它用户的权限里,只对software用户只读只写.
setfacl -m u:softeware:rw- fileofneu
然后用getfacl命令来进行查看.我们就可以看到多了一行user:software:rw- 这说明其对用户software开放了读写的权限.
为了证实其可用性,再切换到software用户下访问这个文件,发现与前面不同的是,这回可以读写了.

1
评分人数kenduest: 似乎有灌水嫌疑可用积分 -1
__________________________________
有问题加QQ964891849 ,遇忙邮件lvsheat@qq.comLVS-HOWTO中文翻译计划
Linux开源技术指导
提供专业Linux技术支持,Linux系统定制指导



Novell Linux迁移有奖大调查!| Oracle顶级认证,OCM:高薪的象征 | 《开源时代》2010年第三期! | 2010数据库技术大会报名啦


kenduest
小州
发短消息
加为好友
kenduest 当前离线
小州
UID12178244 帖子8807 精华1 积分5651 可用积分5651  信誉积分100  专家积分319  空间积分0  阅读权限100 性别男 来自sayya taiwan 在线时间7 小时 注册时间2005-06-07 最后登录2010-02-10
版主

帖子8807 主题13 精华1 可用积分5651  专家积分319  来自sayya taiwan 在线时间7 小时 注册时间2005-06-07 最后登录2010-02-10 状态:...当前离线...
[微博] [博客] [短信] 3楼 发表于 2008-12-05 13:12 | 只看该作者




QUOTE:原帖由 jacky727 於 2008-12-5 10:36 發表
系統調用表sys_call中也沒有實現getfacl的系統調用,請問getfacl是怎麼實現的呢?有getfacl的源代碼嗎?


這些是你想知道的嗎?

man 2 setxattr

NAME

       setxattr, lsetxattr, fsetxattr - set an extended attribute value



VERSIONS

       These system calls have been available on Linux since kernel 2.4; glibc  support  is

       provided since version 2.3.



CONFORMING TO

       These system calls are Linux-specific.
复制代码

离线seaspirit.
发帖
2029
C币
-60633
威望
359
贡献值
1
银元
-2
铜钱
4429
人人网人气币
0
只看该作者 板凳  发表于: 2010-04-14
Re:[RedHat]
谢谢 kns1024wh

这么认真负责的实习版主,为什么会被评论有灌水嫌疑呢?
怎么评论的?替你喊冤

离线kevin0426.
发帖
2245
C币
-192909
威望
427
贡献值
1
银元
-3
铜钱
5091
人人网人气币
0
只看该作者 地板  发表于: 2010-04-14
Re:[RedHat]
这是因为,不同的os对acl的支持不一样。
在freebsd、solaris、hp-ux等os中都有单独的acl的系统调用,但是在linux中,acl是通过EA(扩展属性)实现的,因此没有显示的acl调用接口,而是通过EA的接口进行操作的。

[ 本帖最后由 rsmcu 于 2009-5-5 23:56 编辑 ]
快速回复
限100 字节
如果您在写长篇帖子又不马上发表,建议存为草稿
 
上一个 下一个