Linux文件系统及用户管理学习

Linux文件系统及用户管理学习

文件系统是为了便于管理每一个文件而存在的,它有一定的层级结构,是一个由根目录开始的倒置树状结构;目录是路径的映射,而文件则是存储空间内存储的一段流式数据,由此我们可以做到对数据的按名存取。
文件的路径有绝对路径和相对路径两种表示方式,绝对路径是由根目录开始表示的路径相对路径是从当前位置开始表示出的路径,可以用pwd查看当前工作目录路径;也可以用pwd -p查看。
文件名的创建有一些需要严格遵守的使用法则,它严格区分字符大小写、支持使用除了/以外的任意字符、最长不能超过255字符,目录也是文件,同一路径下的两个文件不能同名,例如file1和File1还有FILE1代表的就是三个完全不同的文件。

文件查看命令

常用的文件查看命令有cat、tac、head、tail、more、less、file、stat、touch、ls等

ls:list 列出指定目录下的内容
使用方式为ls [OPTION] … [FILE] …常见选项如下
-a 显示所有文件包括隐藏文件
-A显示除.和…之外的所有文件
-h:–human-readable:对文件大小单位换算 换算后结果可能会非精确值
-d:查看目录自身而非其内部的文件列表
-r:reverse逆序显示
-R:recursive递归显示
-l :–long ,长格式列表 即显示文件的详细属性信息;如
-rw-r–r--. 1 root root 8957 10月 14 19:34 boot.long
-表示文件类型 :-,d,b,c,l,s,p
-:常规文件:即f
d:directory:目录文件
b:block device:块设备文件,支持以block为单位进行随机访问
c:character device 字符设备文件,支持以character为单位进行线性访问
l:symbolic link,符号链接文件
p:pipe,管道,已命名
s:socket,套接字文件;
rw-r–r--
rw-文件属主的权限
r–文件属组的权限
r–其他用户非属主属主的权限
1:数字表示文件被硬链接的次数
root:文件的属主
root:文件的属组
8957数字表示文件的大小单位是字节
10月 14 19:34表示文件最近一次被修改的时间
boot.long表示文件名
在这里插入图片描述

more和less是分页查看命令,而more命令翻屏至文件尾部后会自动退出,都可以使用空格键查看下一页,q键退出查看,less还可以用上下方向键来回翻
在这里插入图片描述
在这里插入图片描述
head和tail可以用来查看文件的前后N行,使用Ctrl+c退出查看
例如head -20 /FILE可以用来查看FILE文件的前20行,
tail命令有一个特殊option:-f它查看文件尾部内容结束后不退出,会继续显示新增的行,可以用来监控,实时动态查看文件内容
在这里插入图片描述

stat:显示文件或文件系统的状态,即显示文件的属性数据也就是文件的元数据
stat [OPTIONS] FILE
在这里插入图片描述
其显示的内容所代表含义如下
File:文件名
Size:文件的大小
Block:文件占了多少个数据块
IO Block:文件所占数据块的块大小
Device:物理位置,既该文件在硬盘的哪个柱面
Inode:节点号
links:链接
Access:(0644):对应的各用户的权限
Uid:属主
Gid:属组
Access:2019-03-29:文件上一次的访问时间
Modify:文件上一次修改的时间
Change:文件上一次属性数据更改时间

touch命令:更改时间戳,在目标文件不存在时创建同名文件
touch [OPTIONS]… FILE …
-c:指定文件路径不存在时不予创建
-a:只修改访问时间
-m:仅修改更改时间
-t STAMP:自定义更改更改时间
时间格式为[[CC]YY]MMDDhhmm[.ss]
在这里插入图片描述
以当前时间创建同名文件
在这里插入图片描述

file:查看文件内容类型
file [FILE]…
在这里插入图片描述

cat和tac都是文本文件查看工具使用方式也相同
cat /etc/passwd
cat [OPTION]…[FILE]…
-n:给显示的文本行编号
-E:显示行结束符
在这里插入图片描述

具体可用man查看命令使用帮助

文件管理工具:cp、mv、rm

cp命令:copy
文件复制有源文件和目标文件之分,源文件指被复制文件目标文件指被覆盖文件,也有单源复制和多源复制两种使用方式
单源复制:cp [OPTION]… [-T] SOURCE DEST
如果dest(目标文件)不存在,则事先创建此文件,并复制源文件的数据流至dest中,
如果dest存在且dest是非目录文件,则会覆盖目标文件;
如果dest是目录文件,则先在dest目录下创建一个与源文件同名的文件,并复制其数据流
多源复制:
cp [OPTION]… SOURCE… DIRECTORY
cp [OPTION]… -t DIRECTORY SOURCE…
如果dest不存在则报错,如果dest存在且dest是非目录文件也报错
如果dest是目录文件:分别复制每个文件至目标目录中,并保持原名
常用选项:
-i:interactive交互式复制,即覆盖之前提醒用户确认
-f:force强制覆盖目标文件
-r:recursive递归复制目录及目录中的内容至目标位置
-d:–no-dereference复制符号链接文件本身而不是它所指向的源文件
-a:-dR --preserve=all,archive用于实现归档
–preserve=
mode:权限
ownership:属主和属组
timestamps:时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
例如:复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
在这里插入图片描述

