linux中文件的查看和acl的权限列表

1.文件属性的查看

ls -l filename

[root@localhost ~]# touch file
[root@localhost ~]# ls -l file

-      rw-r--r-- 1     root   root        0          Apr 24 :05:43             file

[1]    [2]       [3]      [4]     [5]         [6]                     [7]                     [8]

[1]        #一号位代表文件的属性
-        #普通文件
d        #目录
s        #socket套接子
l        #软链接
p        #管道
c        #字符设备

b        #块设备



[2]        ##读写权限
rw-|rw-|r--
 @   $   *

@        #文件拥有者对文件能做的动作
$        #文件所在组的组成员能对文件做的动作
*        #其他人对与文件能做的动作

[3]        #文件内容被系统记录的次数

[4]        #文件拥有者
[5]        #文件所在组
[6]        #文件大小
[7]        #文件最后一次被更改的时进
[8]        #文件名称

2.查看目录属性
ls -ld    directoy
d   rwxr-xr-x  3     kiosk kiosk  33     Aug 27 09:47         directory
[1]    [2]        [3]        [4]    [5]  [6]      [7]                  [8]

[1]        ##类型(同文件)
[2]        ##权限
[3]        ##子目录个数
[4]        ##目录拥有者
[5]        ##目录所在组
[6]        ##目录中内容的属性的大小
[7]        ##目录中文件增加或减少或被更名的时间
[8]        ##目录名称
[root@localhost ~]# mkdir westos
[root@localhost ~]# ls -ld westos

d rwxr-xr-x 2 root root 6 Apr 24 06:00 westos

所以这列信息可表示为【目录】【文件拥有者对文件能做的动作为rwx】【文件所在组的组成员能对文件做的动作为rx】【其他人对文件只能做读r的动作】,子目录的个数为两个 在root用户组下的root用户,文件大小为6,创建于4.24 6点 名字为westos

3.文件用户组的更改
chown    用户名称    文件    ##更改文件所有人
chgrp    组名称        文件    ##更改文件所有组
chown -R 用户        目录    ##更改目录本身以及目录中的子文件的所有人
chgrp -R 组名        目录    ##更改目录本身以及目录中的子文件的所有组
[root@localhost ~]# useradd test  用useradd 添加用户
[root@localhost ~]# touch westos  
[root@localhost ~]# ls -dl westos
drwxr-xr-x 2 root root 6 Apr 25 04:36 westos
[root@localhost ~]# chown test westos  
[root@localhost ~]# ls -dl westos

drwxr-xr-x 2 test root 6 Apr 25 04:36 westos



[root@localhost ~]# groupadd westos 用groupadd添加组

[root@localhost ~]# chgrp westos westos
[root@localhost ~]# ls -dl westos

drwxr-xr-x 2 test westos 6 Apr 25 04:36 westos


4.权限的识别
ls -l 中2-10字符为文件权限
rwx           r-x                r-x
用户权限(u)     组成员权限(g)      其他用户权限(o)

权限种类
r
r权限针对文件,表示可以查看文件内容
r权限针对目录,表示可以ls 查看目录中存在的文件名称

w
w权限针对文件,表示可以更改文件的内容
w权限针对目录,表示是否可以删除目录中的子文件或者子目录

x
x权限对于文件,表示是否可以开启文件当中记录的程序
x权限对于目录,表示是否可以进入目录中

chmod    ugo+-=rwx    ##改权限   chmod 为命令 u,g,o后面加或者减=权限

u=rwx=7    |g=rwx=7|o=rwx=7   最高权限为777
  421
u=rw-=6 g=r--=4 o=r--=4   644
r=4
w=2
x=1

-=0

wx=3

r-x=5

rw=6


7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---



5.文件的默认权限
umask    ##显示系统预留权限值
umask 077    ##临时修改umask值

##永久修改
vim /etc/bashrc        71行是普通用户的更改,73是超级用户的更改
vim /etc/profile    60行是普通用户的更改,62是超级用户的更改

source /etc/bashrc     ##刷新bash配置
source /etc/profile     ##刷新系统配置

6.特殊权限
stickyid    ###强制位
o+t    ###之针对目录,当一个目录上有t权限时,这个目录中的文件只能被文件拥有者删除
t=1
chmod o+t directroy
chmod 1777 directory

