Linux 运维基础入门(三)-管理用户和组 、 tar备份与恢复 、 cron计划任务与权限归属

复制时出现重名,强制覆盖
在本次复制,临时取消别名
[root@A ~]# cp -r /boot/ /opt/
[root@A ~]# cp -r /boot/ /opt/

[root@A ~]# \cp -r /boot/ /opt/

#################################################

命令输出重定向

:覆盖重定向

:追加重定向
[root@A ~]# ls --help
[root@A ~]# ls --help > /opt/ls.txt
[root@A ~]# ls /opt/
[root@A ~]# less /opt/ls.txt

[root@A ~]# hostname
[root@A ~]# hostname > /opt/ls.txt
[root@A ~]# cat /opt/ls.txt

[root@A ~]# hostname >> /opt/ls.txt
[root@A ~]# cat /opt/ls.txt

[root@A ~]# echo haha
[root@A ~]# cat /opt/ls.txt

[root@A ~]# echo 123456 >> /opt/ls.txt
[root@A ~]# cat /opt/ls.txt

[root@A ~]# echo hello > /opt/ls.txt
[root@A ~]# cat /opt/ls.txt
##################################################
| 管道操作: 将前面命令的输出,交由后面命令处理

显示文件内容/etc/passwd的8~12行
[root@A ~]# head -12 /etc/passwd | tail -5
[root@A ~]# head -12 /etc/passwd | tail -5 | cat -n
[root@A ~]# cat -n /etc/passwd | head -12 | tail -5

[root@A ~]# ifconfig | less
[root@A ~]# ifconfig | head -2

##################################################
管理用户和组

用户:登录操作系统,不同的用户具备不同的权限
组:方便管理用户

用户唯一标识: UID
组唯一标识: GID

管理员root的UID为0

组的分类: 基本组(私有组) 附加组(从属组)
原则:一个用户必须至少属于一个组
基本组(私有组) :由系统创建与用户同名的组
附加组(从属组):由管理员root创建的组

[root@A ~]# useradd nsd01
[root@A ~]# 组:nsd01

           附加组(从属组): caiwu   meinv  haha  jishu

###################################################
添加用户
用户基本信息存放在 /etc/passwd 文件
[root@A ~]# head -1 /etc/passwd
root❌0:0:root:/root:/bin/bash
用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器程序
• 使用 useradd 命令
– useradd [选项]… 用户名

• 常用命令选项
– -u 用户id、-d 家目录路径、-s 登录解释器、-G 附加组

[root@A ~]# useradd nsd02 #创建nsd02用户
[root@A ~]# id nsd02 #查看nsd02用户基本信息

[root@A ~]# useradd nsd03
[root@A ~]# id nsd03

[root@A ~]# useradd -u 1500 nsd04 #指定用UID值创建
[root@A ~]# id nsd04

[root@A ~]# useradd -d /opt/abc nsd05 #指定用户家目录创建
[root@A ~]# ls /opt/
[root@A ~]# grep nsd05 /etc/passwd

用户名:密码占位符:UID:基本组GID:用户描述信息:家目录:解释器程序

[root@A ~]# useradd -d /opt/nsd06 nsd06
[root@A ~]# ls /opt/
[root@A ~]# grep nsd06 /etc/passwd

###################################################
-s 登录解释器
/sbin/nologin:禁止登录操作系统
[root@A ~]# useradd -s /sbin/nologin nsd06
[root@A ~]# grep nsd06 /etc/passwd

-G 附加组
[root@A ~]# groupadd stugrp #创建stugrp组
[root@A ~]# useradd -G stugrp nsd07
[root@A ~]# id nsd07

[root@A ~]# useradd -G stugrp nsd08
[root@A ~]# id nsd08

##################################################
设置登录密码
用户密码信息存放在 /etc/shadow 文件
[root@A ~]# tail -1 /etc/shadow
nsd08: 6 6 6VjFxZ9GD$XaYwBkrcR0eVnFNZrO/om1bQKFYzlsXW.aHMCx.nOGguVde19zLyyl1jBekeU6r49UfFcvWy4sUDw8iG2OSv2.:18022:0:99999:7:::

用户名:密码加密字符串:上一次修改密码的时间

     1970-1-1~2019-5-6     18022

