引言

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

Linux操作系统下的权限设置相关推荐

  1. Linux操作系统下共享文件夹设置方法介绍

    Linux操作系统下共享文件夹设置方法介绍    首先要在系统上安装samba模块 sudo apt-get install samba sudo apt-get install smbfs 下面我们 ...

  2. 手rm-linux联网后自动dhcp,Linux操作系统下DHCP简单设置

    环境:RHlinux9.0使用linux下常用的dhcpd包. 最新版本dhcp3.0.5下载地址:下载 1.安装: 先拷贝dhcp-3.0.5.tar.gz软件到/tmp目录下 #cd/tmp #g ...

  3. linux怎样将文件夹设置共享,Linux操作系统下共享文件夹设置方法介绍

    首先当然是要安装samba了,呵呵: sudo apt-get install samba sudo apt-get install smbfs 下面我们来共享群组可读写文件夹,假设你要共享的文件夹为 ...

  4. linux操作系统adsl 上网设置,Linux操作系统下ADSL拨号上网详细步骤 -电脑资料

    本指南将帮助你在Ubuntu 6.06 LTS (Dapper Drake)下用PPPoE以太网modem建立ADSL网络连接, 1. 简介 虽然用路由器联网很常见,我们有时也需要用PPPoE直接连接 ...

  5. linux c语言 ppt,linux操作系统下c语言编程入门.ppt

    linux操作系统下c语言编程入门.ppt Linux操作系统下C语言编程入门 CNT Linux操作系统简介基础知识进程介绍文件操作时间概念消息管理线程操作网络编程Linux下C开发工具介绍 一 L ...

  6. linux可配置哪些服务,linux操作系统下服务配置

    linux操作系统下服务配置 (5页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 17.90 积分 实用标准文案数学与信息技术学院实 验 报 告实验课程名 ...

  7. Linux操作系统下进程讲解(史上最强总结)

    Linux操作系统下进程讲解 一.进程的基本概念: 1. 什么是进程 在传统的操作系统中,程序不可以独立的运行,作为资源分配和独立运行的基本单位都是进程.进程的定义是一个可执行中程序的实例,系统中每一 ...

  8. Linux操作系统下软件的安装与卸载

    在Windows下安装软件时,只需运行软件的安装程序(setup.install等)或者用zip等解压缩软件解开即可安装,运行反安装程序(uninstall.unware."卸载" ...

  9. Linux操作系统下SSH默认22端口修改方法

    NO 1: 01假如要改SSH的默认端口(22),那么你只要修改:/etc/ssh/sshd_config中Port 22,这里把22改成自己要设的端口就行了,不过千万别设和现已有的端口相同哦,以防造 ...

最新文章

  1. python3对比python2的更新点
  2. 浅析几种线程安全模型
  3. linux命令使用全集
  4. Leetcode 150. 逆波兰表达式求值 解题思路及C++实现
  5. 第七章 线性回归预测模型
  6. wxWidgets:窗口样式
  7. 线程安全的map_面试必问-几种线程安全的Map解析
  8. Spring @Autowired Annotation教程
  9. docker制作深度学习镜像(以windows环境下为例)
  10. c foreach循环_C ++中的foreach循环
  11. FineReport帆软学习笔记汇总
  12. 自动化测试之—Hamcrest匹配器
  13. Java数据库课程设计-招聘人才管理系统
  14. h264 pps sps详解
  15. 轻松打造企业内部NOD32升级服务器
  16. 【源码来袭】使用vue编写国旗头像项目
  17. Streamset数据同步报错问题
  18. 云手机虚拟机服务器配置,云手机虚拟机服务器
  19. 猫眼CEO郑志昊:为什么说产品思维已“死”?
  20. Java——重写hashCode()和euqals()方法

热门文章

  1. 任正非圣诞发表文章:我在生活所迫时创立华为
  2. web service在java_java web Service的使用
  3. 理工附中2021年高考成绩查询,人大附中、理工附中、101中学、十二中等5区10校高考成绩汇总!...
  4. windows服务简介
  5. linux清空文件命令
  6. 在Word2019中,如何让回车符消失
  7. PHP开发微信小程序的经验总结
  8. ubuntu 8000端口被占用
  9. java组件叠加显示,如何让上层的组件一直在上层显示
  10. LaTeX 嵌入MATLAB 绘图的字体