linux加密文本编辑器,Linux学习(二)- 用户,组和权限,vim文本编辑器

本文详细介绍了Linux系统中的用户、组和权限管理,包括用户和组的创建、修改和删除,以及权限的设置和管理。重点讲解了用户密码、用户和组ID、用户和组的文件、权限位的含义和操作,以及如何通过`chown`、`chmod`等命令进行权限变更。此外,还涵盖了特殊权限如SUID、SGID、 Sticky以及ACL的使用。文章旨在帮助读者深入理解Linux系统中的用户和权限管理机制。
摘要由CSDN通过智能技术生成

前言:接着上一篇Linux学习(一)

1.用户,组和权限

2.文本处理工具

3.vim文本编辑器

4.shell脚本编程基础

一,用户,组和权限

1.用户

用户

管理员:root,0

普通用户:1-65535

shell 交互式登录

非交互式登录 /etc/nologin

有关用户和用户密码的基本命令

vim 查看修改,有颜色

72ba27343badb9d45b9b63c39a71ef23.png

cat 查看

8377023a1b8f352c395fd401e45f9fab.png

cat/etc/passwd 查看用户信息,显示7列,以 : 分隔

b272ad00612742d020db05dcf4192d88.png

登录名:密码:UID:GID:GECOS:家目录:登录的shell

GID:主要组的组id,附加组的在group文件中

shell:空白默认为最传统的 sh shell

cat/etc/shadow 查看用户密码,显示9列

pwconv 将passwd当中的密码映射到了 /etc/shadow

映射后的passwd $id$salt$加密后的字符串

salt不一样,即使id一样,密码字符串不一样

3d30364f4d3a2e5f77a6da9d26853f02.png

vim /etc/shadow-

pwunconv 取消映射,密码仍然放在/etc/passwd

a9e323b2a85f5471bbcea6e12faa5715.png

用户名:密码:密码上次修改的日期:密码的最小存活期:密码的最大存活期:密码过期前几天提醒:密码过期后不改密码触发用户过期的时间:用户过期时间:保留位

密码上次修改的日期:距离到1970.1.1的天数(Linux开发出来的日期)

最小存活期:存活期前不能更改密码 " " date +%s

2.组

有关组和组密码的基本命令

cat /etc/group 组 4列

65a0b19c35c43dd69f018caf38680b31.png

组名:组密码:GID:组成员

组密码:当临时需要获取组信息,进入时需要输入密码

通常没有密码需要创建,没有密码无法临时加入,只能root永久加入

组成员:附加组成员

/etc/gshadow组密码

grpconv 将组密码映射到了/etc/gshadow

grpunconv 取消组密码的映射

8735e76b9d6941ad8687439b8fcfbe4c.png

组名:组密码:管理员:组成员

3.有关用户和组的其他命令

用户

useradd/adduser 创建用户

-u 指定UID 默认从1000开始往后

9b1694d0201923022f04ad2af1f6beb5.png

-o 与 -u 配合,不检查UID的唯一性

109cd61fa1f31e3bdb3ef76e19890c89.png

xiaohuihui和huitailang 同一个UID,顺序优先先创建的

-g 指定用户的主要组为某个已存在的组,可以指定GID也可以指定组名

-G 指定附加组 以逗号为间隔可以同时指定多个,组必须事先存在,可以指定GID也可以指定组名。

-c 注释信息

-d 指定目录路径 ,如不指定默认在/home下与用户同名。指定时注意,目录名需已存在,基名不存在。

-s 指定登录shell如下

-N 不创建私用组做主组,使用users组做主组

-r 创建系统用户 (centos 6及之前的版本 < 500, centos 7 < 1000)

usermod 修改用户信息

-u NEWUID 用户名 修改用户的uid

-g NEWGID 用户名 修改用户的主要组 可以指定组名,也可以指定GID

-G GID或组名[,组名] 用户名 设定用户的附加组为哪些组,这前的附加组信息被覆盖

-a 与-G 结合,-aG 使用可以增加用户的附加组,而不会影响之前的附加组

-s shell名 用户名 修改用户的Shell=chsh -s shell 用户名

-c "描述信息" 设置用户的描述信息 =chfn

-d /path 用户名 修改用户的家目录,新家目录不会自动创建

-m 把用户原来家目录下的文件移到新的家目录

-d -m 若要创建新家目录并移动原家数据,同时使用-m选项

