Linux操作系统下的权限设置

发布于:2023-01-18 ⋅ 阅读:(641) ⋅ 点赞:(0)

引言

Linux操作系统是一个多用户的操作系统,可以同时存在多个用户去访问我们的设备;在同一台Linux设备下,当我们不希望我们的文件被其它用户访问时,我们可以为其设置相应的权限~

Shell外壳程序及其运行原理

在开始介绍今天的内容之前,我们先一起来思考一个问题: 

作为用户的我们,在访问操作系统(Linux)时是怎样的一个过程呢?是直接访问?为什么呢?

是什么:在我们访问操作系统时,我们并不是直接地与操作系统层面进行访问和交互;而是通过shell外壳程序(如..图形化界面 && 指令操作),间接地访问操作系统。

为什么:作为用户的我们,因为缺乏专业性,从而不善于直接与操作系统“打交道”;而且如果让用户直接访问操作系统,操作成本特别高,且容易出错

这就好比(为什么银行需要提供专门的柜台服务):

  • 银行需要有专门的柜台服务员,来为办理相关业务的用户提供服务,而不是让用户直接访问银行内部的系统,去自主办理其所需的相关业务;
  • 其次,如果让用户通过直接访问银行内部系统的方式,来进行业务办理,那么用户需提前对银行业务系统的操作进行学习和熟练掌握,操作成本极高!
  • 其每个用户对系统掌握的熟练程度不一,从而出错率极高!

所以,操作系统的设计者,是不会让用户直接去访问操作系统的!

shell外壳程序的意义

  • 是用户和操作系统交互的中间软件层。
  • 可以在一定程度上,起到保护操作系统的作用。

shell外壳程序的运行原理

  • 将使用者的命令翻译给操作系统核心(kernel)处理。
  • 同时,将核心的处理结果翻译给使用者。

另外,我们经常见到的bash就是shell程序的其中一种。

Linux权限相关概念

学习完了shell外壳程序,我们正式开始今天的内容~

Linux下有两种用户:超级用户(root)、普通用户。

  • 超级用户(root):可以在Linux操作系统下做任何事情,不受任何的限制。
  • 普通用户:在Linux下做有限的事情。
  • 超级用户的命令提示符是“#”,普通用户的命令提示符是“¥”。

命令:su[用户名]

功能:切换用户

举例:

  • root用户切换到普通用户,使用 su user
  • 从普通用户切换到root用户,使用 su root

Linux权限管理

1. 文件访问者的分类(人)

  • 文件或文件目录的自身所有者(onwer)
  • 文件或文件目录的所有者所在分组的用户(group),即与文件或文件目录所有者同在一个组织当中
  • 与该文件或文件目录无关的其它用户(other)

2. 文件类型和访问权限(事物属性)

 a)Linux中文件类型的表示

  • d :文件
  • - :不同文件
  • l : 软链接(类似Windows的快捷方式)
  • b:块设备文件(例如硬盘、光驱等)
  • p:管道文件
  • c:字符设备文件(例如屏幕等串口设备)
  • s:套接口文件

b)基本权限

  • 读(r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
  • 写(w/2): Write对文件而言,具有修改文件内容的权限;对目录来说,具有删除移动目录内文件的权限
  • 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,据有进入目录的权限
  • “—”:表示不具有该项权限

3. 文件权限值的表示方法

a)字符表示法

Linux表示

说明 Linux表示 说明
r-- 只读 -w- 仅可写
--x 仅可执行

rw-

可读可写
-wx 可写和可执行 r-x 可读可执行
rwx 可读可写可执行 --- 无权限

b)8进制数值表示法

权限符号(读写执行) 八进制 二进制
r 4 100
w 2 010
x 1 001
rw 6 110
rx 5 101
wx 3 011
rwx 7 111
--- 0 000

4. 文件访问权限的相关设置方法

a)chmod

功能:设置文件的访问权限

格式:chmod[参数] 权限 文件名

常用选项:

  • R-> 递归修改目录文件的权限
  • 说明:只有文件的拥有者和root才可以改变文件的权限

chmod命令权限值的格式

①用户表示符+/-/= 权限字符

  • + : 向权限范围增加权限代号所表示的权限
  • -  : 向权限范围取消权限代号所表示的权限
  • = : 向权限范围赋予权限代号所表示的权限
  • u : 拥有者
  • g : 拥有者同组用户
  • o : 其它用户
  • a : 所有用户

实例:

# chmod u+w /home/abd.txt

# chmod o-x /home/abc.txt

②三位8进制数字
实例:
# chmod 664  /home/abc.txt
# chmod 640  /home/abc.txt

 

b)chown

功能:修改文件的拥有者

格式:chown[参数] 用户名 文件名

实例:

# chown user1 f1

# chown -R user1 filegroup1

c)chgrp

功能:修改文件或目录的所属组

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

常用选项:

  • -R 递归修改文件或目录的所属组

d) umask

功能:

  • 查看或修改文件掩码
  • 新建文件夹默认权限 = 0666
  • 新建目录默认权限=0777
  • 但实际上,我们所创建的文件或目录,看到的权限往往不是上面这两个数值。原因是创建的文件或目录还要受到umask的影响;假设默认权限是mask,则实际创建出来的文件或目录的权限是: mask & ~umask (umask按位反操作之后,再和mask进行按位与操作)

格式:umask 权限值

说明:将现有的存取权限减去权限掩码后,即可产生创建文件时的预设权限。超级用户的默认掩码值为0022,普通用户的默认权限掩码值为0002.

# umask  755

# umask  //查看

#umask  044 //设置

5. file指令

功能说明:辨识文件类型。

语法:file[选项]文件或目录

常用选项:

  • -c 详细显示指令执行过程,便于排错或分析程序执行的情形。
  • -z 尝试去解读压缩文件的内容

使用sudo分配权限

(1)修改/etc/sudoers文件分配文件

# chmod 740 /etc/sudoers

# vim /ect/sudoer

格式:接受权限的用户登录的主机 = (执行命令的用户) 命令

(2)使用sudo调用授权的命令

$ sudo -u 用户名 命令

实例:

$ sudo -u root /usr/sbin/useradd u2

本文含有隐藏内容,请 开通VIP 后查看