0

0

Linux基本权限

雪夜

雪夜

发布时间:2025-04-18 12:44:01

|

309人浏览过

|

来源于php中文网

原创

前言

本文介绍了shell的相关概念以及linux中的基本权限。


一、Shell命令以及运行原理

Linux严格意义上说的是一个操作系统,我们称之为“核心(kernel) “ ,但我们一般用户,不能直接使用kernel。而是通过kernel的“外壳”程序,即shell,来与kernel沟通。

1.Shell的定义

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

将使用者的命令翻译给内核(kernel)处理。将内核的处理结果翻译给使用者。 对比windows GUI,我们操作windows 不是直接操作windows内核,而是通过图形接口,点击,从而完成我们的操作(比如进入D盘的操作,我们通常是双击D盘盘符或者运行起来一个应用程序)。(图形化界面) shell 对于Linux,有相同的作用,主要是对我们的指令进行解析,解析指令给Linux内核。反馈结果在通过内核运行出结果,通过shell解析给用户。(命令行)

Shell是外壳的统称。 centos 7中的Shell是bash。 Shell是包裹在系统外的一层软件层:

Linux基本权限
2.为什么用户不能直接使用kernel?用户不擅长直接与操作系统打交道(要用户直接去和硬件进行交互比较困难),所以需要一个中间介质来辅助用户可能会发布非法任务给系统,导致内核挂掉。为了保护内核,就需要用Shell先对任务进行分辨,再将合法的任务翻译给内核(非法的任务会被拒绝)。当然Shell为了保护自己,它执行用户的任务也是将任务分配给子进程执行,即使子进程挂掉也不会影响Shell。二、Linux中的权限

首先Linux中存在两类用户: root用户:超级管理员。(要注意保管好root密码) 普通用户:受权限约束的用户。 从普通用户切换为root用户:su / su -(前者在当前路径下登录,后者重新在家目录进行登录) 【需要root密码】 退出root用户:exit/Ctrl + d 从root用户切换为普通用户:su (用户名) 【不需要密码】 如果是普通人需要使用root的命令但是不想将身份切换为root可以使用指令:sudo + (命令) 需要输入用户的密码(十到十五分钟内不需要再次输入密码) 作用是短暂提权。 sudo whoami得到的是root的身份(以root身份执行对应的命令) 要能使用sudo命令,前提是当前用户是受系统信任的命令,要被添加到/etc/sudoers。(相当于白名单用户) 给受信任的用户提供最少的障碍。

1.权限是什么?

权限:一件事情是否被谁(该角色是否被限制)做(是否有对应属性),即权限是约束两个东西,一个是人,一个是属性。 权限是约束人的(一个或某些群体)。 目标对象(电影网站,音乐app等),本身没有该对应的属性(业务),比如在音乐app看电影。 举个例子:某些视频软件,它的部分视频是需要视频会员才能进行观看的。 Linux中的角色:拥有者(owner,只能是具体的某个人)、所属组(grouper)、其他人(other)。 用户(具体的人)和角色(身份)之间是互补的不是冲突的,一个人可以有多种身份。 举例: 文件 = 内容 + 属性。 属性:

一个文件将用户分为三种即上面的三种角色。文件后缀

注意:Linux本身不根据文件后缀对文件做区分,但是gcc等工具(在Linux中也是一个文件)它们对文件后缀是有要求的。 那么Linux中如何对文件类型做区分呢? 是根据文件属性。ls -l显示的文件各列属性中的第一行列用来区分文件类型:

代码语言:javascript代码运行次数:0运行复制
- 普通文件(源文件、库文件、可执行程序、文档压缩包等)d 目录文件c 字符设备文件(键盘、显示器)b 块设备文件(磁盘)l 链接文件(类似windows中的快捷方式)p 管道文件
一个文件有三种权限:读文件(r)、写文件(w)、执行文件(x) 文件的属性信息和文件的角色(角色是由具体的人扮演)对应起来(如果没有对应的权限,就是‘-’)。
Linux基本权限
2.如何操作权限呢?(怎么修改权限)

只有拥有者或者root用户可以对文件权限进行修改

1. 修改文件属性直接给角色增删权限代码语言:javascript代码运行次数:0运行复制
chmod u-r (文件名)#给拥有者去掉读权限chmod u+x (文件名) #给拥有者加上执行权限chmod g-rwx (文件名) #将所属组所有权限去掉chmod o+rwx (文件名) #将其他人加上所有权限chmod u+r,g+rwx,o-wx (文件名) #多个操作一起也是可以的chmod a-rwx (文件名)#将所有人的所有权限全部去掉

注意:拥有者与所属组的权限是不相关的,拥有者的权限只是自己角色的权限。

eshop网上书店源码
eshop网上书店源码

适合初学的标准三层架构,采用ajax,页面布局div+css符合w3c,用vs自带的sqlserver,免配置sqlserver,使用方便,里面共有5个项目,点击最外层的.sln直接可运行。网站采用asp.net 用户角色配置(membership,UserRoles),用户角色、权限可在asp.net配置里修改,注册,登陆均采用asp.net登陆控件,网站根据用户角色自定义sitemap,基本上

下载
八进制方案 文件属性是用1/0表示的(1表示有该权限,0表示没有该权限)代码语言:javascript代码运行次数:0运行复制
rwx rwx rwx111 110 000  7     6    0

这种方案叫做ugo±rwx方案,即八进制方案 因此我们修改属性也可以用指令:

代码语言:javascript代码运行次数:0运行复制
chmod 660(八进制) (文件名)#修改属性
2. 修改文件角色文件拥有者修改 可以将文件给别人,但是需要用root的权限强制给别人(因此也可以将文件要回来)代码语言:javascript代码运行次数:0运行复制
sudo chown (用户名) (文件名)
文件所属组修改代码语言:javascript代码运行次数:0运行复制
sudo chgrp (用户名) (文件名)
同时修改拥有者和所属组代码语言:javascript代码运行次数:0运行复制
sudo chown (用户名):(用户名) (文件名)
3.为什么要有权限

便于系统进行安全管理。

为什么我们创造出的文件的默认权限是我们所看到这样?
Linux基本权限

首先,LInux规定: 目录: 起始权限为777; 普通文件: 起始权限为666. 其次,系统还有系统掩码umask,凡是在umask中出现的权限都必须在起始权限中去掉!因为umask 为0002 =>000 000 010,所以我们创造出的文件的默认权限就是这样了。

注意:如果我们要进入一个目录我们需要什么权限? 答:x权限,即执行权限。 这就是为什么目录的默认起始权限位777。

三、粘滞位1.背景

Linux系统中有很多用户,有时候会有一种特定情况需要我们在一个公共目录下进行临时文件的操作(增删查改)。 具体某个用户的目录是不能被别人访问的(没有权限),因此需要一个公共的目录,大家一起进行文件操作。 由于普通用户没有权限,因此一般这个目录是由root进行创建的。 刚这个目录的权限必须是777,以为目录的拥有者和所属组都是root,其他人是others,为了让其他人能在该目录下进行文件操作,必须将权限全部打卡。

2.具体操作

粘滞位是一种特殊的权限,由root用户进行设置,给others设置该权限。 在一个公共目录下,我们都有对目录的rwx权限,因此即使其他人的文件内容不对我开放,即我没有读取它的文件的权限,我们也是可以将它的文件删除的(这是创建文件和删除文件是目录的权限)。 为了禁止这种删除他人文件的行为,我们需要给该公共目录设置粘滞位。

代码语言:javascript代码运行次数:0运行复制
chmod +t (公共目录名)#给others设置了粘滞位(将x设置为了t)
总结

相关专题

更多
js获取数组长度的方法
js获取数组长度的方法

在js中,可以利用array对象的length属性来获取数组长度,该属性可设置或返回数组中元素的数目,只需要使用“array.length”语句即可返回表示数组对象的元素个数的数值,也就是长度值。php中文网还提供JavaScript数组的相关下载、相关课程等内容,供大家免费下载使用。

557

2023.06.20

js刷新当前页面
js刷新当前页面

js刷新当前页面的方法:1、reload方法,该方法强迫浏览器刷新当前页面,语法为“location.reload([bForceGet]) ”;2、replace方法,该方法通过指定URL替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,不能通过“前进”和“后退”来访问已经被替换的URL,语法为“location.replace(URL) ”。php中文网为大家带来了js刷新当前页面的相关知识、以及相关文章等内容

416

2023.07.04

js四舍五入
js四舍五入

js四舍五入的方法:1、tofixed方法,可把 Number 四舍五入为指定小数位数的数字;2、round() 方法,可把一个数字舍入为最接近的整数。php中文网为大家带来了js四舍五入的相关知识、以及相关文章等内容

756

2023.07.04

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

479

2023.09.01

JavaScript转义字符
JavaScript转义字符

JavaScript中的转义字符是反斜杠和引号,可以在字符串中表示特殊字符或改变字符的含义。本专题为大家提供转义字符相关的文章、下载、课程内容,供大家免费下载体验。

514

2023.09.04

js生成随机数的方法
js生成随机数的方法

js生成随机数的方法有:1、使用random函数生成0-1之间的随机数;2、使用random函数和特定范围来生成随机整数;3、使用random函数和round函数生成0-99之间的随机整数;4、使用random函数和其他函数生成更复杂的随机数;5、使用random函数和其他函数生成范围内的随机小数;6、使用random函数和其他函数生成范围内的随机整数或小数。

1091

2023.09.04

如何启用JavaScript
如何启用JavaScript

JavaScript启用方法有内联脚本、内部脚本、外部脚本和异步加载。详细介绍:1、内联脚本是将JavaScript代码直接嵌入到HTML标签中;2、内部脚本是将JavaScript代码放置在HTML文件的`<script>`标签中;3、外部脚本是将JavaScript代码放置在一个独立的文件;4、外部脚本是将JavaScript代码放置在一个独立的文件。

659

2023.09.12

Js中Symbol类详解
Js中Symbol类详解

javascript中的Symbol数据类型是一种基本数据类型,用于表示独一无二的值。Symbol的特点:1、独一无二,每个Symbol值都是唯一的,不会与其他任何值相等;2、不可变性,Symbol值一旦创建,就不能修改或者重新赋值;3、隐藏性,Symbol值不会被隐式转换为其他类型;4、无法枚举,Symbol值作为对象的属性名时,默认是不可枚举的。

554

2023.09.20

c++ 根号
c++ 根号

本专题整合了c++根号相关教程,阅读专题下面的文章了解更多详细内容。

24

2026.01.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL 教程
PostgreSQL 教程

共48课时 | 7.7万人学习

Git 教程
Git 教程

共21课时 | 2.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号