cc19686562d4b4c5f820c934146377ca.png

-l newname 用户名 修改用户的名称

-L lock指定用户,在/etc/shadow 密码栏的增加 ! 等同于passwd -l

-U unlock指定用户,将 /etc/shadow 密码栏的 ! 拿掉 等同于passwd -u

-e YYYY-MM-DD 指明用户账号过期日期

-f 设定非活动期限

userdel 删除用户

-r 删除用户名连同家目录及邮箱文件一起删除

groupadd

-g GID 组名 创建组

groupmod 修改

-n newname 组名 修改组名

-g newgid 组名 修改组id

groupdel 删除组

groupmems 对组成员进行操作 仅root执行

-g 组名 -a 用户名 将某用户以附加组方式加入到某组当中

-g 组名 -d 用户名 将某用户从指定组当中踢出

-g 组名 -p 清空所有组成员

-g 组名 -l 查看指定组有哪些成员(仅显示附加组)

groups 用户名

查看指定用户属于哪些组(包含主组和附加组)

newgrp 组名(普通用户执行)

非附加组成员的普通用户在正确输入组密码后可以使用该命令临时变更主要组.

附加组成员的普通用户无需输入密码可以使用该命令临时变更主要组. 原主要组临时变成附加组

passwd username 修改密码

普通用户改密码 需要先输入旧密码 不符合要求的密码被拒绝重新输入

root改密码 直接输入新密码 任意设置密码

passwd -l 锁定用户 实际就是在密码位前加!!

a5a53b888a7ad1e598c82c1a2619e6f1.png

-u 取消用户锁定

-e 强制用户下次登录时更改密码

-n 指定最短使用期限

-x 最大使用期限

-w 提前多少天开始警告

-i 非活动期限

--stdin username 从标准输入接收用户密码 显示密码 只输入一次 只有root可以

dc4680433c1e2be05b3d1d734f27a453.png

gpasswd 设置组密码 管理员可以执行

-a 用户名 组名 将某用户以附加组方式加入到某组当中 管理员可以执行

-d 用户名 组名 将某用户从指定组当中踢出 管理员可以执行

-M 用户名[,用户名...] 组名 设置某组的用户列表 仅root执行

-A 用户名[,用户名...] 组名 设置某组的管理员列表 仅root执行

组管理员在不是组成员的情况下,仅能修改组密码,和将其他人加入组和踢出组,但并不具有组成员的权限

其他

id -u 显示UID

-g 显示GID

-G 显示用户所属的组的ID

-n 显示名称,需配合-u -g -G使用

a9eb926cc0fc7b3549656ee4115c313f.png

su username 表示非登录式切换 需要输入密码

su - username 表示登录式切换

su - 表示登录root

当前用户是root时,切换到其他用户不要密码

chage (修改文件 不建议使用 容易出错)

6497e712f5aaf1e26e1830850df75e3c.png

-d 上一次修改时间

-E 密码过期时间

-I(大写i) 密码过期之后账户过期

-m 最小存活期

-M 最大

-W 提醒

-l 显示密码策略 查看修改密码信息

c6c04901da6145274778ab802cc25e89.png

示例:

chage -d 0 tom 下一次登录强制重设密码

chage -m 0 –M 42 –W 14 –I 7 tom

chage -E 2016-09-10 tom

4.权限

默认权限

chown 更改文件的所属人,只有root可以操作

用户名 filename 只更改owner

用户名.组名 filename 或 用户名:组名 filename 同时更改owner和group

如果.或:前省略,则只改group

-R 递归

e5fdba8db95b0e25094d75c569484a57.png

chgrp 组名 filename

文件的owner可以使用chgrp修改文件的group,但该owner一定要属于目标group

-R 递归

be2cfaa897f01a19bc967067f93e5954.png

权限的表示形式

024c55cc9d0d3556b513c3df2e5e3ec2.png

-owner-group-other

read-r write-w exe-x

d 表示目录

chmod 修改权限

r:4 w:2 x:1

可以随意组合

87a184a54ae843ff684bcbaba57ff17f.png

-R 递归

X:只给目录及已有部分x权限的文件加上x权限,不给三个权限位完全没有x的文件加x

文件权限

当仅r权限作用在文件上的时候,用户可以读取该文件的内容:cat less more head tail

当仅w权限作用在文件上的时候,用户可以修改文件的内容:>>

当仅x权限作用在文件上的时候,无作为.

当rw权限作用在文件上的时候,用户即能读与能修改:cat less more head tail vim nano > >>

当rx权限作用在文件上的时候,用户可以执行该文件

当wx权限作用在文件上的时候,权限等同于仅w权限.

文件的常见权限是r-- rw- rwx

目录权限

当仅r权限作用在目录上的时候,用户可以短列出目录下的文件名.

当仅w权限作用在目录上的时候,无作为.

当仅x权限作用在目录上的时候,用户可以进入该目录,并且在知道具体文件名且具有相关权限的情况下,可以访问子文件.

当rw权限作用在目录上的时候,权限等同于仅r权限

当rx权限作用在目录上的时候,用户进入,长列出.

当wx权限作用在目录上的时候,用户可以进入且可以创建及删除文件.但不能使用文件名通配符

目录的常见权限r-x rwx

特殊权限

工具和文件都拥有权限

which 查看绝对路径

14da28cb7c53eeae1f0772b78009babb.png

对工具拥有权限对文件没有权限不能查看文件

a911437c42b852668e4a24e3d7803e45.png

suid权限(文件),可执行的二进制文件,可以临时调用所属人的权限

chmod u+s 临时调用文件所属人的权限

d994e016ab4634d527bfef72220e54b3.png

sgid权限(目录)目录所属组的权限

chmod g+s 对目录操作了sgid权限,任何人在该目录下所创建的文件所属组都与该目录的所属组相同

sticky权限 进行删除操作的权限

chmod o+t 该目录下的文件只能root,目录的所属人和文件的所属人删除

权限位上原本有x的,加上特殊权限时,为小写

原本没有x的,加上特殊权限时,为大写

7587302c69dd50990fe44c6a3aab3fad.png

实验:刘备关羽张飞三个用户有一个共享目录叫shuguo,要求三人的主组不一样的情况下,三人在Shuguo目录下所创建的文件,彼此之间可以读取及修改,但不能删除其他人创建的文件

37bffc7b53b8035d380b53cb67b38fc7.png

63f39f921676a21bd36a1abe4d244fc2.png

c1a76a9072a7884834b36f5632e0d68e.png

验证

bcc22514c1822531c0ced0ecaf4d462f.png

0ee44a48f3bc950a955135eff0998739.png

文件特定权限

chattr +a 不能删除,改名,修改,可以追加

+i 不能删除,改名,修改,追加

f97d9d6327733d58a8e19a075a51ade5.png

8631843900feacf8de98f0d2de683cca.png

cd7b7b38eafdc8c7015280861633ddb1.png

lsattr 查看权限及属性

21a827109812eb454e6046535e094802.png

ACL

acl:除了文件的所属人,所属组,其他,还可以进行更多的设置用户权限

acl生效顺序:所有者,自定义用户,自定义组,其他人

CentOS7中的所有文件系统是划分的文件系统均已默认开启acl

CentOS6随着操作系统安装所有文件系统是话费的文件系统均已默认开启acl

e7f4e40433117f8ce32afe0be049dd0d.png

为多用户或者组的文件和目录赋予访问权限rwx

getfacl 查看权限信息

setfacl -m 设置user的acl权限

-x 删除设置的user的acl权限

290d19312dd27ba5cc499d67a3c0286d.png

69cf9765c790e71207275d10a62c3e4a.png

setfacl -b 删除权限包括acl权限属性

dacc89f4be2cde6dcdc37857cbde87cd.png

9eb5236bb7c445776d91f0da54374e66.png

setfacl -m m 设置权限上限阀值,修改权限无法超过上限阀值,不显示但是是有效的

607a8040b56f4d2dd380cd29f5137786.png

setfacl -d -m

-m d 设置默认权限

803a09ceebb6c268c9285a2dbef0b618.png

543aa1db936e5d1268fe27e34bf5e8e3.png

setfacl -k 清除默认权限

14d23445819b509d682d8d2214823d5d.png

setfacl -Rm 递归设置,设置的目录及该目录下的所有目录和文件都被设置权限

347301f2acd0c314e76e93628cef3679.png

9bfaab597e1c2469a201a4cda19465fe.png

setfacl -M file1 file2 file1是写有权限的文件,把写有的权限设置file2

98e1baafdca3405fce9d46b51f416f03.png

545bde735a072a27e9b5ab12c26d111e.png

d65ce6f33d09b0814d8d0007120364ee.png

c947b5bdb7b75522fa29512d472c49fd.png

