一、linux操作系统的软件安装
http-2.2.15.tar.gz
源码包特点:
1、源码包一般都是压缩包
2、源码包可以跨平台安装(可以装在centos/kali等)
3、更新速度快
4、安装过于繁琐
5、可以指定安装哪些功能(enable/disabled)
封装后的软件包特点:
1、经过压缩处理
2、安装便捷1条命令即可安装
3、更新速度慢
4、不能指定安装路径和安装功能
5、不支持跨平台安装 (deb--> debian | rpm --> redhat package manager)用centos就是红帽的,用ubantu、kali就是德班的
安装封装软件包的前提:
1.确认是否已经安装过该软件包
rpm -qa (-q表示required,-a表示all,列出已经装的所有包)
rpm -qa | wc -l 可以显示有多少个
rpm -qa | grep lftp 不显示内容表示没安装lftp软件
2.确认软件的作用
rpm -qpi lftp-4.0.9-14.el6.x86_64.rpm
p表示package i表示info 查看该软件包作用
3、确认软件的安装位置
rpm -qpl lftp-4.0.9-14.el6.x86_64.rpm
4、安装软件
rpm -ivh lftp-4.0.9-14.el6.x86_64.rpm(i表示install,v显示详细的安装过程,h是安装的时候进度条用井号显示)
5、通过man帮助查看lftp man lftp
lftp ip地址
> user 用户名 密码
> 登录
> set ftp:charset gb2312 修改字体为中文字体
> get 下载
> lcd 本地目录 切换本地目录
> put 上传
> quit
6、卸载软件
rpm -e lftp
二、YUM源安装配置
vim卸载过程
rpm -e vim-common 提示有依赖关系
* 解决依赖关系问题
1、软件依赖关系列表保存在光盘中
2、使用yum源工具 指定光盘所在路径
3、通过yum源工具安装卸载带有依赖关系的软件
cd /etc/yum.repos.d 所有yum源的默认存放目录
所有yum源文件的特点都是.repo结尾
mkdir bak
mv C* bak 移除所有yum源文件 避免干扰
vim 1901class.repo 建立自己的yum源文件
[1901source] #标签
name=1901 #描述
baseurl=baseurl=file:/media/CentOS_6.6_Final #定义依赖关系文件所在位置 光盘所在路径
gpgcheck=0 #不做密钥对验证
yum remove vim-common 卸载软件
yum install vim-enhanced 安装软件
yum clean all 清除以前的yum源缓存
yum install wireshark-gnome 安装抓包软件
打开后点击interface list,能看到网卡
dst就是destination
ip dst==10.0.105.99 && ssh
科来也是很好的抓包软件
三、权限的学习
参考以前写的博客:https://blog.csdn.net/Waffle666/article/details/114061103
如何查看权限
ls -l
drwxr-xr-x. root(文件的所属者) root(文件的所属组) 目录
-rw-r--r--. root root 文件
必会文件
/etc/passwd 保存了系统中所有用户的信息
uid 用户的身份标识0为超级管理员 500-60000普通用户 1-499 程序用户(不能登录系统)
root:x:0:0:root:/root:/bin/bash
字段1:用户名
字段2:密码占位符
字段3:uid号
字段4:用户的基本组id号
字段5:用户信息记录位置(废弃)
字段6:用户的家目录
字段7:用户登录系统后用什么命令解释器
/etc/shadow 影子 记录系统中用户的密码信息
root:$6$A2$A5p:18129:0:99999:7:::
字段1:用户名
字段2:通过sha-512以及salt值加密后的密文
字段3:距离1970年1月1日密码最近一次的修改时间
字段4:密码的最短有效期
字段5:密码的最长有效期 90
字段6:密码过期前7天警告
字段7:密码的不活跃期
字段8:密码距离1970年1月1日的失效时间
/etc/group 保存了组信息
python 进入python命令解释器
>>>import crypt
>>>crypt.crypt("密码","$6$xxxxx")
>>>出现使用salt和sha512加密后的密文,比对密文和你的密码密文是否相同
>>>quit() 退出python$6$C3kgOgP2$/3VFNPVypJa/ODEV/3dYBQ5fdJDNCHHd1VBKonfFtrZ7.vwC77BWtIgt18RAWPPsjUyOsYIOCAS6x/2Zz2yWs/
尝试破解我的密码,密码为纯数字,长度在5位以内
组和用户的关系:
1、用户必须有一个基本组,如果该组中有基本成员,该组不允许被删除。
2、一个用户可以有多个附加组,如果附加组没有基本成员,该组可以被删除。
练习:
1、建立一个名为1901class的组,组id为1000
groupadd -g 1000 1901class
2、建立一个名为自己名字的用户该用户的uid为600 基本组为1901class组
useradd -u 600 -g 1901class 用户名
3、为该用户设定密码为123456
passwd allen
4、删除该用户及其家目录
userdel -r allen
useradd
-u 指定 uid号
-g 指定 基本组
-G 指定 附加组
-s 指定用户登录的命令解释器 -s /sbin/nologin 不允许登录 -s /bin/bash 允许登录
usermod 选项同上
userdel
-r 删除用户的家目录
groupadd
-g 指定gid号
groupmod 选项同上
groupdel 删除组
passwd 用户名
-S 查看用户密码状态
-l 锁定用户
-u 解锁用户密码
-d 删除用户密码
chage -M 90 用户名 修改用户密码的最长有效期
visudo 为普通用户设定管理员执行的命令
用户名 登录的主机=允许执行的命令 NOPASSWD:ALL
allen ALL=(root) NOPASSWD:ALL
allen用户登录
sudo init 6 提权使用root用户命令
练习:
1、在光盘的rpm包中找到一个名为tree的rpm包了解其信息后将其安装后使用该软件观察其作用。
2、配置本地yum源要求通过yum源安装一个,名为vsftpd的软件,后将该软件删除
3、在系统中建立两个组1901class、1902class,其中第一个组的gid为600,第二个为700
4、建立一个用户tom基本组为1901class、附加组为1902class。建立jerry用户基本组1903class、附加组1902class。为tom和jerry用户设定密码,后将jerry用户密码锁定
5、设定tom用户密码的最长有效期为90天,并设定该用户登录后必须修改密码。(提示-d选项)
复习
1、解释以下命令的作用
rpm -ivh rpm -e rpm -qa rpm -qpl rpm -qpi
2、解释以下内容字段3 字段6 和字段7
root :x :0 :0 :root :/root :/bin/bash
tom :x :32 :32::/bin:/sbin/nologin
3、解释以下内容字段2 字段3 字段5
root :$6$sdjlfjlJL$alkdsjfj$: 18790: 0:90:7:::
4、在系统中建立一个用户jerry要求用户的基本组为root组,附加组为1901class组,jerry的uid号为1000。
useradd -g root -G 1901class -u 1000 jerry
5、在/etc/sudousers文件中发现内容如下 visudo
jerry ALL=(root) NOPASS:/sbin/init
请问jerry用户有什么特殊权限
sudo init 0
6、默写以下yum源文件中的4行内容。
[1901]
name=1901
baseurl=file:/misc/cd
gpgcheck=0
rpm -qpi --scripts 包名 显示详细信息后同时显示包中封装的 脚本
yum源中 gpgcheck=1 启用公钥验证
gpgkey=file:/etc/gki/rpm-gpg/RPM-GPG-KEY-CentOS-6 指定公钥位置
练习:安装两个rpm素材包之前通过scripts选项观察脚本中默认封装的脚本信息
权限
allen rm -fr /* ?
d rwx r-x r-x . root(文件的所属者) root(文件的所属组) 目录
- rw- r-- r-- . root(文件的所属者) root(文件的所属组) 文件
字段1:表示文件的类型 d 目录 - 文件 l 符号链接 c 字符型设备 b block块设备
字段2:文件所属者的权限
r w x
目录 列出目录内容 添加删除目录中的文件 进入该目录
文件 读 写 执行
字段3:文件所属组的权限
字段4:其他用户的权限(既不是文件的所属者,也不在文件的所属组中)
chmod a=--- 目录
chmod g=rwx 目录
chmod o=rx 目录
修改文件属性
chmod 对象 运算符号 权限 文件或者目录
对象:u(user所属者) g(goup所属组) o(other其他) a(all所有)
运算符号: + 赋权 - 撤权 = 指定权限
练习:
1、root用户在/tmp目录中建立一个rootdir目录,设定root组成员对该目录中文件有添加删除的权限rwx,其他用户对该目录没有任何权限。定义tom用户的附加组为root组并在该目录中建立文件tom.txt
mkdir /tmp/rootdir
chmod g+w,o=--- /tmp/rootdir
2、现在有一个用户jerry不是root组成员,调整rootdir目录权限使得jerry用户可以进入目录并列出目录内容
chmod o=rx /tmp/rootdir
3、root用户在rootdir中建立一个root.txt文件,在上面两题基础上,要求该文件只有root用户和jerry用户查看,tom无法查看该文件,应该如何设置权限。
chmod g-r /tmp/rootdir/root.txt
普通用户 rm -fr /* 会删除家目录的内容
切换成用户Allen 删除自己家中的内容 rm -fr .* 删除隐藏文件
使用root用户进行恢复
rm -rf /home/allen 使用root 用户先删除原来的家目录
cp -r /etc/skel /home/allen 拷贝用户家目录的模板文件到home中
chown -R allen:allen /home/allen 修改家目录的所属者和所属组
chown 修改文件所属者和所属组
-R 递归修改
文件的acl 设定某个用户有不同权限
man setfacl 为文件设定访问控制列表
-m 修改 u:用户名:权限 文件或者目录
八进制赋权法
r=4 w=2 x=1
rwxr-xr-x
755
rw-r--r--
644
0 000 ---
1 001 --x
2 010 -w-
3 011 -wx
4 100 r--
5 101 r-x
6 110 rw-
7 111 rwx
三个特殊权限
t 粘滞位 (只对目录有效)
在目录中建立的文件只有文件的所属者可以删除。
chmod 777 /tmp/test(777其实是0777,第一位写1表示粘滞位,这里可以写1/4/7)
chmod o+t /tmp/test
方法2
chmod 1777 /tmp/test
sgid (只对目录有效)
在目录中建立的文件或者目录属组会继承父目录的属组
chmod 777 /tmp/test
chmod g+s /tmp/test
方法2
chmod 2777 /tmp/test
suid (只对可执行文件有效)
当一个可执行文件具有suid权限,无论谁运行该文件,谁就具有该文件所属者的权限。
which vim
chmod u+s /usr/bin/vim
chmod 4755 /usr/bin/vim
which find
chmod u+s /bin/find
普通用户
find /opt -name rh -exec "/bin/dash" \;
# 获得root权限
find / -perm 4755 针对权限进行查询系统中所有具有suid权限的命令
find / -perm +4000 忽视后面权限只要带suid的都查
练习:
1、在/tmp目录中建立一个test目录并对其设定粘滞位以及sgid权限观察效果
2、为vim编辑器以及find命令设定suid,并尝试用find命令提权成为root用户
visudo
jerry ALL=(root) NOPASSWD: /usr/bin/man
切换为jerry
sudo man ls
输入! 命令表示以root用户在运行命令