shell原理及Linux权限

2023-02-03 0 288

原副标题:shell基本原理及Linux职权

shell及Linux职权

产品目录

shell及Linux职权

一、指示

1.tar指示(关键)

2.分页

3.bc指示

4.uname –r指示:

5.停机

6.下列指示做为扩充:

二.shell指示和运转基本原理

三.职权

1.职权的基本概念:

2.Linux下有三种使用者:DT使用者(root)、普通使用者

3.Linux的文档属性

4.文档职权

1.文档类型

2.文档名前缀

4.Linux使用者

5.配角分割

6.文档出访职权的有关增设方式

7.产品目录职权

8.默认职权

四、粘滞位

五、职权的总结

一、指示

1.tar指示(关键)

打包/解包,不打开它,直接看内容

tar [-cxtzjvf] 文档与产品目录 …

参数:

-c :建立一个压缩文档的参数指示(create 的意思);

-x :解开一个压缩文档的参数指示!

-t :查看 tarfile 里面的文档!

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文档!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数!

-C : 解压到指定产品目录

2.分页

[Tab]按键—具有『指示补全』和『档案补齐』的功能

[Ctrl]-c按键—让当前的程序『停掉』

[Ctrl]-d按键—通常代表着:『键盘输入结束(End Of File, EOF 戒 End OfInput)』的意思;另外,你也可以用来取代exit

3.bc指示

bc指示可以很方便的进行浮点运算

4.uname –r指示:

语法: uname [选项]

功能: u

补充说明: uname可显示linux主机所用的操作系统的版本、硬件的名称等基本信息。

常用选项:

-a或–all 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称

5.停机

语法: shutdown [选项] ** 常见选项: **

-h:将系统的服务停掉后,立即停机

-r:在将系统的服务停掉之后就重新启动

-t sec: -t后面加秒数,是几秒后停机的意思。

6.下列指示做为扩充:

安装和登录指示: login、 shutdown、 halt、 reboot、 install、 mount、 umount、 chsh、 exit、last;

文档处理指示: file、 mkdir、 grep、 dd、 find、 mv、 ls、 diff、 cat、 ln;

系统管理有关指示: df、 top、 free、 quota、 at、 lp、 adduser、 groupadd、 kill、 crontab;

网络操作指示: ifconfig、 ip、 ping、 netstat、 telnet、 ftp、 route、 rlogin、 rcp、 finger、 mail、 nslookup;

系统安全有关指示: passwd、 su、 umask、 chgrp、 chmod、 chown、 chattr、 sudo ps、 who;

其它指示: tar、 unzip、 gunzip、 unarj、 mtools、 man、 unendcode、 uudecode。

二.shell指示和运转基本原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel) “ ,但我们一般使用者,不能直接使用kernel。

而是通过kernel的“外壳”程序,也就是所谓的shell,来与kernel沟通。如何理解?为什么不能直接使用kernel?

从技术角度, Shell的最简单定义:指示行解释器(command Interpreter)主要包含:

将使用者的指示翻译给核心(kernel)处理。同时,将核心的处理结果翻译给使用者

对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符.或者运转起来一个应用程序)。

shell 对于Linux,有相同的作用,主要是对我们的指示进行解析,解析指示给Linux内核。反馈结果在通过内核运转出结果,通过shell解析给使用者。

外壳程序:

bash—CenOs7下的具体的指示行解释器(王婆)

shell—-外壳程序的统称(媒婆)

三.职权

1.职权的基本概念:

出访的对象天然可能没有这种“属性”。

一件事情是否允许被谁做

职权=人+事务属性(事务就是文档,属性都是读写执行)

2.Linux下有三种使用者:DT使用者(root)、普通使用者

DT使用者:可以再linux系统下做任何事情,不受限制

普通使用者:在linux下做有限的事情。

DT使用者的指示提示符是“#”,普通使用者的指示提示符是“$”

指示: su [使用者名]

功能:切换使用者。

例如,要从root使用者切换到普通使用者user,则使用 su user。 要从普通使用者user切换到root使用者则使用 su root(root可以省略),此时系统会提示输入root使用者的口令

3.Linux的文档属性

可以有的属性是 读 写 执行(r w x)

文档属性包括文档类型和文档职权

4.文档职权

1.文档类型

Linux操作系统中不用文档的前缀名区分文档类型,而是用文档属性中第一列的第一个字符来区分文档类型。

2.文档名前缀

未来我们该如何看待前缀呢?

a.如果你想用就用,可以给人看

b.将前缀看做成文档名的一部分

gcc软件需要前缀

4.Linux使用者

普通使用者和root使用者之间的切换:su

5.配角分割

1.文档拥有者

2.文档所属组

3.文档的other

6.文档出访职权的有关增设方式

a)chmod

功能: 增设文档的出访职权

格式: chmod [参数] 职权 文档名

常用选项:

R -> 递归修改产品目录文档的职权

说明:只有文档的拥有者和root才可以改变文档的职权

① 使用者表示符+/-=职权字符

②三位8进制数字

b)chown

功能:修改文档的拥有者

格式:chown [参数] 使用者名 文档名

实例:

# chown user1 f1

# chown -R user1 filegroup1

c)chgrp

功能:修改文档或产品目录的所属组

格式:chgrp [参数] 使用者组名 文件名