[root@A ~]# useradd nsd10
[root@A ~]# tail -1 /etc/shadow
nsd10:!!:18022:0:99999:7:::

第二个字段为!!,代表用户为锁定状态

• 使用 passwd 命令
– passwd [用户名]
[root@A ~]# useradd nsd08
[root@A ~]# passwd nsd08 #交互方式设置密码
更改用户 nsd08 的密码 。
新的 密码: #输入新的密码
无效的密码: 密码少于 8 个字符
重新输入新的 密码: #重新输入新的密码
passwd:所有的身份验证令牌已经成功更新。
[root@A ~]# su - nsd08 #命令行临时切换身份
[nsd08@A ~]$ passwd
更改用户 nsd08 的密码 。
为 nsd08 更改 STRESS 密码。
(当前)UNIX 密码: #输入旧密码
新的 密码: #输入新的密码
重新输入新的 密码: #重新输入新的密码
passwd:所有的身份验证令牌已经成功更新。
[nsd08@A ~]$ exit #退出回到root

非交互式设置密码
echo ‘密码’ | passwd --stdin 用户名

[root@A ~]# echo 123 | passwd --stdin nsd08

[root@A ~]# echo redhat | passwd --stdin nsd08

[root@A ~]# echo 654321 | passwd --stdin nsd08

#################################################
修改用户属性
• 使用 usermod 命令
– usermod [选项]… 用户名
• 常用命令选项
– -u 用户id、-d 家目录路径、-s 登录解释器、-G 附加组

[root@A ~]# useradd nsd11
[root@A ~]# id nsd11
[root@A ~]# grep nsd11 /etc/passwd

[root@A ~]# usermod -u 1800 -d /opt/test -s /sbin/nologin -G stugrp nsd11

[root@A ~]# id nsd11
[root@A ~]# grep nsd11 /etc/passwd

[root@A ~]# useradd nsd13
[root@A ~]# grep nsd13 /etc/passwd
[root@A ~]# ls /home/

[root@A ~]# usermod -d /opt/n13 nsd13
[root@A ~]# grep nsd13 /etc/passwd

[root@A ~]# ls /opt/n13
ls: 无法访问/opt/n13: 没有那个文件或目录

################################################
检查用户ID信息
• 使用 id 命令
– id 用户名

##################################################
删除用户
• 使用 userdel 命令
– userdel -r 用户名
-r:连同用户家目录一并删除.

[root@A ~]# ls /home/

[root@A ~]# userdel nsd01
[root@A ~]# ls /home/

[root@A ~]# id nsd01
id: nsd01: no such user
[root@A ~]# rm -rf /home/nsd01/
[root@A ~]# ls /home/

[root@A ~]# ls /home/
[root@A ~]# userdel -r nsd02
[root@A ~]# ls /home/

####################################################
管理组账号

添加组
组基本信息存放在 /etc/group 文件
[root@A ~]# grep linux /etc/group
linux❌1802:

组名:组的密码占位符:组的编号:组成员列表

• 使用 groupadd 命令
– groupadd [-g 组ID] 组名
[root@A ~]# groupadd linux
[root@A ~]# grep linux /etc/group

[root@A ~]# useradd natasha
[root@A ~]# useradd kaka
[root@A ~]# useradd jack
[root@A ~]# useradd xiha

管理组成员
组成员信息存放在 /etc/gshadow 文件
• 使用 gpasswd 命令
– gpasswd -a 用户名 组名
– gpasswd -d 用户名 组名

[root@A ~]# grep linux /etc/group
[root@A ~]# gpasswd -a natasha linux #将用户加入组

[root@A ~]# grep linux /etc/group
[root@A ~]# id natasha

[root@A ~]# gpasswd -a kaka linux
[root@A ~]# grep linux /etc/group

[root@A ~]# gpasswd -a jack linux
[root@A ~]# grep linux /etc/group

[root@A ~]# gpasswd -d kaka linux #将用户从组中删除
[root@A ~]# grep linux /etc/group

案例1:配置用户和组账号
• 新建用户 alex,其用户ID为3456,密码是flectrag
[root@A ~]# useradd -u 3456 alex
[root@A ~]# id alex
[root@A ~]# echo flectrag | passwd --stdin alex
• 创建下列用户、组以及组的成员关系:创建一个名为 adminuser 的组
[root@A ~]# groupadd adminuser
[root@A ~]# grep adminuser /etc/group
• 创建natasha 的用户,其属于 adminuser 组,这个组是该用户的从属组
[root@A ~]# gpasswd -a natasha adminuser
[root@A ~]# grep adminuser /etc/group
• 创建harry 的用户,其属于 adminuser 组,这个组是该用户的从属组
[root@A ~]# gpasswd -a harry adminuser
[root@A ~]# grep adminuser /etc/group
• 创建 sarah 的用户,其在系统中没有可交互的Shell(解释器),不是 adminuser 组的成员
[root@A ~]# useradd -s /sbin/nologin sarah
[root@A ~]# grep sarah /etc/passwd
• natasha 、harry、sarah 的密码都要设置为 flectrag
[root@A ~]# echo flectrag | passwd --stdin natasha
[root@A ~]# echo flectrag | passwd --stdin harry
[root@A ~]# echo flectrag | passwd --stdin sarah

###################################################
删除组
• 使用 groupdel 命令
– groupdel 组名
[root@A ~]# groupdel linux
[root@A ~]# grep linux /etc/group

###############################################
tar备份与恢复

作用:减少占用的空间,零散的文件整理到一个压缩包

压缩格式:
   gzip-----> .gz  
   bzip2-----> .bz2
   xz  -----> .xz

制作tar包:打包
格式: tar 选项 /路径/压缩包的名字 /路径/源文档 …

解包
格式: tar 选项 /路径/压缩包的名字 /释放位置

• tar 集成备份工具
– -c:创建归档
– -x:释放归档
– -f:指定归档文件名称
– -z、-j、-J:调用 .gz、.bz2、.xz格式的工具进行处理
– -t:显示归档中的文件清单
– -C:指定释放路径

f选项必须放在,所有选项的最后
制作tar包:打包

]# tar -zcf /opt/file.tar.gz /home/ /etc/passwd
]# ls /opt/

]# tar -jcf /opt/nsd.tar.bz2 /home/ /etc/passwd
]# ls /opt/

]# tar -Jcf /opt/abc.tar.xz /home/ /etc/passwd
]# ls /opt/

-z:gzip压缩格式
-j:bzip2压缩格式
-J:xz压缩格式

[root@A ~]# mkdir /nsd02
[root@A ~]# tar -xf /opt/file.tar.gz -C /nsd02
[root@A ~]# ls /nsd02/
[root@A ~]# ls /nsd02/etc/
[root@A ~]# ls /nsd02/home/

[root@A ~]# mkdir /nsd03
[root@A ~]# tar -xf /opt/nsd.tar.bz2 -C /nsd03
[root@A ~]# ls /nsd03

[root@A ~]# tar -tf /opt/abc.tar.xz #查看包里内容

案例2:创建一个备份包
使用 tar 工具完成以下备份任务:
– 创建一个名为 /root/backup.tar.bz2 的归档文件
– 其中包含 /usr/local 目录中的内容
– tar 归档必须使用 bzip2 进行压缩

[root@A ~]# tar -jcf /root/backup.tar.bz2 /usr/local/

[root@A ~]# ls /root/

[root@A ~]# tar -tf /root/backup.tar.bz2 #查看包里内容

#####################################################
周期性任务

cron任务概述
• 用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务
• 日志文件:/var/log/crond

执行周期 配置说明
分钟 从0到59之间的整数
小时 从0到23之间的整数
日期 从1到31之间的整数
月份 从1到12之间的整数
星期 0~7之间的整数,0或7代表星期日

• 使用 crontab 命令
– 编辑:crontab -e [-u 用户名]
– 查看:crontab -l [-u 用户名]
– 清除:crontab -r [-u 用户名]

如何编写crontab任务记录
– 分 时 日 月 周 任务命令行(绝对路径)

30 8 * * * #每天早晨的8:30

30 23 * * 5 #每周的周五晚上11:30

30 8 1 * * #每月的1号早晨的8:30

30 23 * * 1-5 #周一至周五晚上11:30

30 23 * * 1,3,5 #周一或周三或周五晚上11:30

*:匹配范围内任意时间
,:分隔多个不连续的时间点
-:指定连续时间范围
/n:指定时间频率,每n ...

1 */2 * * * #每隔2个小时执行一次

*/5 * * * * #每隔5分钟执行一次

30 23 1 * 1 #周一或每月一号 晚上11:30

##################################################
每分钟记录当前系统时间,将系统时间每分钟写入文件/opt/time.txt
[root@A ~]# date
[root@A ~]# date >> /opt/time.txt
[root@A ~]# cat /opt/time.txt
[root@A ~]# crontab -e -u root

          • date >> /opt/time.txt

[root@A ~]# crontab -l -u root
[root@A ~]# cat /opt/time.txt

###################################################
[root@A ~]# crontab -e -u root
*/2 * * * * date >> /opt/time.txt
[root@A ~]# crontab -l -u root

[root@A ~]# cat /opt/time.txt
##################################################
真机,设置永久的别名,修改系统级配置文件
~/.bashrc #设置永久别名配置文件,每开一个终端会被执行一次

[student@room9pc01 ~]$ vim /home/student/.bashrc

.bashrc

alias gos=‘ssh -X root@172.25.0.11
alias god=‘ssh -X root@172.25.0.10

新开一个终端验证:
[student@room9pc01 ~]$ gos
[student@room9pc01 ~]$ god

#################################################
权限和归属

基本权限

• 访问方式(权限)
– 读取:允许查看内容-read r
– 写入:允许修改内容-write w
– 可执行:允许运行和切换-execute x

对文本文件:
r: cat less head tail
w: vim 保存 > >>
x: 书写Shell脚本或Python脚本

• 权限适用对象(归属)
– 所有者(属主):拥有此文件/目录的用户-user u
– 所属组(属组):拥有此文件/目录的组-group g
– 其他用户:除所有者、所属组以外的用户-other o

 zhangsan       1.txt         所有者的基本组成为该文件的所属组

####################################################
查看权限
• 使用 ls -l 命令
– ls -ld 文件或目录…

以d开头:目录
以-开头:文件
以l开头:快捷方式

[root@server0 ~]# ls -ld /etc/
[root@server0 ~]# ls -l /etc/passwd

[root@server0 ~]# ls -l /etc/shadow
[root@server0 ~]# ls -ld /home/student
[root@server0 ~]# ls -ld /tmp
####################################################
设置基本权限
• 使用 chmod 命令
– chmod 归属关系±=权限类别 文档…

[root@server0 ~]# mkdir /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod g+w /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod u-w /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod o=— /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod u=rwx,g=rx,o=rx /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# chmod ugo=rwx /nsd01
[root@server0 ~]# ls -ld /nsd01

[root@server0 ~]# mkdir -p /opt/aa/bb/cc
[root@server0 ~]# ls -ld /opt/aa
[root@server0 ~]# ls -ld /opt/aa/bb/
[root@server0 ~]# ls -ld /opt/aa/bb/cc/

[root@server0 ~]# chmod -R o=— /opt/aa
[root@server0 ~]# ls -ld /opt/aa

##################################################
Linux判定用户具备的权限 匹配及停止
1.判定用户对该文档的身份 所有者>所属组>其他人
2.查看相应身份 权限位的权限

Permission denied :权限不足

目录的 r 权限:能够 ls 浏览此目录内容
目录的 w 权限:能够执行 rm/mv/cp/mkdir/touch/等更改目录内容的操作
目录的 x 权限:能够 cd 切换到此目录

以root用户新建/nsddir目录,在此目录下新建readme.txt文件
并进一步完成下列操作
1)使用户lisi能够在此目录下创建子目录 切换用户 su - lisi
chmod o+w /nsddir/
2)使用户lisi不能够在此目录下创建子目录
chmod o-w /nsddir/
3)使用户lisi能够修改readme.txt文件内容
chmod o+w /nsddir/readme.txt
4)调整此目录的权限,使所有用户都不能cd进入此目录
chmod u-x,g-x,o-x /nsddir/
5)为此目录及其下所有文档设置权限 rwxr-x—
chmod -R u=rwx,g=rx,o=— /nsddir/
   -R:递归设置权限,目录下及目录下所有

##################################################
设置文档归属
• 使用 chown 命令
– chown -R 属主 文档…
– chown -R :属组 文档…
– chown -R 属主:属组 文档…