setfacl -X file1 file2 file1是写有取消权限的文件,对file2进行取消权限设置

acl权限的备份及还原

8d9ab912753c1d77d2244c5abb5681d7.png

ccecf83a43a84cf5ac997fc714bee171.png

umask值

umask值可以存储在/etc/bashrc当中,使所有用户均被设置

也可以存在~/.bashrc只对某用户设置

文件最高权限 666

目录最高权限 777

默认权限=最高权限-umask

文件权限,如果umask 有奇数,也就是含有-x ,计算完要加1

37bf00d2bdd3e8ff191901d93f70386b.png

5.其他

手工创建家目录的方法

mkdir /home/username

chmod 700 /home/username/

cp -r /etc/skel/.[^.]* /home/username/

(..为上一级目录,/etc/skel 新创建的用户的初始化环境变量脚本都在这个目录下)

chown -R username.usename /home/username

e5d3a36faee08968e609ee39653dc13b.png

cat /etc/passwd |grep username 检索

|grep -E "maidou|biubiu" 同时都检索

9c1ba03dbb5fcbb8f43d221eee803922.png

a00d9ba209e73ce3f78b0c2b60daa1c3.png

65da58f448dc0e08955e2d6f8c79ce11.png

二,文本处理工具

1.各种文本工具来查看、分析、统计文本

cat 查看

cat -E 显示换行符$

88f7dcde2ff8643bb3a4b2b44468a6aa.png

cat -n 输出的结果前显示行号

d48fadbc6e6d6fb658ff7d15fae08a30.png

cat -v 显示^M,即windows的换行符

cat -T 显示^I 即tab

cat -A = -EvT

cat -b 输出的结果前显示行号,非空行不参与排列

7ad93233c5ec8095aae655cc1ae5dccb.png

cat -s 将连续的空行压缩为一行

41bd331115262294df558d20ac6e53e9.png

head 向前截取

head -c N 指定截取前N字节

head -n N 指定截取前N行

head -N 指定获取N行

a03e0378023325e4b098169c5d1bc41d.png

fcc6c065076e79799e13f2f28780c537.png

tail 向后截取

tail -c N 指定截取后N字节

tail -n N 指定截取后N行

tail -N 指定截取N行

tail -f 跟踪显示文件新追加的内容,常用于日志监控

34789261158992c536e76e4ecd15852a.png

f4275876def9d5894abd663a65c50a76.png

37710dd7ee227fc72b7e8afe8558aa2e.png

a818519ecc9af950ef0aacaa1b3e6a4b.png

0a63a536feeef754f5272f0326f6c503.png

cut 切割

cut -d 指明分隔符

cut -f N ; N,N ; N-N 指明字段

cut -c 按字符一个一个切割

cut --output-delimiter=" " 指定输出分隔符

27f65ab046e0b454b97a38a4b9fc9c31.png

1519804130d6f137dc11844ec39962ff.png

paste 合并俩个文件,同行的内容在一行显示

paste -d 分隔符:指定分隔符,默认用TAB

paste -s : 所有行合成一行显示

9f0b729c3e329d4bac671ea1a81e0b89.png

74642fbcc44692f11866fd190ba97bc2.png

b2f863d113d7b12315ef7a41ab17542d.png

wc 文本数据统计

wc -l 行数

wc -w 单词总数

wc -c 字节总数

wc -m 字符总数

e29afc23aeaa30879de30288c1e722bb.png

sort 排序

sort -r 反方向(由上至下)整理

sort -n 按数字大小整理

297c2eda643b4902153cf57d88e55950.png

26827116b05c9373afa173a3d34db87d.png

sort -f 忽略(fold)字符串中的字符大小写

bbe7a8d4c85b7d39cec355877a965c20.png

sort -u (独特, unique)删除输出中的重复行

f0381d00c93cab8960d544e932e2ff9d.png

sort -t c 使用c做为字段界定符

sort -k X 列

a3ddfd86fee80106736f4602b68e726c.png

uniq 删除重复的行数

uniq -c: 显示每行重复出现的次数

uniq -d: 仅显示重复过的行

uniq -u: 仅显示不曾重复的行

连续且完全相同方为重复

1af7f435acb72a2b00ea6aaaf08828f0.png

a11984d392f904fd5e4e26372537844d.png

diff f1 f2 比较2文件之间的区别

2cd86d79b3df58a8f5a23ca460861819.png

