linux不同用户移动文件系统,linux 文件系统管理,用户管理

inode(index node)表中包含文件系统所有文件列表

一个节点(索引节点)是在一个表项,包含有关文件的信息(元数据),包括:

文件类型,权限,UID,GID,链接数(指向这个文件名路径名称个数),该文件的大小和不同的时间戳,指向磁盘上文件的数据块指针,有关文件的其他数据

文件引用一个是inode号,人是通过文件名来引用一个文件

一个目录是目录下的文件名和文件inode号之间的映射

CP的命令:

分配一个空闲的inode号,在inode表中生成新条目;在目录中创建一个目录项,将名称与inode编号关联;拷贝数据生成新的文件。

ffa2300a18d6b42c99aecc345506b5e3.png

rm命令:

链接数递减,从而释放的inode号可以被再次利用;把数据块放在空闲列表中;删除目录项,数据实际上不会马上被删除,但当另一个文件使用数据块时将被覆盖。

mv命令:

1.如果mv命令的目标和源在相同的文件系统:

用新的文件名创建对应新的目录项,删除旧目录条目对应的旧的文件名,不影响inode表(除时间戳)或磁盘上的数据位置。没有数据被移动!

2.如果目标和源在一个不同的文件系统:

mv相当于cp和rm

db62c4c00fba4e3ec3bdf8434ddb013f.png硬链接

创建硬链接:

会增加额外的记录项以引用文件,对应于同一文件系统上一个物理文件,每个目录引用相同的inode号,创建时链接数递增

删除文件时:

rm命令递减计数的链接,文件要存在,至少有一个链接数,当链接数为零时,该文件被删除

不能跨越驱动器或分区,不能对目录创建硬链接

语法: ln filename [linkname]

软链接(符号链接)

一个符号链接指向另一个文件,ls -l的显示链接的名称和引用的文件,一个符号链接的内容是它引用文件的名称

可以对目录进行,可以跨分区

指向的是另一个文件的路径;其大小为指向的路径字符串的长度;不增加或减少目标文件inode的引用计数;

语法:ln -s filename [linkname]文件可以包含多种类型的数据

5cc7d868240280ffe01d62bb379c58ba.png

检查文文件类型,然后确定适当的开放命令或应用程序使用

file [options] ...

Option:

-b列出文件辨识结果时,不显示文件名称。

-c详细显示指令执行过程,便于排错或分析程序执行

-f列出文件中文件名的文件类型

-F使用指定分隔符号替换输出文件名后默认的”:”分隔符

-i输出mime类型的字符串

-L查看对应软链接对应文件的文件类型

-z尝试去解读压缩文件的内容

--help显示命令在线帮助

数据流重定向

作用:把I/O频道重定向入文件,使用管道链接命令

程序有指令数据组成

读入数据:Input

输出数据:Output

打开的文件都有一个fd: file descriptor (文件描述符)

a6cb8d879c32d069a9d875e50709304a.pngLinux给程序提供三种I/O设备

标准输入(STDIN)-0默认接受来自键盘的输入

标准输出(STDOUT)-1默认输出到终端窗口

标准错误(STDERR)-2默认输出到终端窗口

I/O重定向:改变默认位置

STDOUT和STDERR可以被重定向到文件:

命令操作符号文件名

支持的操作符号包括:

> 把STDOUT重定向到文件

2>把STDERR重定向到文件

&>把所有输出重定向到文件

> 文件内容会被覆盖

set -C: 禁止将内容覆盖已有文件,但可追加

强制覆盖:>|

set +C: 允许覆盖

(set -C 只对当前shell有效)

88843451c4ffa165411a0ae73a039a15.png

>> 原有内容基础上,追加内容

2>: 覆盖重定向错误输出数据流;

2>>: 追加重定向错误输出数据流;

标准输出和错误输出各自定向至不同位置:

COMMAND > /path/to/file.out 2> /path/to/error.out

