linux之用户的权限详解(4)

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
相关推荐
二进制person3 小时前
JavaEE初阶 --网络编程
linux·服务器·网络
Cyber4K3 小时前
【妙招系列】Harbor 镜像私有仓库搭建手册
linux·云原生·容器
Irissgwe4 小时前
进程间通信
linux·服务器·网络·c++·进程间通信
创世宇图4 小时前
阿里云Alibaba Cloud Linux 4 LTS 64位生产环境配置-Nginx
linux·nginx
岁岁种桃花儿4 小时前
AI超级智能开发系列从入门到上天第四篇:AI应用方案设计
java·服务器·开发语言
待续3015 小时前
OpenClaw 安装及使用教程(Windows / macOS / Linux)
linux·windows·macos
创世宇图5 小时前
Alibaba Cloud Linux 安装生产环境-mysql
linux·mysql
TEC_INO5 小时前
嵌入式 Linux 开发知识总结
linux·运维·服务器
养生技术人5 小时前
Oracle OCP认证考试题目详解082系列第5题
运维·数据库·sql·oracle·开闭原则