patch 复制其他文件进行的改变

fc4e949986ff4167b27fbe73616190ee.png

fae73dbd836ae675670c6083688e8424.png

2.grep

grep 关键字高亮显示

grep -v 反向搜索

grep -i 忽略大小写

grep -n 显示行号

grep -c 不显示搜索结果,仅显示匹配的行数

grep -o 仅显示匹配到的字符串

grep -q 静默输出

grep -A N 显示搜索行及其向下相临的N行

grep -B N 显示搜索行及其向上相临的N行

grep -C N 显示搜索行及其向上和向下相临的N行

grep -e -e 多个选项间or关系

grep -w 匹配整个单词

a9d7e86b9491de994b4aeb5b08979f7f.png

e54a1bf9339caf3517209878aae42cc9.png

3f2a511e22ae5ae09f0aad234f488884.png

1fe814c8ea32f48a969a8b4cfca38707.png

0277da23aa576bc5bcb3dba4db2a48ee.png

2664d97283192cdd1d6416c8dfc15ffc.png

3.正则表达式

元字符

1f0f96ca8a8a9860aa8e4bf036168bfa.png

位置锚定:定位出现的位置

^ 行首锚定,用于模式的最左侧

$ 行尾锚定,用于模式的最右侧

^ .. $ 用于模式匹配整行

^$ 空行

^[[:space:]]\*$ 空白行

\< 词首锚定,用于单词模式的左侧

\> 词尾锚定;用于单词模式的右侧

\< .. \> 匹配整个单词

分组

\( .. \) 将一个或多个字符捆绑在一起,当作一个整体进行处理,如: \(root\)

\1, \2, \3, .. 分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中

\1 表示从左侧起第一个左括号以及与之匹配右括号之间的模式所匹配到的字符

后向引用:引用前面的分组括号中的模式所匹配字符, 而非模式本身

90aec4073c00d2d0dfc8bc1ebb19ba75.png

\| 或者

a4e9d0f771bacd5a9e94d5251cf267e4.png

4.扩展正则表达式

元字符

0a53bdba7b5d77162902e3b54a0f3f68.png

egrep

egrep=grep -E

fgrep=grep -F 不支持正则表达式

三,vim文本编辑器

vim文本编辑器应用扩展正则表达式

vim

三种主要模式

命令模式 (default): 移动光标,复制,剪切,粘贴,撤销,重做,搜索,进入其他模式

移动光标: k

h j l

配合 !h,!l, ! j, ! k可一次性移动 ! 个字符

w 跳到下一个单词的词首

b 跳到上一个单词的词首

H 跳到当前页首

M 跳到当前页中

L 跳到当前页尾

gg 跳到整个文件的首行

G 跳到整个文件的末行

^ 移到非空格开头的行首

$ 移到行尾

!G 跳到指定 ! 行,或退出模式下 : !

r 替换一个字符

d 剪切

dd 剪切当前行

!dd 剪切 ! 行

dw 剪切一个单词

d^ 从光标所在处剪切到行首

d$或D 从光标所在处剪切到行尾

y 复制

yy或Y 复制当前行

! yy 复制 ! 行

yw 复制一个单词

y^ 从光标所在处复制到行首

y$ 从光标所在处复制到行尾

p 粘贴

p 当前行向下粘贴或光标所在处向后粘贴

P 当前行向上粘贴或光标所在处向前粘贴

替换模式 R进入 Esc退出

从命令模式进入插入模式

插入模式:文本编辑

i 光标在哪从哪进入

I 光标移至行首同时进入插入模式

a 光标向后移一个字符同时进入插入模式

A 光标移至行尾同时进入插入模式

o 光标向下插入一新行同时进入插入模式

O 光标向上插入一新行同时进入插入模式

退出模式:保存、退出

w 保存

q 退出

q! 强制退出

wq或x 保存并退出

w!当前用户为该文件所属人时,如果该文件为read only,可加上!强制保存。

在退出模式下返回命令模式EscEsc或Enter

r /path/filename 读取另一个文件的内容并将输出结果写入文件

w /path/filename 另存为(确认当前用户对该路径中的最后一级目录有wx权限)

! command 执行某条命令,将输出结果显示在终端上

r! command 执行某条命令,在光标所在的当前行向下插入新行并将输出结果输入

.! command 执行某条命令,替换光标所在的当前行并将输出结果输入

搜索

?关键字

n向上找 N向下找

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值