[root@server0 ~]# groupadd tedu
[root@server0 ~]# mkdir /nsd03
[root@server0 ~]# ls -ld /nsd03

[root@server0 ~]# chown lisi:tedu /nsd03
[root@server0 ~]# ls -ld /nsd03

[root@server0 ~]# chown zhangsan /nsd03
[root@server0 ~]# ls -ld /nsd03

[root@server0 ~]# chown :root /nsd03
[root@server0 ~]# ls -ld /nsd03

################################################
利用root用户新建/nsd06目录,并进一步完成下列操作
1)将属主设为gelin01,属组设为tarena组
[root@server0 /]# useradd gelin01
[root@server0 /]# useradd gelin02
[root@server0 /]# groupadd tarena
[root@server0 /]# chown gelin01:tarena /nsd06
2)使用户gelin01对此目录具有rwx权限
除属主与属组之外的人,对此目录无任何权限
[root@server0 /]# chmod o=— /nsd06
3)使用户gelin02能进入、查看此目录内容
[root@server0 /]# gpasswd -a gelin02 tarena
4)将gelin01加入tarena组, 将nsd06目录的权限设为rw-r-x—
再测试gelin01用户能否进入此目录
[root@server0 /]# gpasswd -a gelin01 tarena
[root@server0 /]# chmod u=rw,g=rx /nsd06
###################################################
让lisi用户可以读取/etc/shadow文件内容,您有几种办法
1.利用其他用户
chmod o+r /etc/shadow

2.利用所属组
chown :lisi /etc/shadow
chmod g+r /etc/shadow

3.利用所有者
chown lisi /etc/shadow
chmod u+r /etc/shadow
###################################################
附加权限(特殊权限)

Set GID
• 附加在属组的 x 位上
属组的权限标识会变为 s
适用于目录,Set GID可以使目录下新增的文档自动设置与父目录相同的属组
让父目录下,新增的子文档继承父目录的所属组身份

[root@server0 ~]# mkdir /nsd07
[root@server0 ~]# chown :tedu /nsd07 #修改所属组
[root@server0 ~]# ls -ld /nsd07

[root@server0 ~]# mkdir /nsd07/abc
[root@server0 ~]# ls -ld /nsd07/abc
[root@server0 ~]# chmod g+s /nsd07/ #设置Set GID权限
[root@server0 ~]# ls -ld /nsd07/

[root@server0 ~]# mkdir /nsd07/test
[root@server0 ~]# ls -l /nsd07/

[root@server0 ~]# touch /nsd07/1.txt
[root@server0 ~]# ls -l /nsd07/

###################################################

    /nsd09  rwx  r-x ---  存放打卡记录
     2019-5-6.txt
     2019-5-7.txt
     2019-5-8.txt
     2019-5-9.txt

    groupadd  caiwu

    chown  :caiwu  /nsd09
    chmod  g+s   /nsd09

##################################################
Set UID
• 附加在属主的 x 位上
属主的权限标识会变为 s
适用于可执行文件,Set UID可以让使用者具有文件属主的身份及部分权限

[root@server0 ~]# /usr/bin/mkdir /opt/haha
[root@server0 ~]# ls /opt/
[root@server0 ~]# cp /usr/bin/mkdir /usr/bin/hahadir
[root@server0 ~]# /usr/bin/hahadir /opt/xixi
[root@server0 ~]# ls /opt/
[root@server0 ~]# chmod u+s /usr/bin/hahadir
[root@server0 ~]# ls -l /usr/bin/hahadir
[root@server0 ~]# su - lisi
[lisi@server0 ~]$ /usr/bin/mkdir test01
[lisi@server0 ~]$ /usr/bin/hahadir test02
[lisi@server0 ~]$ ls
test01 test02
[lisi@server0 ~]$ ls -l
[lisi@server0 ~]$ exit
###################################################

Sticky Bit
• 附加在其他人的 x 位上
其他人的权限标识会变为 t
适用于开放 w 权限的目录,可以阻止用户滥用 w 写入权限(禁止操作别人的文档)

[root@server0 ~]# mkdir /public
[root@server0 ~]# chmod ugo=rwx /public
[root@server0 ~]# ls -ld /public

[root@server0 ~]# chmod o+t /public/
[root@server0 ~]# ls -ld /public/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值