dbd08abc16e8d342a743dc8231c9a75c.png

合并标准输出和错误输出为同一个数据流进行重定向:

&>:覆盖重定向

&>>:追加重定向

COMMAND > /path/to/file.out 2>&1 (顺序很重要)

COMMAND >> /path/to/file.out 2>>&1

63f11677cc58888e171d266095a72557.png

find /etc -name passwd 2> /dev/null (将无用的错误信息丢弃)

():合并多个程序的STDOUT

(cal2007;cal2008)> all.txt

4e4fdb2d7339a99e60da0871dfd5ad42.png

Cat > filea < fileb

ctrl+d离开,可以使用文件来代替键盘的输入

使用“<

直到终止词位置的所有文本都发送给STDIN

有时被称为就地文本(heretext)

tr 转换和删除字符

tr[OPTION]... SET1 [SET2]

选项:

-c或——complerment:取字符集的补集

-d或——delete:删除所有属于第一字符集的字符;

-s或—squeeze-repeats:把连续重复的字符以单独一个字符表示

-t或--truncate-set1:先删除第一字符集较第二字符集多出的字符

使用

tr ‘a-z’ ‘A-Z’ < /etc/issue

该命令会把/etc/issue中的小写字符都转换成大写字符

tr –d ‘abc’ < /etc/fstab 删除fstab文件中的所有abc中任意字符

1cd5cd712c4c7b0e3fe68725fe90ad14.png

管道(使用符号“|”表示)用来连接命令

命令1 | 命令2 | 命令3 | …

将命令1的STDOUT发送给命令2的STDIN,命令2的STDOUT发送到命令3的STDIN

STDERR默认不能通过管道转发,可利用2>&1 或|& 实现

最后一个命令会在当前shell进程的子shell进程中执行用来

组合多种工具的功能

ls | tr 'a-z' 'A-Z'

3fbbe0cfc109cf8150914ef25796d043.png

less :一页一页地查看输入:

ls -l /etc | less

mail:通过电子邮件发送输入:

echo "testemail" | mail -s "test" user@example.com

lpr:把输入发送给打印机

echo "testprint" | lpr -P printer_name

双重定向:命令1 | tee文件名| 命令2

把命令1的STDOUT保存在文件名中,然后管道输入给命令2

使用:保存不同阶段的输出,复杂管道的故障排除,同时查看和记录输出。

2335775c77ee66a8ebf67ccb7605f352.png

1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中

73450cc0958090a2b1fa83272c6d752d.png

2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中

6be19968c5022d2173c1b1e72c1cf2c4.png

3、一个linux用户给root发邮件,要求邮件标题为”help”,邮件正文如下:

Hello, I am 用户名,the system version is here,pleasehelp me to check it ,thanks!

操作系统版本信息

3ed9d963dccab2c86686ff0d0e057e6a.png

4、将/root/下文件列表,显示成一行,并文件名之间用空格隔开。

3849a548a615dbde1bc69b322154f63c.png

5、file1文件的内容为:”1 2 3 4 5 6 7 8 9 10” 计算出所有数字的总和

48c72cf44a978cb4ea6908674094e2f0.png

6、删除Windows文本文件中的'^M'字符

19e3205489b930ee68307fe7ed40e8fb.png

7、处理字符串“xt.,l 1 jr#!$mn2 c*/fe3 uz4”,只保留其中的数字和空格

d6bdb9d21a44fa6096c0e159eb2a4839.png

8、将PATH变量每个目录显示在独立的一行

c7bdbf6dcdce8bcfd4b1e74be4b8a24e.png

9、删除指定文件的空行

8a84af93d61316fb08546bd3c2561f8b.png

10、将文件中每个单词(字母)显示在独立的一行,并无空行

535deea98209546034f96e185749798a.png

令牌token,identity

Linux用户:Username/UID

管理员:root, 0

