一、rwx含义
1.r:是否可读 read
2.w:是否可写 write
3.x:是否可以运行 execute;执行命令或者脚本(命令大礼包)
二、权限计算
1.r:----4
2.w:----2
3.x:----1
4.-:----0
5.计算
-rwxr-xr-x ==-755
744 -rwxr--r--
644 -rw-r--r--
400 -r--------
三、修改权限:
1.数字
[root@oldboyedu59 ~]# ll 2.txt
-rw-r--r-- 1 root root 0 Apr 23 20:35 2.txt
[root@oldboyedu59 ~]# chmod '777' 2.txt
[root@oldboyedu59 ~]# ll 2.txt
-rwxrwxrwx 1 root root 0 Apr 23 20:35 2.txt
2.字母
[root@oldboyedu59 ~]# ll 2.txt
-rwxrwxrwx 1 root root 0 Apr 23 20:35 2.txt
[root@oldboyedu59 ~]# chmod a=rx 2.txt
[root@oldboyedu59 ~]# ll 2.txt
-r-xr-xr-x 1 root root 0 Apr 23 20:35 2.txt
四、如何知道你对某个文件的权限
例题:oldboy 对 /etc/hosts的权限是?
[oldboy@oldedu59 ~]$ ll /etc/hosts
-rw-r--r-- 1 root root 159 Apr 1 17:18 /etc/hosts
[oldboy@oldedu59 ~]$ #1.你是谁?
[oldboy@oldedu59 ~]$ whoami
oldboy
[oldboy@oldedu59 ~]$ #2.这个用户与文件/目录的关系:主人 家人 陌生人
[oldboy@oldedu59 ~]$ id oldboy
uid=1000(oldboy) gid=1000(oldboy) groups=1000(oldboy)
[oldboy@oldedu59 ~]$ #3.陌生人关系
[oldboy@oldedu59 ~]$ #3.陌生人关系 权限看最后三位
[oldboy@oldedu59 ~]$ #oldbiy 对 /etc/hosts的权限是 r--
五、文件的rwx权限
r查看文件的内容
w表示是否能修改文件内容 如果只有w不行 需要有r配合
x 是否能执行脚本 如果只有x不行 需要有r的配合
1.搭建此时权限的环境:
mkdir -p /oldboy/
echo pwd >/oldboy/lidao.sh
2.root 下面测试 rwx
[root@oldedu59 ~]# ll /oldboy/lidao.sh
-rw-r--r-- 1 root root 4 Apr 23 09:57 /oldboy/lidao.sh
[root@oldedu59 ~]# chmod +x /oldboy/lidao.sh
[root@oldedu59 ~]# ll /oldboy/lidao.sh
-rwxr-xr-x 1 root root 4 Apr 23 09:57 /oldboy/lidao.sh
[root@oldedu59 ~]# cat /oldboy/lidao.sh
pwd
[root@oldedu59 ~]# echo 'hostname' >>/oldboy/lidao.sh
[root@oldedu59 ~]# /oldboy/lidao.sh
/root
oldedu59
3.测试 文件的rwx权限开始###
[root@oldedu59 ~]# #root 修改权限
[root@oldedu59 ~]# chmod u=r/w/x /oldboy/lidao.sh
[root@oldedu59 ~]# ll /oldboy/lidao.sh
-r--r-xr-x 1 root root 13 Apr 23 10:00 /oldboy/lidao.sh
[root@oldedu59 ~]# #修改文件所有者
[root@oldedu59 ~]# chown oldboy.oldboy /oldboy/lidao.sh
[root@oldedu59 ~]# ll /oldboy/lidao.sh
-r--r-xr-x 1 oldboy oldboy 13 Apr 23 10:00 /oldboy/lidao.sh
[root@oldedu59 ~]#
4.oldboy 下 测试文件的r权限
[oldboy@oldedu59 ~]$ ll /oldboy/lidao.sh
-r--r-xr-x 1 oldboy oldboy 13 Apr 23 10:00 /oldboy/lidao.sh
[oldboy@oldedu59 ~]$ cat /oldboy/lidao.sh
pwd
hostname
[oldboy@oldedu59 ~]$ echo pws >>/oldboy/lidao.sh
-bash: /oldboy/lidao.sh: Permission denied
[oldboy@oldedu59 ~]$ /oldboy/lidao.sh
-bash: /oldboy/lidao.sh: Permission denied
[oldboy@oldedu59 ~]$
5.oldboy 下测试w权限
[oldboy@oldedu59 ~]$ ll /oldboy/lidao.sh
--w-r-xr-x 1 oldboy oldboy 13 Apr 23 10:00 /oldboy/lidao.sh
[oldboy@oldedu59 ~]$ cat /oldboy/lidao.sh
at: /oldboy/lidao.sh: Permission denied
[oldboy@oldedu59 ~]$ echo pwd >>/oldboy/lidao.sh
[oldboy@oldedu59 ~]$ /oldboy/lidao.sh
-bash: /oldboy/lidao.sh: Permission denied
[oldboy@oldedu59 ~]$
6.oldboy 下测试x权限
[oldboy@oldedu59 ~]$ ll /oldboy/lidao.sh
---xr-xr-x 1 oldboy oldboy 17 Apr 23 10:09 /oldboy/lidao.sh
[oldboy@oldedu59 ~]$ cat /oldboy/lidao.sh
cat: /oldboy/lidao.sh: Permission denied
[oldboy@oldedu59 ~]$ echo pwd >>/oldboy/lidao.sh
-bash: /oldboy/lidao.sh: Permission denied
[oldboy@oldedu59 ~]$ /oldboy/lidao.sh
bash: /oldboy/lidao.sh: Permission denied
六、目录的rwx权限
r 是否能看目录的内容 需要有x配合
w 是否能在目录中创建 删除 重命名(修改)文件 需要有x配合
x 是否能进入目录 (是否能查看/修改目录下文件的属性)
1.搭建测试环境:
mkdir -p /oldboy/lidao
chown oldboy.oldboy /oldboy/lidao
touch /oldboy/lidao{01..5}.txt
2.修改目录权限
[root@oldedu59 ~]# chmod u=r /oldboy/lidao
[root@oldedu59 ~]# ll -d /oldboy/lidao
dr--r-xr-x 2 oldboy oldboy 196 Apr 16 11:00 /oldboy/lidao
3.测试目录的r权限
[oldboy@oldedu59 ~]$ ll -d /oldboy/lidao
dr--r-xr-x 2 oldboy oldboy 196 Apr 16 11:00 /oldboy/lidao
[oldboy@oldedu59 ~]$ ls -l /oldboy/lidao
ls: cannot access /oldboy/lidao/oldboy01.txt: Permission denied
ls: cannot access /oldboy/lidao/oldboy02.txt: Permission denied
ls: cannot access /oldboy/lidao/oldboy03.txt: Permission denied
ls: cannot access /oldboy/lidao/oldboy04.txt: Permission denied
ls: cannot access /oldboy/lidao/oldboy05.txt: Permission denied
ls: cannot access /oldboy/lidao/alex01.txt: Permission denied
ls: cannot access /oldboy/lidao/alex02.txt: Permission denied
ls: cannot access /oldboy/lidao/alex03.txt: Permission denied
ls: cannot access /oldboy/lidao/alex04.txt: Permission denied
ls: cannot access /oldboy/lidao/alex05.txt: Permission denied
total 0
-????????? ? ? ? ? ? alex01.txt
-????????? ? ? ? ? ? alex02.txt
-????????? ? ? ? ? ? alex03.txt
-????????? ? ? ? ? ? alex04.txt
-????????? ? ? ? ? ? alex05.txt
-????????? ? ? ? ? ? oldboy01.txt
-????????? ? ? ? ? ? oldboy02.txt
-????????? ? ? ? ? ? oldboy03.txt
-????????? ? ? ? ? ? oldboy04.txt
-????????? ? ? ? ? ? oldboy05.txt
七、删除一个文件需要什么权限
删除文件或目录,要看这个文件所在目录的权限是否有w和x
八、Linux系统默认的权限
1.umask 控制系统默认的权限
umask默认为022
看umask
[root@oldedu59 /oldboy]# umask
0022
2.系统对于文件或目录最大权限
(1)文件:666 -rw-rw-rw-
(2)目录:777 drwxrwxrwx
3.通过umask计算系统默认权限
(1)文件(666)或目录(777)最大权限减去umask
(2)文件的umask 如果某位是奇数 减去umask后 还需要奇数位加1
文件默认权限的由来:
666
- 022
= 644
目录默认权限的由来:
777
-022
=755
九、权限如何让系统安全
站程序代码 /app/blog 目录 站点目录(单机权限控制)
1.谁运行网站程序
虚拟用户 www
2.控制权限
站点目录下文件 644 root root
站点目录下目录 755 root root
3.对于上传目录uploads
站点目录下文件 644 www www
站点目录下目录 755 www www
4.通过程序控制 职能上传图片或压缩包
5.取消上传上来的文件的执行权限(讲解到nfs的时候)
模拟环境:
useradd www
mkdir -p /app/blog/uploads
touch /app/blog/guoav{01..5}-blue-ray-4k.mkv.torrent
#root 窗口 www窗口
[www@oldedu59 /app/blog]$ touch /app/blog/uploads/ycw-5k-100tb.torrent
touch: cannot touch ‘/app/blog/uploads/ycw-5k-100tb.torrent’: Permission denied
[www@oldedu59 /app/blog]$ ll -d uploads/
drwxr-xr-x 2 root root 6 Apr 23 11:58 uploads/