您的位置:首页 > 运维架构 > Linux

Linux基础(四)文件权限、acl 权限列表

2018-04-10 23:04 337 查看
一、文件权限
1、文件属性查看
ls -l filename(ls --long filename)
-   rw-rw-r--    1 kiosk kiosk 0   Oct 2 17:05   file
[1]    [2]          [3] [4]     [5]   [6]      [7]              [8]
[1]    #文件类型 元数据
-     #普通文件
d     #目录
s     #socket套接字(程序对外开放的接口文件)
l      #软链接(快捷方式)
p     #管道
c     #字符设备
b     #块设备(比如U盘,sdb文件管理u盘)
[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]    #目录名称
测试:新建一个文件和目录,并查看属性



3、文件用户组的更改
chown 用户名称 文件    #更改文件所有人
chown 用户名称:组名称    #更改文件所有人和组名称
chgrp 组名称 文件    #更改文件所有组

测试:更改文件 xixi 的所有人和所有组



chown -R 用户 目录    #更改目录本身以及目录中的子文件的所有人
chgrp -R 组名 目录    #更改目录本身以及目录中的子文件的所有组
测试:



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    #改权限u=rwx=7 |g=rwx=7|o=rwx=7
u=rw-=6 g=r--=4 o=r--=4   644
其中 r=4 ,w=2, x=1, -=0
7=rwx,6=rw-,5=r-x,4=r--,3=-wx,2=-w-,1=--x,0=---
测试:



#练习
1、新建用户组,shengchan,caiwu,jishu
2、新建用户要求如下:
1)tom 是shengchan组的附加用户
2)harry 是caiwu组的附加用户
3)leo 是jishu组的附加用户
4)新建admin用户,此用户不属于以上提到的三个部门
3、新建目录要求如下:
1)/pub目录为公共存储目录对所有用户可以读,写,执行
2)/sc 目录为生产部存储目录只能对生产部人员可以写入
3)/cw 目录为财务部存储目录只能对财务部人员可以写入中
实现如下:



5、文件的默认权限
umask    #显示系统预留权限值(建立文件时系统预留一个权限022,内核再预留一个权限111)
umask 077    #临时修改umask值,只在当前 shell 中生效
测试:



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



vim /etc/profile    #60行是普通用户的更改,62是超级用户的更改



source /etc/bashrc    #刷新bash配置
source /etc/profile    #刷新系统配置
6、特殊权限
stickyid    #强制位
o+t    #之针对目录,当一个目录上有t权限时,这个目录中的文件只能被文件拥有者删除
chmod o+t 目录名称
chmod 1777 目录名称
测试:



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



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



二、acl 权限列表
acl    #指定特定的用户对特定的文件拥有特殊权力
-rw-rwx---+ 1 root root 0 Mar 28 02:39 file
                ^
    权限列表开启
 那么这个文件的普通权限也在权限列表中识别,ls -l 看到的权限是不准确的
1.查看    getfacl  文件
测试:



2.设定
setfacl -m <u|g>:<用户名|组名>:权限 文件|目录
测试:



3.删除列表中的用户或组
setfacl -x <u|g>:<用户名|组名> 文件|目录
测试:



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



5.mask值
#mask值是能够赋予用户权限的最大值
#当设定acl列表后,如果用chmod命令缩小文件的权限,那么mask值会被更改
setfacl -m m:rwx /mnt/file     #用此命令可以恢复mask的值
测试:



6. acl列表的默认权限
当需求某个目录对某个用户可写,并对目录中新建的子目录或文件也可写
需设定默认权限:
setfacl -m d:u:用户名:权限 目录    #给用户把权限自动添加到目录中新建的文件或目录上。
注意:新建文件对用户有权限,对已经存在的文件无效,对目录本身无效
测试:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: