day017-Linux基础-权限管理

7次阅读
没有评论

2026年3月30

周回顾

day012:打包压缩
1.tar打包压缩
语法结构:
tar [参数] 包名 [参数] [目录文件]
示例: tar -zcvf 1.tar.gz 1.txt
      tar -xf 1.tar.gz -C /data
参数:
    -z #zip格式
    -c #创建
    -v #显示打包信息
    -f #指定打包路径
    -C #指定解压路径
    -t #查看tar.gz包内容
    --exclude=
    --exclude-from=
2.zip 打包压缩
语法结构:
打包:zip 包名 目录文件
示例:zip 1.zip 1.txt
解压:unzip 包名 [参数] 目标位置
示例:unzip 1.zip -d /data/
参数:
    -d #指定解压路径
3.包命名
用主机名
tar `hostname`.tar.gz 1.txt
tar `hostname -I`.tar.gz 1.txt
用时间
tar `date +%F~%H:%M:%S`.tar.gz 1.txt
4.特殊符号
; #分号表示不管前面是否执行成功都继续执行下一条命令
&& #前一条命令执行成功才执行下一条
|| #前一条命令执行失败才执行下一条
5.正则表达式
^开头
$结尾
day013:正则表达式
1.标准正则
^ #表示以什么什么开头
示例:从1.txt查找以a开头的内容 grep '^a' 1.txt
$ #表示以什么什么结尾
示例:从1.txt查找以a结尾的内容 grep 'a$' 1.txt
示例:从1.txt查找空行 grep '^$' 1.txt
. #任意字符
示例:从1.txt匹配所有字符 grep '.' 1.txt
* #表示0次或0次以上
[]#表示选一个
2.扩展正则
+ #1次或1次以上
| #或者
{} #指定次数最少n次最多m次
() #看成一个整体
day014:三剑客sed
作用:
增删查改
过滤字符
语法:sed [参数] '找谁动作'
参数:
    -n #取消默认输出
    -r #扩展正则
    -i #修改源文件
找谁:
    按行数:'直接写数字'
    按内容:'//'
    按区间:','
    多命令:';'
动作:
    p 输出
    d 删除
    ! 取反
    s###g 替换
    i 插入
    a 最加
    c 替换
    w 写入
day015:awk
作用:
    取行去列
    模糊过滤
    数字比对
    模式+动作
语法结构:awk [参数选项] '模式{动作}'
内置变量:NR 取行 NF每行列数 $ 取列
参数:
    -F 指定分隔符
示例:
awk -F: 'NR==1{print $1}' 输出第一行第一列
awk -F "[:/]" 'NR==2{print $NF}'输出第2行 最后列
day016:用户管理
1.用户分类
2.相关配置文件
3.创建用户
4.修改用户
5.删除用户
6.设置密码
7.密码管理
8.MD5s
补充
#第一个xargs问题
xargs的作用就是传递结果的
将前面命令的输出、传递给后面命令(后面命令的参数使用)
1.处理的是屏幕上的数据还是内容
2.是否使用xargs用来传递
#第二个用户创建问题
cento和kylin默认的创建普通用户
ubt默认的创建虚拟用户
ubt默认没有加
ubt默认指定dash

普通用户标准:
1.必须有家/home/oldboy
2.必须解释器/bin/bash
01.创建用户过程
/etc/skel/ #作用普通用户的家模板
家目录下两个变量文件:
[root@oldboy ~]# ll -a /etc/skel/
-rw-r--r--   1 root root   71  8月 25  2022 .bash_profile  #拷贝到普通用户家里
-rw-r--r--   1 root root  138  8月 25  2022 .bashrc        #拷贝到普
通用户家里
---------------
#创建过程
1.输入命令useradd oldboy
2.系统创建用户、并且创建家目录 /home/oldboy
3.需要将/etc/skel/下面的隐藏文件复制到/home/oldboy目录下
4.将复制过去的文件属主属组修改为普通用户的权限 oldboy

day017-Linux基础-权限管理


如果家目录下隐藏文件被误删除需要进行恢复。
第一步:拷贝模板目录下隐藏文件到家目录
[oldboy@oldboy ~]$ cp /etc/skel/.* .
第二步:修改属主属组为oldboy
[root@oldboy ~]# chown oldboy.oldboy /home/oldboy/.bash_profile /home/oldboy/.bashrc
第三步:生效
重新连接
source .*
02.修改文件的属主属组
作用:决定文件权限的
语法结构:
        chown 用户.用户组 file #修改文件的属主属组(常用 追重要的)。
        chown -R 用户.用户组 file #递归修改文件的属主属组
案例1:将1.txt属主属组修改为oldboy用户
[root@oldboy ~]# ll
总用量 8
-rw-r--r-- 1 root root 455  3月 29 11:32 1.txt
-rw-r--r-- 1 root root  87  3月 29 11:30 2.txt
[root@oldboy ~]# chown oldboy.oldboy 1.txt
[root@oldboy ~]# ll
总用量 8
-rw-r--r-- 1 oldboy oldboy 455  3月 29 11:32 1.txt
案例2:只修改属主
[root@oldboy ~]# chown oldboy 2.txt 
[root@oldboy ~]# ll
总用量 8
-rw-r--r-- 1 oldboy root    87  3月 29 11:30 2.txt
案例3:只修改属组
[root@oldboy ~]# chown .oldboy 2.txt
[root@oldboy ~]# ll
总用量 8
-rw-r--r-- 1 oldboy oldboy  87  3月 29 11:30 2.txt
案例4:递归修改文件的属主属组
[root@oldboy ~]# chown -R oldboy.oldboy oldboy/
[root@oldboy ~]# ll
总用量 8
-rw-r--r-- 1 oldboy oldboy 455  3月 29 11:32 1.txt
-rw-r--r-- 1 oldboy oldboy  87  3月 29 11:30 2.txt
drwxr-xr-x 2 oldboy oldboy  32  3月 29 16:37 oldboy
[root@oldboy ~]# ll oldboy/
总用量 0
-rw-r--r-- 1 oldboy oldboy 0  3月 29 16:37 1.txt
-rw-r--r-- 1 oldboy oldboy 0  3月 29 16:37 2.txt
03.用户切换
语法结构:
    su - 用户名
       - #切换用户需要写 -参数,跟新环境变量切换家目录
