欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Linux文件权限属性后面的点的含义 权限点号(ls -l)

今天突然注意到$ls -l显示文件时,权限列后面有个点。 
如:

-rw-rw-r--.  1 user group    13767 1225 2014 index.html
  • 1

解释: 
开启了SELinux功能的Linux系统才会有这个点。 
那个点表示文件带有“SELinux的安全上下文”。 
CentOS7默认是开启SELinux的,所以会有这个点, 
如果关闭SELinux,然后再创建文件,新创建的文件就不会再有这个点了, 
但是以前创建的文件本来有这个点的还会显示这个点(虽然SELinux不起作用了)。

参考下边命令应该能得到答案

$info coreutils 'ls invocation' 
  • 1

Following the file mode bits is a single character that specifies 
whether an alternate access method such as an access control list 
applies to the file. When the character following the file mode 
bits is a space, there is no alternate access method. When it is 
a printing character, then there is such a method. 
在文件权限位后面,附加有一个单字符。用来表示是否有一个 
可替换的访问控制措施应用在这个文件上。例如,访问控制列表(ACL,access control list)。 
当文件权限位后面附加的是一个空格时,表示系统没有可替换的访问控制措施。 
当是一个可打印字符时,表示系统存在这样一个访问控制措施。

GNU ‘ls’ uses a ‘.’ character to indicate a file with an SELinux 
security context, but no other alternate access method. 
GNU的ls命令使用 ‘.’字符表示文件使用了SELinux安全上下文, 
但是没有使用其他的访问控制措施。

A file with any other combination of alternate access methods is 
marked with a ‘+’ character. 
一个文件结合了其他访问控制措施,文件用‘+’字符标记 。(如:ACL)

一个文件就算没有SELinux上下文,只用应用ACL,也能标记成‘+’字符。 
一个文件有SELinux上下文,也有ACL,也标记成‘+’字符。 
例如:

# ll -Z
-rw-r--r--  root root ?                                a.file  #没有SElinux上下文,没有ACL
-rw-r--r--+ root root ?                                b.file  #只有ACL,没有SElinux上下文
-rw-------. root root system_u:object_r:admin_home_t:s0 my.cnf #只有SElinux上下文,没有ACL
-rw-rw-r--+ root root unconfined_u:object_r:user_tmp_t:s0 dd.c #有SElinux上下文,有ACL

来自  https://blog.csdn.net/xinlongabc/article/details/46801641


rwxr-xr-x. linux权限后面的点代表什么?

depponhy | 浏览 7323 次 |举报
我有更好的答案
推荐于2018-03-04 14:52:40最佳答案
是ACL类型,(.)点是ACL_T_SELINUX_ONLY, (+)加是ACL_T_YES,空白是没有ACL。
ACL 是访问控制列表Access Control List

参考:
http://www.ibm.com/developerworks/cn/linux/l-acl/

ls工具部分代码:
/* Compute the mode string, except remove the trailing space if no
file in this directory has an ACL or SELinux security context. */
if (f->stat_ok)
filemodestring (&f->stat, modebuf);
else
{
modebuf[0] = filetype_letter[f->filetype];
memset (modebuf + 1, '?', 10);
modebuf[11] = '\0';
}
if (! any_has_acl)
modebuf[10] = '\0';
else if (f->acl_type == ACL_T_SELINUX_ONLY)
modebuf[10] = '.';
else if (f->acl_type == ACL_T_YES)
modebuf[10] = '+';

叶叶叶Yeah 

采纳率:27% 擅长: 电脑/网络 电子数码 烦恼

其他回答

应该是有附加属性。不过是什么附加我就不知道了。
我只记得 + 是 acl 。点是什么没印象。
jiangtao9999  | 发布于2013-07-04
举报| 评论 
1 1
其他 组或者用户 可以执行 这个文件。

来自 https://zhidao.baidu.com/question/564633049.html


CentOS权限字段后面的点表示什么?

百度也没找到什么,感觉没说服力;google因为没梯子,所以来这里问问。
CentOS权限字段后面的点表示什么,图示如下:

1 个回答

1

已采纳

貌似这是SELinux定义的访问权限,具体可参考http://superuser.com/questions/230559/what-does-the-dot-mean-at-the-en...

附一段ls.c的代码

if (! any_has_acl)
    modebuf[10] = '\0';
  else if (f->acl_type == ACL_T_SELINUX_ONLY)
    modebuf[10] = '.';
  else if (f->acl_type == ACL_T_YES)
    modebuf[10] = '+';

这个就是mode的第十一位的几种情况

来自  https://segmentfault.com/q/1010000002654861/a-1020000002654921


文件在权限之后有一个点,干吗用的

本帖最后由 chenyx 于 2011-08-16 14:21 编辑

-rw-rw-r--. 1 root utmp 456192  8月 16 09:41 /var/log/wtmp
-rw-r--r--  1 root root 456192  8月 16 10:04 wtmp


第一个文件在权限之后有一个点。干吗用的?

.是启用selinux的标志

你ls -lZ看下


    FreeBSD和Linux对ls -Z的解释怎么不一样
BSD:

Display each file's MAC label; see maclabel(7).


Linux:

       -Z, --context
              Display security context so it fits on most displays.   Displays
              only mode, user, group, security context and file name.

selinux,增强安全LINUX,2.6内核新加入的特性。


来自  http://bbs.chinaunix.net/thread-3582221-1-1.html


普通分类: