1.sudo
用法:在进行指令时短暂提高权限。
例:在普通用户想要安装软件到系统文件时要root的管理员root权限。
ubuntu@fengyouyinli:~$ touch gal /
touch: setting times of '/': Permission denied
ubuntu@fengyouyinli:~$ sudo touch gal /
//在sudo下就没有permission denied了
系统文件是只安装了一份但是给服务器中的所有用户中使用的。
linux会提供白名单(普通用户不允许使用sudo,要加进白名单中才用sudo)(白名单文件找不到了)
2.权限
本质:用户能或不能做的事。
用途:控制用户的行为,防止错误的发生
理解:
1.权限首先限制的是角色(身份),不同身份要求与限制不同。
2.权限要求目标必须具备对应的属性。(身份问题,钓鱼的权限再大也不允许打仗)
有:权限=角色+属性
3.linux下的一切为文件,文件的核心属性就是读,写,执行
linux中的角色分三种
1.拥有者2.所属组3.other。
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 23 14:12 test
// 拥有者 所属组
角色的本质就是用户所拥有的身份。
不记录other的原因在于一个服务器中的用户有很多,但拥有者和所属住都只有一个,因此剩下的成员都是other,数目过多无法记录。
所属组的意义:用于更细分化的权限管理。
用法就是给other中的部分成员这个文件的权限,实现小圈子的划分。
4.文件的属性
有:r(读),w(写),w(可执行)。-代表对应权限的否定。
chmod:修改文件的属性
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 23 14:12 ./
d rwx rwx r-x 2 ubuntu ubuntu 4096 Mar 23 14:12 ./
// 拥有者的权限 所属组的权限 other的权限
每三个字符代表了一个身份的权限,里面的每一个字符代表了一个文件权限。
rwx的顺序是不允许颠倒的。
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 23 14:19 test
解释:该文件所有者和归属组都是ubuntu这个用户,其中拥有者有rw的权限,没有x权限。
归属组有rw的权限,没有x权限。other只有r的权限。
这里能发现:权限=用户身份+文件属性(linux下)
chmod:修改文件的权限
ubuntu@fengyouyinli:~/lesson5$ ll
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 23 14:12 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:12 ../
-rwxrwxrwx 1 ubuntu ubuntu 0 Mar 23 14:19 test*
ubuntu@fengyouyinli:~/lesson5$ chmod u-r test
//u是拥有者-r代表去除r这个权限
ubuntu@fengyouyinli:~/lesson5$ ll
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 23 14:12 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:12 ../
--wxrwxrwx 1 ubuntu ubuntu 0 Mar 23 14:19 test*
ubuntu@fengyouyinli:~/lesson5$ chmod g-rw,o-w test
//q代表归属组,o代表other,可连续修改,可多修改
ubuntu@fengyouyinli:~/lesson5$ ll
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 23 14:12 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:12 ../
--wx--xr-x 1 ubuntu ubuntu 0 Mar 23 14:19 test*
ubuntu@fengyouyinli:~/lesson5$ chmod o-rwx test
//已经被删的还可以被删
ubuntu@fengyouyinli:~/lesson5$ chmod a-rwx test
//a代表all,全部修改
ubuntu@fengyouyinli:~/lesson5$ ll
total 8
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 23 14:12 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:12 ../
---------- 1 ubuntu ubuntu 0 Mar 23 14:19 test
用户只能更改自己的文件权限,(root除外)
不具备某种权限时系统会让我们拒绝访问
ubuntu@fengyouyinli:~/lesson5$ mkdir text
ubuntu@fengyouyinli:~/lesson5$ chmod a-rwx text
ubuntu@fengyouyinli:~/lesson5$ cd text
-bash: cd: text: Permission denied
一个用户调用一个文件,其的身份会从拥有者,所属组,other的顺序一次匹配,匹配到了对应的位置后就只会以该身份的权限访问了。root是不在乎这些权限的。
可执行程序!=文件必须执行
系统默认不允许用户自己把文件传给别人,给别人必须要有root权限。
修改文件的拥有者(chown)和归属组(chgrp)
ubuntu@fengyouyinli:~/lesson5$ sudo chown root text
ubuntu@fengyouyinli:~/lesson5$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 23 14:36 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ../
---------- 1 ubuntu ubuntu 0 Mar 23 14:19 test
d--------- 2 root ubuntu 4096 Mar 23 14:36 text/
ubuntu@fengyouyinli:~/lesson5$ sudo chgrp root text
ubuntu@fengyouyinli:~/lesson5$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 23 14:36 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ../
---------- 1 ubuntu ubuntu 0 Mar 23 14:19 test
d--------- 2 root root 4096 Mar 23 14:36 text/
ubuntu@fengyouyinli:~/lesson5$ sudo chown ubuntu:ubuntu text
//sudo就可以对拥有者和归属组进行修改了
ubuntu@fengyouyinli:~/lesson5$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 23 14:36 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ../
---------- 1 ubuntu ubuntu 0 Mar 23 14:19 test
d--------- 2 ubuntu ubuntu 4096 Mar 23 14:36 text/
5.再谈文件属性
文件的权限是两态如r就是r(1)或-(0)
有rw-rw-r--
110110100->转换为八进制为664。
有:
ubuntu@fengyouyinli:~/lesson5$ touch gal
ubuntu@fengyouyinli:~/lesson5$ chmod 000 gal
//0是全关
ubuntu@fengyouyinli:~/lesson5$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 23 14:57 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ../
---------- 1 ubuntu ubuntu 0 Mar 23 14:57 gal
---------- 1 ubuntu ubuntu 0 Mar 23 14:19 test
d--------- 2 ubuntu ubuntu 4096 Mar 23 14:36 text/
ubuntu@fengyouyinli:~/lesson5$ chmod 444 gal
//4是r
ubuntu@fengyouyinli:~/lesson5$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 23 14:57 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ../
-r--r--r-- 1 ubuntu ubuntu 0 Mar 23 14:57 gal
---------- 1 ubuntu ubuntu 0 Mar 23 14:19 test
d--------- 2 ubuntu ubuntu 4096 Mar 23 14:36 text/
ubuntu@fengyouyinli:~/lesson5$ chmod 777 gal
//7是rwx
ubuntu@fengyouyinli:~/lesson5$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 23 14:57 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ../
-rwxrwxrwx 1 ubuntu ubuntu 0 Mar 23 14:57 gal*
---------- 1 ubuntu ubuntu 0 Mar 23 14:19 test
d--------- 2 ubuntu ubuntu 4096 Mar 23 14:36 text/
ubuntu@fengyouyinli:~/lesson5$ chmod 400 gal
//只给拥有者r权限
ubuntu@fengyouyinli:~/lesson5$ ll
total 12
drwxrwxr-x 3 ubuntu ubuntu 4096 Mar 23 14:57 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ../
-r-------- 1 ubuntu ubuntu 0 Mar 23 14:57 gal
---------- 1 ubuntu ubuntu 0 Mar 23 14:19 test
d--------- 2 ubuntu ubuntu 4096 Mar 23 14:36 text/
6.目录权限
进入一个目录的权限需要的是x权限。
r是允许查看该目录内的目录和文件
w是允许删除文件或新建文件
默认情况下拥有者新建一个目录,其rwx的权限都是有的。
linux下的用户之间相互独立:
原因:每个用户在服务器创建账号时,系统会为该账号在/home目录下创建一个与用户名相同的新文件夹。该文件只对该账号开放权限且该账号只能在该文件夹中操作。
ubuntu@fengyouyinli:~/lesson5$ ll /home
total 16
drwxr-xr-x 4 root root 4096 Mar 23 13:25 ./
drwxr-xr-x 24 root root 4096 Mar 23 15:09 ../
drwxr-x--- 2 lighthouse lighthouse 4096 Mar 19 08:45 lighthouse/
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ubuntu/
//系统太新,环境不同了
7.缺省权限
普通文件的起始权限为666,,目录为777。
ubuntu@fengyouyinli:~/lesson5$ touch ll
ubuntu@fengyouyinli:~/lesson5$ mkdir lll
ubuntu@fengyouyinli:~/lesson5$ ll
total 16
drwxrwxr-x 4 ubuntu ubuntu 4096 Mar 23 15:12 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ../
-r-------- 1 ubuntu ubuntu 0 Mar 23 14:57 gal
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 23 15:12 ll
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 23 15:12 lll/
---------- 1 ubuntu ubuntu 0 Mar 23 14:19 test
d--------- 2 ubuntu ubuntu 4096 Mar 23 14:36 text/
与默认不同的原因是系统中还存在一个权限掩码的概念
umask可以找到:
ubuntu@fengyouyinli:~/lesson5$ umask
0002
最终权限=默认权限&(~umask)
用处:让用户自行决定初始文件权限以满足不同需求。
ubuntu@fengyouyinli:~/lesson5$ umask 0777
ubuntu@fengyouyinli:~/lesson5$ touch tert
ubuntu@fengyouyinli:~/lesson5$ ll
total 16
drwxrwxr-x 4 ubuntu ubuntu 4096 Mar 23 15:18 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 14:43 ../
-r-------- 1 ubuntu ubuntu 0 Mar 23 14:57 gal
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 23 15:12 ll
drwxrwxr-x 2 ubuntu ubuntu 4096 Mar 23 15:12 lll/
---------- 1 ubuntu ubuntu 0 Mar 23 15:18 tert
//umask的值取反就是最终默认权限了。
自身修改的umask是临时的,重进Xshell就恢复默认了。
8.一个文件是否能被删除,与文件自身无关,与用户所在的文件目录的w权限有关
一个完全没有权限的用户也能删除文件,其在于其有该文件的权限。
chmod + t + 对应文件路径,除了创建的用户,其余人不允许删。
ubuntu@fengyouyinli:~/lesson5$ chmod +t lll
ubuntu@fengyouyinli:~/lesson5$ ll
total 16
drwxrwxr-x 4 ubuntu ubuntu 4096 Mar 23 15:18 ./
drwxr-x--- 15 ubuntu ubuntu 4096 Mar 23 15:29 ../
-r-------- 1 ubuntu ubuntu 0 Mar 23 14:57 gal
-rw-rw-r-- 1 ubuntu ubuntu 0 Mar 23 15:12 ll
drwxrwxrwt 2 ubuntu ubuntu 4096 Mar 23 15:12 lll/
// t代表期内部的文件不允许非创建文件用户删除
t的用途就是给需要的用户共享的目录中加。
只有root能在根目录中创建文件因为根目录就是root的。
以后的临时文件和共享文件就放在根目录中的tmp目录中即可。
ubuntu@fengyouyinli:~/lesson5$ ls /
bin boot data etc lib lib.usr-is-merged media opt root sbin snap swap.img
tmp//在这里
var
bin.usr-is-merged cdrom dev home lib64 lost+found mnt proc run sbin.usr-is-merged srv sys usr