Linux简单操作权限和相关工具
Linux简单操作权限:
linux是一个多用户操作系统,可以同时登录多个用户,各自操作各自的,互不影响,这时候就会出现一些问题,比如一个人把另一个代码删除或者修改了,因此系统需要进行权限的控制和设置。
系统操作权限:
主要将用户分为俩大类:root管理员用户和普通用户,普通用户在系统上的操作是受限制的:比如安装或卸载软件,修改系统时间......
在这些基础上,就存在一些指令:su 切换用户 useradd 添加用户 userdel 删除用户 passwd 设置用户密码
创建一个用户:
如果是普通用户,则没有权限创建新用户,只有转换为root管理员才可以新建用户。如果不切换root用户,依旧可以进行创建删除用户应该怎么办?这时候就有一个新的指令sudo,它的作用是给普通用户当前的操作进行临时提权。
举例:
普通用户对/root,即根目录下的root目录的内容没有访问权限,但加入sudo就可以对其进行访问。
文件操作权限:
系统将文件访问的用户分为了3类:
u 文件所有者:默认都是文件的创建者,文件的访问控制权限都是由文件所有者进行控制的
g 文件所属组:某一类用户可以对文件进行某些操作
o 其他用户:除了文件所有者和文件所属组,其余都称为其他用户
系统对用户能够对文件的操作分为三类:
r 可读:用户可以查看文件内容(对于目录来说,就是是否可以查看目录中文件的信息)
w 可写:用户可以修改文件的内容(对于目录来说,就是是否可以在目录中创建和删除文件)
x 可执行:可以执行这个文件(对于目录来说,就是是否可以进入这个目录)
举个例子:
对于a目录来说,文件所有者可以进行读写执行操作,对于文件所属组成员来说,可以进行读写执行操作,对于其他用户来说,可以进行读和执行操作
当然,如果权限用字符形式存储,比较耗费磁盘空间,因为其至少要占9个比特位。因此我们可以用二进制的比特位进行存储,比如
rwxr-xr-- -------> 111 101 100 ------->742
权限的相关指令:
01umsak
umask:查看或者设置文件的创建权限掩码,掩码影响了文件创建出来后的默认权限,默认权限是掩码取反(仅限于命令行终端使用命令创建)对于touch命令默认给定权限为666,unmask掩码默认权限为002
我们可以看到,默认umask值为002,所以创建出a文件的权限应为其取反,即775,又因为touch默认给定权限为666(110 110 110),默认都没有可执行权限,所以775(111 111 101)应变为(110 110 100)即664,所以最后权限为rw-rw-r--
其实实际计算权限的方法是:创建文件时给定的默认权限与默认掩码取反的值进行相与
用touch创建一个文件b.txt,touch默认权限为666(110 110 110),umask默认掩码被修改为033,取反为744(111 100 100),相与之后最终结果为 644,即rwxr--r--
02 chmod
chmod:修改一个已存在的文件的权限 格式:chmod [augo] [+-] [rwx]
也可以通过8进制数字直接修改:chmod 777 文件名
对b.txt进行修改,首先o+x,对其他用户加入执行操作,然后o-r删除其他用户的可读操作
03 chown和chgrp
chown:修改文件所有者 chgrp:修改文件所属者
对a.txt的所有者和所属者进行修改,刚开始a.txt所有者和所属者分别为ap ap,修改后为dev dev(注意:普通用户不能修改所有者和所属者,所以要进行sudo提权操作)
沾滞位:用户在同一个目录下,可以创建文件,删除自己的文件,但不能删除别人文件(1.只针对其他用户 2.不能删除别人文件)
对于dev用户和ap用户来说,他们都可以打开/home/temp目录,并且都在次目录底下创建了自己的文件
但是对于dev用户来说,它可以将ap用户的文件删除,当然,ap用户也可以删除dev用户的文件,这就显得很不合理, 所以对于这个问题就可以用沾滞位来解决
用法:chmod o+t 文件名
我们将temp的普通用户中的权限改为rwt,这样其他用户就无法删除我们的文件
Linux简单工具
常用工具:yum yim gcc/g++ makefile git
yum:软件包管理工具(在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安 装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装. 软件包和软件包管理器, 就好比 "App" 和 "应用商店" 这样的关系.yum(Yellow dog Updater, Modifified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上.)
查看软件包:yum list |grep lrzsz yum search lrzsz
安装软件包:yum install lrzsz
卸载软件包:yum remove lrzsz
lrzsz工具:这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件. 安装完毕之后可以通过拖拽的方式将文件上传过去
在安装完lrzsz 之后,我们可以使用以下命令:
sz ap.c 将Linux上的文件传到主机
它会弹出来这样一个界面,我们可以选择要保存的位置
rz 将主机上的文件传到Linux
我们可以选择电脑上的文件,然后传送到Linux上面
vim:编辑器(类似于windows底下的文本文档)特点:只能用键盘操作
vim的操作模式:一共有12种操作模式,其中有三种是必用模式
普通模式:vim打开文件后的默认模式,通过命令进行文本操作
插入模式:数据插入,即编写文档内容
底层模式:文件的保存和退出
模式切换: vim 文件名 (打开文件,如果没有改文件,则自动创建)
普通模式插入到插入模式:i(进入插入模式,光标在原来位置)
o(进入插入模式,光标在下一行的起始位置)
a(进入插入模式,光标向后移动一个位置)
I(进入插入模式,光标在起始位置)
O(进入插入模式,光标在上一行的起始位置)
A(进入插入模式,光标在此行的末尾位置)
插入模式切换到普通模式:esc
普通模式切换到底层模式::(英文冒号)
底行模式的操作:w---保存 q-----退出 wq------保存并退出(w必须在q前面) q!------不保存强制退出
普通模式下的操作:
移动光标:hjkl---左下上右 ctrl+f/b-----上下翻页 gg/G------文档首行和尾行
内容操作:yy------复制光标所在行 p------粘贴
Linux简单操作权限和相关工具相关推荐
- 复习Linux基础操作---权限操作
shell命令以及运行原理 Linux严格意义上说的是一个操作系统,我们称之为"核心(kernel)" ,但我们一般用户,不能直接使用kernel.而是通过kernel的" ...
- 【Linux】Linux简单操作之系统管理
1.date : 显示系统时间 注 :系统操作与所在的文件夹无关,在哪都能操作. 2.su : 切换账号 注: (1)如果高级用户切换低级用户可以直接切换,不用密码 (2)如果低级用户切换高级用户不能 ...
- 【Linux】Linux简单操作之文件管理
1.mkdir : 创建文件夹 2.rm : 删除文件或目录 注: 凡是涉及到路径,绝对路径相对路径都可以 (1)直接使用 rm + 文件名可以删除文件,但删除不了文件夹 (2)删除时会有一行提示 ...
- linux简单操作指令
1.ls 展示列表 2.ls -a 展示所有列表矩阵展示 3.ls -l 列表展示文件 不包括隐藏文件 4.ls -al 列表展示所有文件 5.pwd 显示当前目录 6.cd 切换目录 7.cd ~ ...
- 【Linux】Linux简单操作之安装、使用tomcat
tomcat安装 1.下载tomcat到指 文件夹 : home / local 中 2.将文件见解压到文件夹 :usr / local 当中 代码实现 : tar -zxvf -C /usr/loc ...
- 【Linux】Linux简单操作之vi与vim编辑器
一.vi与vim的区别 vi类似于普通的记事本,没有字体颜色的变化,vim对一些关键字会进行变色处理 二.vi 1.启动vi编辑器 格式: vi 文件名 注: (1)如果文件存在,则打开该文件 (2) ...
- 【Linux】Linux简单操作之管道与重定向
一.重定向 1.重定向 使用符号 > 例如: echo "hello world" > a.txt 注:如果文件不存在则会自动创建文件 2.重定向覆盖: 代码实现: e ...
- 【Linux】Linux简单操作之压缩解压
一.tar : 归档 格式:tar 参数(必须有) 要被压缩的文件或目录 1.创建归档文件 格式: tar -zvcf 归档文件名 要归档文件列表 注意: (1)z是压缩 v是显示详细信息 c是创建压 ...
- 【Linux】Linux 简单操作指令之磁盘管理
注:有关Linux全面的命令可以到网站:http://linux.51yip.com/查询 1.pwd : 显示当前所在位置 2.ll : 显示当前目录下的内容 注: (1)如果开头为一个 d 则为一 ...
最新文章
- Vmware虚拟机的复制后无法使用的问题和解决
- 分布式系统中只有两个难题
- request.getRemoteAddr()和request.getRemoteHost()
- C++类构造函数初始化列表
- springmvc_3(将数据放入map中)
- vue项目中使用mock(二)
- duino例程 stm32_stm32duino
- asp.net c# lock 有关
- MySQL2索引优化
- redis安全设置及主从配置
- Android免root流量防火墙,简单小程序
- vmware 虚拟机恢复ghost镜像文件
- 推荐多款好看的报表图表配色方案(转载)
- 重装系统后开机启动项菜单如何删除
- Minimum supported Gradle version is 5.4.1. Current version is 4.10.1. If using the gradle wrapper
- 青岛科技大学和青岛大学计算机专业,青岛科技大学和青岛大学哪个好呢?优势的专业分别是什么?...
- python3字典运算_Python3字典与集合
- php中table是什么意思,table标签是什么意思
- 新版的豌豆荚如何连接电脑
- L1-3 打折 (5 分)——2018