普通用户:1-65535

系统用户:1-499(CENTOS6), 1-999(CENTOS7)

登录用户:500+(CENTOS6), 1000+(CENTOS7)

Linux安全上下文

运行中的程序:进程(process)

以进程发起者的身份运行:

root: /bin/cat

user: /bin/cat

进程所能够访问资源的权限取决于进程的运行者的身份

Linux组的类别:

主要组(主组):GID位于/etc/passwd中,用户必须属于一个且只有一个主组

私有组:组名同用户名,且仅包含一个用户,是默认的主组,可以不存在

附加组(辅助组):一个用户可以属于零个或多个辅助组

Linux用户和组的主要配置文件:

/etc/passwd:用户及其属性信息(名称、UID、主组ID等)

/etc/group:组及其属性信息

/etc/shadow:用户密码及其相关属性

/etc/gshadow:组密码及其相关属性

/etc/passwd文件结构

login name:用名名

passwd:密码(x)

UID:用户身份编号

GID:登录默认所在组(主组)编号

GECOS:用户全名或注释

home directory:用户主目录

shell:用户默认使用shell

/etc/shadow文件结构

用户名

用户密码:一般用sha512加密

从1970年1月1日起到密码最近一次被更改的时间

密码再过几天可以被变更(0表示随时可被变更)

密码再过几天必须被变更(99999表示永不过期)

密码过期前几天系统提醒用户(默认为一周)

密码过期几天后帐号会被锁定

从1970年1月1日算起,多少天后帐号失效。

加密机制:

加密:明文--> 密文

解密:密文--> 明文

单向加密:哈希算法,原文不同,密文必不同

相同算法定长输出,获得密文不可逆推出原始数据

雪崩效应:初始条件的微小改变,引起结果的巨大改变

md5: message digest, 128bits

sha1: secure hash algorithm, 160bits

sha224: 224bits

sha256: 256bits

sha384: 384bits

sha512: 512bits

更改加密算法authconfig--passalgo=sha256 --update

设置安全密码方法:

使用数字、大写字母、小写字母及特殊字符中至少3种;足够长;使用随机密码;定期更换;不要使用最近曾经使用过的密码。

/etc/group文件结构

群组名称:就是群组名称

群组密码:通常不需要设定,密码是被记录在/etc/gshadow

GID:就是群组的ID

以当前组为附加组的用户列

组管理员列表:组管理员的列表,更改组密码和成员

以当前组为附加组的用户列表:(分隔符为逗号)

91aec48437c1d881205ff39f27b7d4a7.pngvipw和vigr:调用vim编辑器修改/etc/passwd、/etc/group带有语法检查功能

pwck和grpck:对/etc/passwd、/etc/group语法进行检查

添加新用户

useradd[options] LOGIN

-u UID: [UID_MIN, UID_MAX]定义在/etc/login.defs

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

-g GID:指明用户所属基本组,可为组名,也可以GID

-c "COMMENT":用户的注释信息

-d HOME_DIR:以指定的路径(不存在)为家目录

-s SHELL: 指明用户的默认shell程序

可用列表在/etc/shells文件中

-G GROUP1[,GROUP2,...]:为用户指明附加组,组必须事先存在

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

-r: 创建系统用户CentOS 6: ID<500,CentOS 7: ID<1000

默认值设定:/etc/default/useradd文件中

显示或更改默认设置:

useradd-D

useradd–D -s SHELL

默认用户家目录参考文件

/etc/skel

1、创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为"Gentoo Distribution"

04ab403f74f346b6ad8d5d08c7776732.png

2、创建下面的用户、组和组成员关系

名字为admins 的组

用户natasha,使用admins 作为附属组

用户harry,也使用admins 作为附属组

用户sarah,不可交互登录系统,且不是admins 的成员,natasha,harry,sarah密码都是centos

e48ef30749e8fdc00e4f9a9f7a1f6dce.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值