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------粘贴