您的位置:首页 > 运维架构 > Linux

Linux运维+系统服务搭建(三)用户管理及权限、IO重定向、grep、正则表达式

2016-09-30 11:55 691 查看
计算资源

内核—程序(进程)–交互工具shell

权限

用户,容器,关联权限—-我们将所有用户放入不同的容器让其关联不同的权限,简化方便指配权限—-就达到了用户组

计算机如何实现获取每个用户,对于计算机每个用户都是正对于外界就是个标示符。用户组也是标示符。

进程是用户的执行程序的一个代理,那么我们可以理解为的就是当你用不同的用户登录执行命令,那么进程的用户组就是不同用户的代理进行执行操作。而用户对于计算机的操作统一来看就是发起一个进程。

linux上每个文件都有三个权限

安全上下文

权限r,w,x

文件:

r:可读,可以使用例似cat等命令查看文件内容;

w:可写,可以编辑或删除此文件

x:可执行,exautalbe,可以命令提示符下当做命令提交给内核运行

目录:

r:可以对此目录执行ls以列出内部的所有文件

w:可以在此目录中创建文件

x:可以使用cd切换进此目录也可以使用ls -1查看内部文件的详细文件

rwx:有以上权限则全部显示

没有则以–显示

只读文件:r–

读和写:rw-

无权限:—

如何用二进制标示呢

0 000 —:无权限

1 001 –x:执行

2 010 -w-:只写

3 100 r–:只读

4 101 r-x:读和执行

5 110 rw-:读和写

6 111 rwx:读写执行

rwxr-xr-x 代表的数字是644

计算机如何根据用户登录去得到用户或者用户组的UID或者GID

如同解析道理:名称解析,www.baidu.com—–那么我们需要有个数据库存储来对应

那么对于用户来说用户信息库的数据库是什么呢??

就是在 /etc/passwd

用户组的数据库是什么?

就是etc/group

在上述的两种数据库里面,存放了一种映射关系。用户登录之后会根据映射关系去解析

用户想要密码:

影子口令:

用户要密码: /etc/shadow

组:/etc/gshadow

用户类别:

管理员和普通用户

普通用户分为系统用户和一般用户根据UID号进行权限管理

管理员的UID–0

普通用户UID 1-65535

系统用户:1-499

一般用户:500-60000

所以我们根据上述的UID的范围我们就可以知道用户的身份

用户组类别:

管理员组

普通组

系统组

一般组

用户组类别:

基本组、私有组、附加组(额外组–即为基本组之外的所有组的统称)

假如创建用户的时候,没有创建用户指定所属的组,系统会根据自动为

用户创建个与用户名相同的私有组

一个进程去访问文件那么他到底是如何判断权限来进行访问

的呢?

根据进程所属用户的权限是否和文件权限匹配,第二个就是根据用户身份相同或者数组身份相同否则就是最后的权限描述。

权限描述格式:rwxr-xr-x

account登录名

password:

UID

GID

comment

HOME DIR:家目录

SHELL;用户默认的shell

/etc/shadow

account登录名

encrypted password:加密的密码

密码中的符号*标示锁定

!可以改动密码多加几个!号

加密方法:

对称加密,加密和解密使用同一个密码

公钥加密:每个密码都成对出现,一个为私钥,一个为公钥

单向加密:(散列加密或者指纹加密),加密前明文,加密后密文,提取数据特征码

—-一般用于校验数据是否被改动

两大特性–单向加密:

1、雪崩效应,初始条件的微小改变引起结果巨大的变化,防止暴力攻击

2、定长输出:

MD5—message Dgiest,128位定长输出

加密文件格式输入:md5sum 文件名

SHA1:Secure Hash Algorithm,160位定长输出

—-提高加密安全程度我们可以再随机生成salt为其加点盐

公钥密码加密长度比对称加密长度

长,所以效率低安全度高

密码需要定期更换来保持它的相对安全性,

useradd USERNAME

groupadd GRPNAME

用户管理

useradd,userdel,usermod,passwd,chsh,chfn,finger,id,chage

组管理

groupadd,groupdel,groupmod,gpasswd

三类用户

u:属主

g:数组

o:其他用户

权限管理

chown chgrp chmod

chown USERNAME file

chown:改变文件属主(只有管理员可以使用此命令)

-R:修改目录及其内部文件的属主

–reference=/path/to/somefile file,….

chgrp GRPNAME file

-R:修改目录及其内部文件的数组

–reference=/path/to/somefile file,….

chmod:修改文件的权限

修改三类用户的权限

修改某类用户或某些类用户权限

修改某类的用户某位或某些位权限

chmod MODE file,…

-R:修改目录及其内部文件的数组

–reference=/path/to/somefile file,….

修改某类用户或者某些类用户权限

u,g,o,a

chmod u=rwx test.txt

chmod o=rx test.txt

修改某类用户的某位或者某些位权限

u,g,o,a

chmod u-x test.txt 去掉属主的可执行权限

chmod o+x,u-x test.txt

三类同时有执行权限 chmod a+x test.txt或者

chmod +x test.txt

文件不能具有执行权限,如果结果有执行权限则将其权限加1

bash的配置文件

/etc/profile

/etc/profile.d/*.sh

/etc/bashrc

个人配置

~/.bash_profile,~/.bashrc

profile类的文件:

设定环境变量

运行命令或脚本

bashrc类的文件

设定本地变量

定义命令别名

登陆式shell读取配置文件过程

/etc/profile

/etc/profile.d/*.sh

~/.bash_profile,~/.bashrc

非登陆式的下述倒着读取

/etc/profile.d/*.sh

~/.bash_profile,~/.bashrc

su -完全切换 读取环境变量文件

su 半完全变换 不读取环境变量文件

I/O及重定向

运算器、控制器:cpu

存储器:RAM

输入设备、输出设备

程序:指令和数据

控制器:指令

运算器

存储器

地址总线:内存寻址

数据总线:传输数据

控制总结:控制指令

寄存器:cpu暂时存储器

I/O:硬盘

程序

数据或者指令来源:

输入设备:键盘–鼠标–硬盘–网卡—-》Input

Output:显示器—硬盘—

系统设定

默认输入设备(标准输入–STDIN–0标识–默认键盘)、

默认输出设备(标准输出–STDOUT–1标识–默认显示器)、

标准错误输出;STDERR–2标识–默认显示器

I/O重定向:改变了输入或者输出路径

linux如何描述I/O输入输出

>输出重定向---会覆盖原目标原有内容---覆盖输出
>>:会在原有目标后面追加内容----追加输出


如果防止记错命令敲错

那么可以使用set 通过type set和help set查看帮助文档

我们可以使用set -C开启不会输出重定向 强制覆盖输出可在后面加> |

set+C表示关闭hui覆盖重定向

重定向错误输出:将输出的错误信息输入追加原有文件 2>

2>>

重定向标准输出或者错误输出到同一个文件—&>命令

cat 没有文件的话默认自己后面追加内容

<<:此处生成文档

cat <<END标记结束标示(任意和下面结束 符号保持一致)


The first

The second

END

cat >> test.txt << EOF

<输入重定向

管道:前一个命令的输出,作为后一个命令的输入

echo “hello,world.”

我想讲上面的所有小写字母的输出改为大写

echo “hello,world.” | tr ‘a-z’ ‘A-Z’

grep以及正则表达式

grep,egrep,fgrep

grep:根据模式搜索文本,并将符合模式的文本行显示出来

Pattern: 文本字符和正则表达式的元字符组合而成匹配条件

grep

-i:

–color:将符合的内容高亮

-v:显示没有被模式匹配到的行

-o:只显示抓取的内容



正则表达式:

REGular EXPression REGEXP

元字符

.:匹配任意单个字符



匹配次数:

*:匹配其前面的字符任意次



o.*:任意长度的任意字符---*匹配的是.




\?:匹配前面字符一次(根据某个模型去找符合条件的所以会匹配出显示的所有)


{m,n}—–(\作用用来转义防止被认为其他)

匹配前面的字符至少m次,至多n次

位置锚定:

^:锚定行首,此字符后面的任意内容必须出现在行首


$:锚定行尾,此字符后面的任意内容必须出现在行尾


^$:空白行

匹配次数(贪婪模式)

*:匹配任意长度的任意字符

?:匹配一个任意字符

【】:匹配指定范围内的任意单个字符

【^】:匹配范围内的任意单个字符

【:punct:】所有的标点符号

【:space:】所有的空白字符

【:lower:】小写字母

【:upper:】大写字母

【:alpha:】大小写字母

【:digit:】数字

【:alnum:】数字和大小写字母



\<或者\b:其后面的任意字符必须作为单词首部出现–锚定词首

>或者\b:其单词的任意字符必须作为单词的尾部出现—锚定词尾

\<root\>:精确匹配root




分组:\(\)

\(wo\)*:重写wo本身多次或者0次




后向引用

\1:引用第一个左括号以及与之对应的右括号

\2:如上往下依次类推

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: