权限管理:
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策略
-R
d:该目录本身和该目录下的普通文件不会继承acl策略,该目录下新创建的文件和目录以及老目录会继承
mask:定义除了拥有者和其他人以外的最大权限
getfacl 命令查看文件的acl策略
demo:
去除最大用户权限
setfacl -m u:harry:rw file1