mv命令:move
mv [OPTION]… [-T] SOURCE DEST
mv [OPTION]… SOURCE… DIRECTORY
mv [OPTION]… -t DIRECTORY SOURCE…
常用选项:
-i:交互式 提醒
-f:force强制覆盖
在这里插入图片描述

rm命令:remove删除
rm [OPTION]… FILE…
-r:recursive递归删除
-i:interactive交互式 提醒
-f:force
删除目录:rm -rf /PATH/TO/DIR
在这里插入图片描述

目录管理类命令:mkdir	rmdir

mkdir:make directories
mkdir [OPTION]…DIRECTORY
-p:自动按需创建父目录
-v:verbose显示详细过程
-m:MODE直接给定权限
路径基名方位命令的作用对象,基名之前的路径必须得存在

rmdir:remove empty directories 仅用于删除空目录
rmdir [OPTION]…DIRECTORY
-p:删除某目录后,如果其父目录为空,则一并删除
-v:显示过程
例如:使用命令行展开功能,创建/tmp/a1, /tmp/a2, /tmp/a1/a, /tmp/a1/b,在/tmp目录下创建目录:x_y, x_z, q_y, q_z
在这里插入图片描述
在这里插入图片描述
删除tmp目录下的x_y,x_z,q_y,q_z目录
在这里插入图片描述

用户、组及权限管理:

组指用户组
是用户的容器:将多个用户形成一个单一的逻辑组件
用户类别有管理员和普通用户两种
普通用户包含系统用户;登录用户
用户的标识指UserID即UID是16bits二进制数字范围为0-65535;管理员标识为0
普通用户UID区间:1-65535一般默认只用到60000
系统用户:1-499(centos5/6);1-999(centos7)
普通用户:500-60000(centos5/6);1000-60000(centos7)
用户组区分方式有三种
组类别1:
管理员组和普通用户组
普通用户组包含系统组和登录组
组类别2:
用户的基本组:
用户的附加组:
组类别3:
私有组:组名同用户名且只包含一个用户
公共组:组内包含了多个用户

组标识指GroupID即GID
管理员组GID为0
普通用户组区间为1-65635
系统用户组:1-499(centos5/6);1-999(centos7)
登录用户组:500-60000(centos5/6);1000-60000(centos7)

/etc/passwd:用户的信息库
信息存储格式为name:password:UID:GID:GECOS:directory:shell
name:用户名
passwd:可以是一个加密的密码,也可以是占位符
UID:用户ID(标识)
GID:用户所属的主组的ID号
CECOS:注释信息
directory:用户的家目录
shell:用户的默认shell,登录时默认shell程序
在这里插入图片描述
/etc/shadow:用户密码库
用户名:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期限:过期期限:保留字段
在这里插入图片描述
/etc/group:组的信息库
group_name:password:GID:user_list
user_list:该组的用户成员:以此组为附加组的用户的用户列表
在这里插入图片描述

用户的权限

可以用ls -l查看用户的权限
在这里插入图片描述
rwxrwxrwx即用户的权限
左三位:定义user(owner)的权限
中三位:定义group的权限
右三位:定义other的权限
r:readable读
w:writeable写
x:excuteable执行
对于文件来说三种权限对应的能力为:
r:可获取文件数据:
w:可修改文件的数据:
x:可将此文件运行为进程
对于目录:
r:可使用ls命令获取其下所有文件列表
w:可修改此目录下的文件列表:即创建或删除
x:可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息

权限管理命令:用户仅能更改属主为自己的那些文件

chmod命令:
(1)chmod [OPTION]… MODE[,MODE]… FILE…
MODE表示法:
赋权表示法:u= g= o= a=
授权表示法:直接操作一类用户的一个权限位r,w,x:
u+,u-
g+,g-
o+,o-
a+,a-
例如给上图passwd文件属组增加w权限
在这里插入图片描述
(2) chmod [OPTION]… OCTAL-MODE FILE…(8位二进制)