常用选项:-R 递归修改文档或产品目录的所属组

实例:

chgrp users /abc/f2

d)umask

功能:

查看或修改文档掩码

新建文档夹默认职权=0666

新建产品目录默认职权=0777

但实际上你所创建的文档和产品目录,看到的职权往往不是上面这个值。原因就是创建文档或产品目录的时候还要受到

umask的影响。假设默认职权是mask,则实际创建的出来的文档职权是: mask & ~umask

格式:umask 职权值

说明:将现有的存取职权减去职权掩码后,即可产生建立文档时预设职权。DT使用者默认掩码值为0022,普通用

户默认为0002。

实例:

# umask 755

# umask //查看

# umask 044//增设

7.产品目录职权

我们之前了解了文档的职权,那么产品目录的职权又是怎么样的呢?

首先我们要进入一个产品目录需要什么职权?

答案是可执行职权,如果我们没有可执行职权(X),那么我们就不能cd进入该产品目录。

对于产品目录来讲,如果没有r职权,我们就无法查看当前产品目录下的文档名+文档属性。

对于产品目录来讲,如果没有w职权,我们就无法直接在该产品目录下创建新文档。

想要更深入的了解产品目录职权就得利用文档系统的知识,后面会对这里进行补充。

8.默认职权

我们创建的普通文档(不包括可执行),为什么文档职权是从664开始,为什么产品目录的默认职权是从775开始?

其实不同的操作系统可能默认职权是不一样的。

默认职权:就是我们直接看到的

起始职权:系统设定的,普通文档的起始职权是666开始的,没有x(可执行程序),产品目录文档的起始职权是777(rwx);

系统为了更好的控制文档的职权,系统会有默认的职权掩码的基本概念!即umask。

**对于root使用者,系统默认的umask值是0022;**对于普通使用者,系统默认的umask值是0002。

然后通过和职权掩码的处理就可以得到最终职权。

职权掩码:在起始职权中,去掉在umask中出现的职权,不能影响其他任何职权!

== 最终职权=起始职权&(~umask) ==

普通文档的默认职权:

shell原理及Linux权限

产品目录的默认职权:

shell原理及Linux权限

四、粘滞位

我们如果创建一个共享产品目录,让多个人可以同时共享文档,就会出现一些问题,就是只要使用者具有产品目录的写职权, 使用者就可以删除产品目录中的文档, 而不论这个使用者是否有这个文档的写职权.

举例说明就是张三创建了一个文档,为了不让李四操作,就将自己文档other的写职权关闭,李四就不可以在张三的文档中创建新的文档,但是李四只要有产品目录的写职权,他就可以直接将张三的文档直接删除掉,这让张三防不胜防,我们粘滞位就是为了解决这一实际问题。

但是有人又说,既然李四要有产品目录的写职权才可以删除产品目录中张三的文档,那么我们直接将产品目录的写职权直接关闭掉,那么李四不就不可以删除掉张三的文档了吗?可是这种方式是拆了东墙补西墙,我们这个产品目录创建就是为了张三和李四等人能够同时在该产品目录下操作,你去掉了该产品目录的写职权,不仅李四不能删除张三的文档,但是张三和李四都不能在该产品目录下创建新的文档,那么我们这个产品目录还有什么作用呢?所以这种方式并不能解决这一问题,粘滞位就可以。

[root@localhost ~]# chmod +t /home/ # 加上粘滞位

[root@localhost ~]# ls -ld /home/

drwxrwxrwt. 3 root root 4096 9月 19 16:00 /home/

[root@localhost ~]# su – litao

[litao@localhost ~]$ rm /home/abc.c #litao不能删除别人的文档

rm:是否删除有写保护的普通空文档 “/home/abc.c”?y

rm: 无法删除”/home/abc.c”: 不允许的操作

我们先来看下列dir的职权:

我们给dir产品目录加上粘滞位后看一下职权:

加了粘滞位之后我们发现dir该产品目录的other的x职权位置变成了t,这样在dir的目录中没有职权的普通使用者就没有办法删除文档了。

那么问题又来了,加上粘滞位后什么情况下才可以删除产品目录中的文档呢?

答案是在这种特定的产品目录下,创建文档和删除文档都是由该产品目录的w职权决定!

当一个产品目录被增设为”粘滞位”(用chmod +t),则该产品目录下的文档只能由:

一、DT管理员删除

二、该产品目录的所有者删除

三、该文档的所有者删除

五、职权的总结

1.产品目录的可执行职权是表示你可否在产品目录下执行指示。

2.如果产品目录没有-x职权,则无法对产品目录执行任何指示,甚至无法cd 进入目, 即使产品目录仍然有-r 读职权(这个地方很容易犯错,认为有读职权就可以进入产品目录读取产品目录下的文档)

3.而如果产品目录具有-x职权,但没有-r职权,则使用者可以执行指示,可以cd进入产品目录。但由于没有产品目录的读

职权所以在产品目录下,即使可以执行ls指示,但仍然没有职权读出产品目录下的文档。

产品目录的w职权决定!

当一个产品目录被增设为”粘滞位”(用chmod +t),则该产品目录下的文档只能由:

一、DT管理员删除

二、该产品目录的所有者删除

三、该文档的所有者删除

————————————————

版权声明:本文为CSDN博主「暴躁小程序猿」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/MDLYB/article/details/128634031

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务