普通用户切换到root用户
root用户切换到普通用户
普通用户切换普通用户

登录是否需要密码?
root切换到普通用户不用密码
普通用户切换到root需要root密码
普通用户切换到普通用户需要密码
案例1:管理员切换到oldboy用户
[root@oldboy ~]# su - oldboy 
在oldboy账号可以使用exit退回到root账号
[oldboy@oldboy ~]$ exit
注销
[root@oldboy ~]# 

#普通用户禁止去管理员用户家
[oldboy@oldboy ~]$ cd /root
-bash: cd: /root: Permission denied
案例2:普通用户切换到管理员账号
[oldboy@oldboy ~]$ su - root
Password:       #要知道root的密码
Last login: Sun Mar 29 18:01:49 CST 2026 on pts/0

[root@oldboy ~]# exit
注销              #执行exit退回到普通用户
[oldboy@oldboy ~]$ 
案例3:普通用户切换到普通用户
[oldboy@oldboy ~]$ su - liweiwei
Password: 
Last login: Sun Mar 29 17:23:25 CST 2026 from 192.168.21.53 on pts/0

day017-Linux基础-权限管理

企业用普通用户登录系统,然后用su - root 切换到管理员进行管理。
保护root的安全,会在配置文件将root禁止远程登录。黑客破解root对应的密码
普通用户--su - root 进到管理员
1.修改配置文件禁止root登录
[root@oldboy ~]# vim /etc/ssh/sshd_config
...
39 PermitRootLogin no  #默认的yes修改为no
...
2.重启服务生效
systemctl restart sshd
3.远程连接测试(测试完成后修改回来)
04.sudo提权
作用:可以让某个用户运行某个命令的时候拥有root的权限!
运维:拥有最高权限root
开发:没有root权限、只能有一个普通用户oldboy
测试:没有root权限、只能有一个普通用户 lw

需求:开发说我要求可以使用cat或者less命令查看/var/log/messages的权限
第一步:登录开发的账号oldboy、查看系统日志
[oldboy@oldboy ~]$ cat /var/log/messages
cat: /var/log/messages: Permission denied

#查看当前oldboy用户有那些提权的命令
[oldboy@oldboy ~]$ sudo -l
[sudo] password for oldboy:  #输入的是oldboy的密码
Sorry, user oldboy may not run sudo on oldboy. #默认没有任何sudo权限

第二步:在root账号对oldboy用户进行提权
[root@oldboy ~]# visudo
在101行写入以下内容
...
101 oldboy  ALL=(ALl)       /usr/bin/cat
...
正常保存退出

第三步:到oldboy执行sudo -l在查看
[oldboy@oldboy ~]$ sudo -l
[sudo] oldboy 的密码: #输入oldboy的密码
用户 oldboy 可以在 oldboy 上运行以下命令:
    (ALl) /usr/bin/cat #拥有的权限
执行cat命令
[oldboy@oldboy ~]$ sudo cat /var/log/messages

#sudo执行cat 相当于是root用户在用cat命令
授权流程:
1.普通用户执行cat /var/log/message 没有权限
2.root执行visudo
visudo命令实际编辑的 /etc/sudoers这个文件 vim /etc/sudoers
visudo有语法检查的功能、直接vim编辑原文没有语法检查功能。
用户      默认            命令的绝对路径
oldboy  ALL=(ALL)       /usr/bin/cat
完成后保存退出

3.在普通用户执行cat命令
sudo cat /var/log/messages

#英文
syntax error  #语法错误

#给oldboy用户授权多个命令使用逗号分隔
第一步:visudo
oldboy  ALL=(ALL)       /usr/bin/cat,usr/bin/touch

第二步:oldboy用户使用
sudo touch /etc/1.txt

授权所有的命令
oldboy  ALL=(ALL)       NOPASSWD: ALL
#root管理员切换到自己root不需要密码
[root@oldboy ~]# sudo su - root
Last login: Sun Mar 29 18:04:27 CST 2026 on pts/0
简写默认就是切换到root
[root@oldboy ~]# sudo su -
上一次登录: 日 3月 29 20:41:22 CST 2026 pts/0 上

#排除某个命令
visudo
oldboy  ALL=(ALL)       NOPASSWD: ALL,!/usr/bin/su
重点:
1.用户创建 组创建
2.用户删除
3.用户配置文件passwd /etc/skel/
4.密码管理 复杂度
5.md5校验自己理解
6.chown 属主属组
7.查看用户id grep 用户 /etc/passwd
8.切换用户
su - oldboy
su - root
9.sudo提权
sudo cat xxx #oldboy用户执行cat的时候相对于root身份执行
正文完
 0
评论(没有评论)