(3)chmod [OPTION]… --reference=RFILE FILE…在这里插入图片描述
chmod --reference=/var/log/message fatap
选项:
-R:–recursive:递归修改,对目录及目录下文件的权限都会更改
更改某目录属主用户权限为700,则目录下所有文件的属主权限也为700
在这里插入图片描述
从属关系管理命令:chown更改属主 ,chgrp更改属组 仅管理员可用
chown命令:
chown [OPTION]… [OWNER][:[GROUP]] FILE …
chown [OPTION]… --reference=RFILE FILE
选项:-R递归修改
chown -R docker skel/更改skel目录及其下文件属主为docker
chown -R archlinux:mygrp skel/更改skel目录及其下文件属主和属组为archlinux
(冒号也可以用点号代替)
chown -R --reference=/tmp/mossefes/ /tmp/skel/
参考/tmp/mossefes/的属主属组更改/tmp/skel/的属主属组

chgrp命令:
chgrp [OPTION]…GROUP FILE …
chgrp [OPTION]… --reference=RFILE FILE
一个用户对目录有写权限,但对目录下的文件没有写权限时,不能修改文件内容,但能删除文件

groupadd命令:添加组
groupadd [选项] group_name
-g GID:指定GID,默认为上一个组的GID+1
-r:创建系统组

groupmod:修改组属性
groupmod [选项] GROUP
-g GID:修改GID
-n new_name:修改组名

groupdel:删除组
groupdel [选项] GROUP

useradd:添加用户
useradd [选项] 登录名
-u,–uid UID:指定uid
-g,–gid GROUP:指定基本组ID,此组需要事先存在
-G,–groups GROUP1[,GROUP2,…[ ,GROUPN]]]:指明用户所属的附加组,多个组之间用逗号分隔
-c,–comment COMMENT :指明注释信息
-d,–home HOME_DIR:以指定的路径为用户的家目录:通过复制/etc/skel此目录并重命名实现:指定的家目录路径如果事先存在,则不会为用户复制环境配置文件
-s,–shell SHELL:指定用户的默认shell,可用的所有shell列表存储在/etc/shells文件中
-r,–system:创建一个系统账户
创建用户是的诸多默认设定配置文件为/etc/login.defs
useradd -D:显示创建用户的默认配置
useradd -D 选项:修改默认配置的值
修改的结果保存于/etc/default/useradd文件中

usermod:修改用户属性
usermod [选项] 用户登录名
-u,–uid UID :修改用户的ID为此处指定的新UID
-g,–gid GROUP:修改用户所属的基本组
-G,–groups GROUP[,GROUP2,…[ ,GROUPN]]]:修改用户所属的附加组,原来的附加
会被覆盖
-a,–append:与-G一同使用,用于为用户追加新的附加组
-c,–comment COMMENT:修改注释信息
-d,–home HOME_DIR:修改用户的家目录:用户原有的文件不会被转移至新位置
-m,–move-home:只能与-d选项一同使用,用于将原来的家目录移动为新的家目录
-l,–login NEW_LOGIN:修改用户名
-s,–shell SHELL:修改用户的默认shell
-L,–lock:锁定用户密码:即在用户原来的密码字符串之前添加一个“!”
-U,–unlock:解锁用户的密码

userdel:删除用户
userdel [选项] 用户登录名
-r:删除用户时一并删除其家目录
例如创建用户tom,指定UID为5001,指定家目录为/tmp/tom, 指定shell为/bin/zsh, 指定基本组为tom,附加组为jack
在这里插入图片描述
passwd 命令:实现密码管理
passwd [-k] [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warndays] [-i inactivedays]
[-S] [–stdin] [username]
-l,-u:锁定和解锁用户
-d:清除用户密码串
-e DATE:指定用户密码过期期限,日期
-i DAYS:非活动期限:密码过期之后保留时间
-n DAYS:最短使用期限
-x DAYS:最大使用期限
-w DAYS:警告期限

gpasswd命令:
gpasswd [选项] group
-a USERNAME:向组中添加用户
-d USERNAME:从组中移除用户

newgrp命令:临时切换指定的组为基本组
newgrp [-] [group]:切换基本组
exit退回到切换前的基本组
-:会模拟用户重新登录以实现重新初始化其工作环境

chage命令:更改用户密码过期信息
chage [选项] 用户登录名
-d:
-E:
-W
-m
-M

id命令:显示用户的真实和有效id信息
id [选项OPTION] [USER]
-u:仅显示有效的ID
-g:仅显示用户端基本组ID
-G:仅显示用户所属的所有组的ID
-n:显示名字而非ID
-r:

su命令:switch user切换用户
登录式切换:会通过读取用户的shell配置文件来重新初始化
su - USERNAME
su -l USERNAME
非登录式切:不会读取目标用户的配置文件进行初始化
su USERNAME
管理员可无密码切换至其他任何用户
其他用户切换需要提供对应密码
-c ‘COMMAND’:仅以指定用户的身份运行此处指定的命令
chsh:修改当前及指定用的shell
chfn:修改finger信息
finger:显示用户信息的工具
whoami:显示当前用户
pwck:检查哪些用户密码可能会有异常
grpck:检查组是否可能会有异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值