权限管理:
1.只要提到权限,肯定指的是文件的权限 2. 一切皆文件,目录也是特殊的文件,目录文件的内容是ls -l列出来的内容 普通权限/默认权限/特殊权限/acl 访问策略一:普通权限: ls-l
-rw-r--r-- 1 root root 80 Apr 5 14:58 new file-:普通文件 d:目录 l: 链接文件,类似windows快捷方式 c:字符设备 b:块设备 (光盘/光驱/软盘) s:socket文件(网络程序通讯的方式,mysql),套接字文件 p:管道文件 (进程间通讯的文件)
第2-11个字符:文件的权限 第二段:目录的子目录个数或者文件的硬链接数 磁盘读取数据的最小单位: 1个扇区=512个字节 系统读取数据的最小单位: 1次性读取连续8个扇区 = 512字节*8=4096字节=4kb 块 创建硬链接: ln 源文件 链接文件 说明:不能对目录创建硬链接 创建软链接: ln -s 源文件 链接文件 第三段:文件的拥有者(创建者) 第四段:文件的数组 第五段:文件的大小 第六到八;文件的最后一次的修改时间 第九段:文件名 普通权限:rw-r - - r - - | | | u g o r:读权限 r - - 100(二进制) 4 针对文件而言: 读取(查看)文件内容 针对目录而言: r 可以列出目录里的内容 w:写权限 -w- 010 2 针对文件而言: 可以修改文件内容 针对目录而言:在该目录下创建/删除/重命名等文件 x:执行权限 --x 001 1 针对文件而言: 文件可以被执行 针对目录而言: 可以切换到该目录 说明:一般对于一个正常操作的目录来说,要有r x 权限 更改文件权限: chmod: -R 递归修改 # chomd u=rx,g+x,o-r file2 # r-x rw- 修改文件的属主和属组: chown: 修改属主和数组 root权限 chgrp:修改文件的数组 root权限 -R 递归修改 chown stu2.admin file1 chown stu2:admin file1 chown stu2. file1 chown stu2 file1 chown .admin file1 chown :admin file1 chgrp admin file1课堂练习一:roo 1、root用户新建目录/tmp/ro_dir,要求目录的所属组为tom 2、tom用户在/tmp/ro_dir目录下创建一个文件tomfile 3、用户jack往tomfile文件里追加内容:hello world
课堂练习二: 1、以普通用户user01登录系统,新建目录/share/sysadmin目录,属于sysadmin组 2、要求组成员有读写访问的权限,其他成员没有任何权限 3、要求harry可以,natasha不能读写
课堂练习三: 一个公司有2个部门rs和cw,各有rs01,rs02和cw01,cw02员工。针对每个员工的工资表只允许rs部门查看,cw部门修改,boss也只有查看权限,其他部门的人没有任何权限。 注:工资表为gz_file,权限为400
二:默认权限 创建文件的默认权限,命令:umask
root用户: 创建目录的默认权限:755 创建文件的默认权限:644 普通用户: 创建目录的默认权限:775 创建文件的默认权限:664 umask 查看当前用户的umask
目录最大权限:777 文件最大权限:666 root: umask 0022 普通:umask 0002 0777 - 0022 = 0755 0666 - 0022 = 0644 修改用户的 umask: 1.临时修改 umask xxxx 只对当前用户当前终端生效 0777-0003 = 0774 0666-0003 = 0663 实际0664 2.永久修改 情况1:针对某个用户生效 vim ~/.bashrc umask 0005 情况2:针对所有用户生效 vim /etc/bashrc ... umask 0003 source /etc/bashrc /etc/bashrc 全局 保存每个运行的bash信息当打开一个shell时,此文件被读取 /etc/profile 全局 保存系统和用户的环境变量信息,当第一次登录时该文件被读取 ~/.bashrc 保存 当前用户的bash用户信息 当用户登录,每次打开新的shell时,该文件被读取 ~/.bash_profile 保存当前用户的环境变量信息 当用户登录时,该文件被读取 ~/.bash_logout 当用户退出bash或者终端时 执行该文件,然后退出
用户登录后所读取的文件顺序 /etc/profile - ~./bash_profile ~./bashrc/etc/bashrc ~./bash_logout
三:特殊权限: 冒险位:(setuid) 4000 临时拥有文件拥有者的权限,作用在属主身上,一般作用于命令 chmod u+s filename chmod 4xxx filename
强制位: (setgid) 2000针对目录,任何人在该目录下创建的文件强制继承该目录的数组 chmod g+s filename chmod 2xxx file
粘制位: (stick) 1000 针对公共目录该目录下的文件只有root和文件的创建者可以删除,其他人删除不能够删除不属于自己的文件 自己管理自己
chmod o+t filename chmod 1xxx filename四:ACL访问策略
setfacl 命令设置acl策略 -m : 修改acl策略 -R: 递归修改,针对目录,目录下的老文件会有acl策略, 新建的文件没有 -d:递归修改,默认acl策略,针对目录 目录下的老文件不会有acl策略,新建的文件有acl策略 -x:删除某个用户和某个组的acl策略 -b:删除所有的acl策略
-Rd:该目录本身和该目录下的普通文件不会继承acl策略,该目录下新创建的文件和目录以及老目录会继承 mask:定义除了拥有者和其他人以外的最大权限 getfacl 命令查看文件的acl策略
demo: 去除最大用户权限setfacl -m u:harry:rw file1