sgid        ###粘制位
g+s        ##针对目录,在目录中创建的文件都自动归属到目录所在组,针对二进制文件,文件内记录的程序在执行时和执行者的组身份没有关系,而是以二进制文件的所有组的身份执行的
chmod g+s file|directory
chmod 2777 file|directory


suid        ###冒险位
u+s        ###针对文件,文件记录动作在执行时是一文件所有人身份执行的,与是谁发起的无关
chmod u+s file
chmod 4777 fileg+s


7.权限列表
acl    ##指定特定的用户对特定的文件拥有特殊权力

-rw-rwx---+ 1 root root 0 Mar 28 02:39 file
      ^
    权限列表开启

那么这个文件的普通权限也在权限列表中识别,ls -l 看到的权限是不准确的

#查看
getfacl   /mnt/file

[root@localhost ~]# getfacl /mnt/file
getfacl: Removing leading '/' from absolute path names
# file: mnt/file     文件名称
# owner: root    文件的拥有者
# group: root      文件的组
user::rw-             文件拥有者的权限
group::---             文件组的权限
mask::rwx           权限最大值
other::---              其他人的权限

##设定
setfacl -m u:lee:rwx /mnt/file        #设定lee用户对file文件可以读写执行
setfacl -m g:student:rwx  /mnt/file    #设定student组对文件可以读写执行
setfacl -x u:lee /mnt/file        #在权限列表中删除用户lee的信息
setfacl -x g:student    /mnt/file    #在权限列表中删除student组的信息
setfacl -b   /mnt/file            #关闭权限列表那么,"+"消失

[root@localhost ~]# setfacl -m u:test:rwx /mnt/
[root@localhost ~]# setfacl -m g:student:rwx /mnt/
[root@localhost ~]# getfacl /mnt
getfacl: Removing leading '/' from absolute path names
# file: mnt
# owner: root
# group: root
user::rwx
user:test:rwx
group::r-x
group:student:rwx
mask::rwx
other::r-x

3.删除列表中的用户或组

setfacl -x :<用户名|组名> 文件|目录

[root@localhost ~]# setfacl -x u:test /mnt
[root@localhost ~]# setfacl -x g:student /mnt
[root@localhost ~]# getfa
getfacl   getfattr  
[root@localhost ~]# getfa
getfacl   getfattr  
[root@localhost ~]# getfacl /mnt/
getfacl: Removing leading '/' from absolute path names
# file: mnt/
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x

other::r-x


4.关闭列表

setfacl -b 文件|目录     #关闭权限列表那么,"+"消失

[root@localhost ~]# ls -ld /mnt
drwxr-xr-x+ 2 root root 17 Apr 12 08:44 /mnt
[root@localhost ~]# setf
setfacl   setfattr  setfiles  setfont   
[root@localhost ~]# setfacl -b /mnt
[root@localhost ~]# ls -ld /mnt
drwxr-xr-x. 2 root root 17 Apr 12 08:44 /mnt

5.mask值

#mask值是能够赋予用户权限的最大值

#当设定acl列表后,如果用chmod命令缩小文件的权限,那么mask值会被更改

setfacl -m m:rwx /mnt/file     #用此命令可以恢复mask的值


[root@localhost ~]# chmod 600 /mnt
[root@localhost ~]# getfacl /mnt
getfacl: Removing leading '/' from absolute path names
# file: mnt
# owner: root
# group: root
user::rw-
group::---
other::---

[root@localhost ~]# setfacl -m m:rwx /mnt
[root@localhost ~]# getfacl /mnt
getfacl: Removing leading '/' from absolute path names
# file: mnt
# owner: root
# group: root
user::rw-
group::---
mask::rwx
other::---

6. acl列表的默认权限

#权限针对与目录生效
#当对目录设定普通的权限列表后,是不能取定特定用户对在目录中新建的文件由指定权限的
#如果需要权限自动添加到新建文件上那么要设定目录的默认权限

setfacl -m d:u:student:rwx /mnt/westos    ##设定在westos目录中
                      ##新建文件对student用户有rwx权限
                      ##对已经存在的文件无效
                      ##对目录本身无效


















你可能感兴趣的:(学习日志)