目录
(1)用户账号文件(保存用户名称、宿主目录、登录 Shell 等基本信息,每一行对应一个用户的账号记录)
(2)账号密码文件(保存用户的密码、账号有效期等信息,每一行对应一个用户的密码记录)
UCA-Linux系统工程师中级知识(三)【7-9】
一:基础操作
1、实验-控制台切换
(1)shell(命令解释器)
shell是C语言编写的脚本语言,是用户和操作系统的桥梁;用于接受用户指令,经过shell解释,将相应的操作传递给内核,内核根据指令做出相应的处理后,再通过Shell将执行结果返回给用户
- shell前缀
uos@uos-PC: ~$
当前用户名@计算机名:当前工作目录 用户角色($普通用户 #超级用户)
- 终端管理:
鼠标右键->在终端中打开(快捷键:Ctrl + Alt + T)
(2)字符终端切换:(快捷打开不同的终端)
Ctrl + Alt + F1 :图形化桌面
Ctrl + Alt + F2 :命令行 tty2
Ctrl + Alt + F3 :命令行 tty3
Ctrl + Alt + F4 :命令行 tty4
Ctrl + Alt + F5 :命令行 tty5
Ctrl + Alt + F6 :命令行 tty6
Alt + F1 :返回桌面模式
查看当前控制台:who、w
2、实验-查看帮助信息
- 命令组成:命令字 [选项] [参数]
命令字:命令本身
选项:决定这个命令如何执行
短选项:单个字符选项,使用‘-’引导,同时使用多个选项用空格分隔,可组合
长选项:多个个字符选项,使用‘--’引导,同时使用多个选项用空格分隔,不可组合
- 帮助命令:
man date #手册形式
date --help #有中文
- 路径类型
绝对路径:相对于根目录(/)
相对路径:相对于当前目录
3、实验-基础命令
- date +%F 完整日期格式,等价于 %Y(年)-%m(月)-%d(日)
- pwd 查看当前工作目录
- cd /home 绝对路径,切换到/home目录
- cd home 相对路径
- cd - 返回上一次工作目录
- cd ~ 返回当前用户的家目录
- cd .. 切换上一级目录
- ls 查看当前目录下内容
- ls /home 查看/home目录下内容
- ls -l /home 查看/home目录下内容长格式列表显示
- mkdir file_test 创建file_test目录
- mkdir -p /a/b/c 递归创建/a/b/c
-v 显示详细
- touch test.txt 创建test.txt文件
- touch a b c 创建a、b、c三个文件
- touch a{1..100} 批量创建a1 至 a100 的文件
- cp -r /a/b/c /home 复制目录 c 到 /home
- cp test.txt /home 复制文件 test.txt 到 /home
- mv /a/b/c /home/c 移动目录 c 到 /home/c
- mv /a? /home/c 将以a开头后面随机一位字符的文件移动到 /home/c
- rm test.txt 删除test.txt文件
- rm -f test.txt 强制删除test.txt文件不提醒
- rm -rf file_test 强制删除file_test目录不提醒
- rm a? ?匹配任意一位字符
- rm a* * 匹配全部字符
- cat /etc/passwd 查看 passwd 文件内容
-n 带行号查看
二:用户和组
1、用户账号的常见分类:
超级用户:root uid=0 gid=0 权限最大。
普通用户:uid>=500 做一般权限的系统管理,权限有限。
程序用户:1=<uid<500 为了提升系统安全性,为了支持所对应服务对系统资源的使用,不能用于登录系统或管理系统。
UID:用户标识
(1)用户账号文件(保存用户名称、宿主目录、登录 Shell 等基本信息,每一行对应一个用户的账号记录)
cat /etc/passwd
uos1:x:1002:1002::/home/uos1:/bin/sh
用户名:密码:uid:gid:用户备注:家目录:shell
(2)账号密码文件(保存用户的密码、账号有效期等信息,每一行对应一个用户的密码记录)
cat /etc/shadow
root:$6$fLUXm989hDSCgPgp$jsVXwoZokQNEaNPUDCHBYR6naJ7C1:18426:0:99999:7:::
- 用户名:
- 使用MD5加密的密码字符串信息,*或!!时表示此用户不能登陆到系统,为空表示无密码登陆
- 账号上次修改时间距1970年1月1日过去多少天:
- 密码的最短有效天数,0表示不限制
- 密码最长有效天数,99999表示不限制
- 提前多少天警告用户口令即将过期,默认为7天
- 密码过期后多少天禁用此用户
- 账号失效时间,默认为空,表示永久使用
- 保留字段
(3)useradd-添加用户账号命令
-m 创建用户的主目录
-c 添加备注,显示在/etc/passwd 第五字段
-d 指定宿主目录,缺省默认为/home/用户名
-g 指定用户的基本组名(或 gid 号)
-G 指定用户的附加组名(或 gid 号)
-N 取消以用户为名的组
-s 指定用户登录shell
-u 指定 uid 标记号
示例:
useradd -m -d /home/haha -s /bin/bash -u 2020 uos1
id uos1
(4)passwd-设置/更改用户密码口令
示例:
passwd uos1
usermod 修改用户属性
-l:更改用户账号的登录名字
-c:修改用户备注
-L:锁定用户账号算计
-U:解锁用户账户
以下选项与 useradd 命令中的含义相同:-u、-d、-s、-c
-s 指定用户登录shell
示例:
usermod -s /usr/sbin/nologin uos1
userdel 删除用户账号
-r 删除用户同时删除主目录
userdel -r uos1
(5)chage 修改帐号和密码的有效期限
-m:密码可更改的最小天数。为零时代表任何时候都可以更改密码。
-M:密码保持有效的最大天数。
-w:用户密码到期前,提前收到警告信息的天数。
-E:帐号到期的日期。过了这天,此帐号将不可用。
-d:上一次更改的日期。
-i:停滞时期。如果一个密码已过期这些天,那么此帐号将不可用。
-l:例出当前的设置。由非特权用户来确定他们的密码或帐号何时过期。
示例:
useradd -m -s /bin/bash uos1
passwd uos1
chage -l uos1 列出当前的设置
chage -d 0 uos1 #设为0,切换控制台用uos1登录后立刻要求修改密码
chage -E 2015-10-1 uos1 #切换控制台用qin1无法登陆
2、实验-检查用户身份
who 查询当前在线用户
w 查询当前在线用户的详细信息
id 显示用户ID信息
groups 查询客户所属的组
(1)组账号分类:
基本组(主组):用户有且只能有一个基本组
附加组:用户可以有0或n个附加组
GID:组标识号
组账号文件
- /etc/group: 保存组账号基本信息
- /etc/gshadow:保存组账号的密码信息(较少使用)
(2)组账号管理命令:
groupadd 添加组账号
groupdel 删除组账号
gpasswd 管理组命令(可通过--help查看其选项)
示例:
groupadd tx1
groupadd tx2
useradd -N uos1 #-N取消以用户为名的组
usermod -g tx1 uos1 指定用户的基本组名(或 gid 号)
id uos1
usermod -G tx2 uos1 指定用户的附加组名(或 gid 号)
id uos1
groupdel tx1 #发现不能删除
usermod -g tx2 uos1 #用户账号移到其他组后再删除
三:文件管理
在Linux系统中,一切皆文件(目录也是一个特殊的文件);因此对系统的管理,说到底就是对文件进行管理。
1、实验-基础操作
touch /home/uos/Desktop/.uos 创建隐藏文件,以“.”开头的文件为隐藏文件
ls -la /home/uos/Desktop/.uos -a 显示所有子目录和文件信息,包括隐藏文件
touch /home/uos/Desktop/fi\\e \ 转义符
touch /home/uos/Desktop/'fi\e' 双,单引号,表示之内的字符串,没有其他含义
文件名中不能包括Linux特殊字符如“\”、“/”等(如果在文件中使用这些特殊符号可通过转义符“\”将其转义)。
2、实验-文件类型的检查
ls -l 查看文件的详细信息
-rw-r--r-- 1 root lonny 12 Apr 19 19:50 file1
文件类型、文件权限、硬连接数、文件属主、文件属组、文件大小、更动时间、文件名。
(1)文件类型
-:表示一般文件
d:表示目录
l:表示软链接
p:进程间相互通信的文件,Linux拥有一些机制来允许进程间的互相通信,这些机制称为进程间通信机制,管道(pipe)、命名管道(FIFO)、共享缓冲区、信号量、sockets信号等都是进程间常用通信机制,pipe 是用于父进程和子进程之间通信。FIFO是一个文件,允许运行在同一台计算机的进程间进行通信。
s:表示 socket 通信套接字文件(通常用于网络数据连接)
c:表示字符设备文件(如:键盘、鼠标、终端等,通常放在/dev下)
b:表示块设备文件(存储数据设备文件,如:硬盘)
file /etc/passwd 查看文件类型,text
file /dev/sda 块设备
file /boot/vmlinuz-4.19.0-6-amd64 内核启动镜像
file /usr/bin/touch 可执行文件
stat test 查看文件详细信息,更改时间等
(2)文件权限
读权限 r:允许查看文件内容,使用4表示
写权限 w:允许修改文件内容,使用2表示
可执行 x:允许运行程序,使用1表示
无权限 -:使用0表示
例如:
drwxr-xr-x 意思是一个权限为 755 的目录
-rw-r--r-- 意思是一个权限为 644 的文件
所有权
属主:拥有该文件的用户账号
属组:拥有该文件的组账号
更改文件权限
chmod 设置文件或目录的权限
格式:
chmod [-R] [ugoa] [+-=] [rwx] 参数
chmod [-R] [nnn] 参数
常用选项:
-R:表示以递归的方式设置目录及目录下的所有子目录及文件的权限。
u 属主
g 属组
o 其他人
a 所有人
+ 添加
- 删除
= 重置
nnn 数字权限,如:777 666 644 755 等
示例:
touch 1234
ls -l 1234
chmod u+x 1234 属主加可执行权限
chmod g=rwx 1234 重置属组权限为可读可写可执行
chmod o+rwx 1234 给除了属主属组的其他人增加可读可写可执行
chmod 755 1234 给文件改为755权限
更改文件属主数组
chown 设置文件的归属(只有root用户才可以用“chown”指令来改变文件的拥有者)
chown 属主:属组 文件名
chown 属主.属组 文件名
示例:
groupadd pxb 创建组pxb
useradd -g pxb uos1 创建用户uos1并指定他的组
useradd -g pxb uos2
echo 12345678 > /test 创建一个文件并写入
chown uos1:pxb /test 更改属主属组
chmod 640 /test 权限修改为640“rw-r-----”,uos1权限可读可写,组权限可读,其他人没有权限
su - uos1 切换到uos1用户
cat /test 可查看
echo 123 >> /test 可写
su - uos2 切换到uos2用户
cat /test 能读
echo 123 >> /test 不能写
useradd uos3 创建uos3
su - uos3 切换用户
cat /test 不能读
echo 456 >> /test 不能写
管理 Linux 系统中的文件和目录,除了可以设置上述读写执行权限外,还可以使用chattr设置文件/文件夹的隐藏权限,chattr只有root用户可以使用
命令格式为:
chattr [+-=] [属性] 文件/目录名
+ :在原有参数设定基础上,追加参数。
- :在原有参数设定基础上,移除参数。
= :更新为指定参数设定。
属性:
i:如果对文件设置 i 属性,那么不允许对文件进行删除、改名,也不能添加和修改数据;如果对目录设置 i 属性,那么只能修改目录下文件中的数据,但不允许建立和删除文件
a:如果对文件设置 a 属性,那么只能在文件中増加数据,但是不能删除和修改数据;
如果对目录设置 a 属性,那么只允许在目录中建立和修改文件,但是不允许删除文件
u:设置此属性的文件或目录,在删除时,其内容会被保存,以保证后期能够恢复,常用来防止意外删除文件或目录
s:和 u 相反,删除文件或目录时,会被彻底删除(直接从硬盘上删除,然后用 0 填充所占用的区域),不可恢复
lsattr 文件/目录 查看文件或目录的隐藏属性
示例
touch uosfile
lsattr uosfile
chattr +i uosfile 不能修改,不能删除
lsattr uosfile
chattr -i +a uosfile
lsattr uosfile
echo 123 > uosfile
echo 123 >> uosfile 只能追加,不能删除
chattr -a uosfile
rm uosfile
(3)文件访问控制列表
ACL可以为某个文件单独设置该文件具体的某用户或组的权限。
命令格式为:
getfacl <文件名> 获取文件的访问控制信息
setfacl 设置文件的acl
-m 修改文件的acl
-x 取消用户或组对文件的权限
示例:
setfacl –m u:用户名:权限 <文件名> //设置某用户名的访问权限
setfacl –m g:组名:权限 <文件名> //设置某个组的访问权限
setfacl –x u:用户名 <文件名> //取消某用户名的访问权限
setfacl –x g:组名 <文件名> //取消某个组的访问权限
实验:
touch /var/log/uos.log
getfacl /var/log/uos.log
su - uos
vim /var/log/uos.log //不能更改
setfacl -m u:uos:rwx /var/log/uos.log
su - uos
vim /var/log/uos.log //可以进行更改
setfacl -x u:uos /var/log/uos.log
(4)链接
1、软链接(符号链接)
为源文件创建了一个新的指针。当对软链接操作时,系统就会找到原文件并对原文件进行操作(与Windows的快捷方式类似)。
语法:
ln –s <源文件> <新建链接名>
2、硬链接
硬链接文件完全等同于原文件,原文件名和连接文件都指向相同的物理地址
语法:
ln <源文件> <新建链接名>
硬连接的描述
不可跨文件系统创建硬连接,也不可为目录建立硬链接。
文件在磁盘中的数据是唯一的,这样就可以节省硬盘空间
由于只有当删除文件的最后一个节点时,文件才能真正从磁盘空间中消除,因此可以防止不必要的误删除。
实验:
touch uosfile
cp uosfile uosfile1
ln -s uosfile uosfile2 #软连接
ln uosfile uosfile3 #硬连接
echo uossystem > uosfile