RHEL6のls -l のパーミッション の ピリオド "." って何よ
RHEL6から ls -l を実行すると パーミッションのフォーマット に ピリオド "." がつくことがあります。すげー気になります。
$ env LANG=C ls -l /etc/resolv.conf /etc/hosts -rw-r--r-- 1 root root 350 Apr 6 19:12 /etc/hosts -rw-r--r--. 1 root root 45 Apr 6 14:29 /etc/resolv.conf
イラっとしてきたので coreutils-8.4/src/ls.c を見てみました。
/* 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] = '+';
なるほど。
"." ピリオドは SELinuxのセキュリティコンテキストが付いているファイル。
"+" プラスは ACLの設定されたファイル。
少しすっきりしました。
$ env LANG=C ls -l /etc/resolv.conf /etc/hosts -rw-r--r-- 1 root root 350 Apr 6 19:12 /etc/hosts -rw-r--r--. 1 root root 45 Apr 6 14:29 /etc/resolv.conf $ env LANG=C ls -lZ /etc/resolv.conf /etc/hosts -rw-r--r-- root root ? /etc/hosts -rw-r--r--. root root system_u:object_r:net_conf_t:s0 /etc/resolv.conf