软件安装与账户权限
1.学习路径
1.1 Linux系统中软件安装
- Linux应用程序基础
- Linux命令与应用程序关系
- Linux应用程序的组成
- 软件包的封装类型
- 使用RPM包管理工具
- RPM概述
- RPM包管理命令-rpm
- 从源代码编译安装程序
- 源代码编译安装程序
- 编译安装的基本过程
1.2 Linux系统中账户与权限
- 管理用户和组的账号
- 用户和组账号的概述
- 用户账号管理
- 组账号管理
- 查询账号信息
- 管理目录和文件的属性
- 查看目录或文件的属性
- 设置目录或文件的权限
- 设置目录或文件的归属
2. Linux应用程序基础
2.1 应用程序和命令的关系
系统命令一般在”/bin “和”/sbin “目录中,或为Shell指令。
应用程序通常在”/usr/bin “和”/usr/sbin “中。
2.2 典型的应用程序目录
文件类型 | 保存目录 |
---|---|
普通执行程序文件 | /usr/bin |
服务器执行程序文件和管理程序文件 | /usr/sbin |
应用程序配置文件 | /etc |
日志文件 | /var/log |
应用程序文档文件 | /usr/share/doc |
应用程序手册页文件 | /usr/share/man |
2.3 查看已安装的RPM软件的信息
1 | rpm -q[子选项] [软件名] |
-qa:查看系统中已安装的所有RPM软件包列表*
-qi:查看指定软件的详细信息*
-ql:查询指定软件包所安装的目录、文件列表*
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
-qf:文件或目录名,查询文件或目录属于哪个RPM软件
1
2which vim # 第一步找到命令在哪个文件
rpn -qf /usr/bin/vim # 找到这个目录属于哪个RPM软件
2.4 查找未安装的RPM包文件
1 | rpm -qp[子项目] RPM包文件 |
- -qpi:通过.rpm包文件查看该软件的详细信息
- -qpl:查看.rpm安装包内所包含的目录、文件列表
- -qpc:查看.rpm安装包内包含的配置文件列表
- -qpd:查看.rpm安装包内包含的文档文件列表
2.5 安装、升级、卸载RPM软件包
1 | rpm [选项] RPM包文件 |
- -i:安装一个新的rpm软件包
- -U:升级某个rpm软件,若原本未装,则进行安装
- -F:更新某个rpm软件,若原本未装,则放弃安装
- -e:卸载某个软件包, –nodeps强制卸载
2.6 重建RPM数据库
1 | rpm --rebuilddb |
2.7 导入验证公钥
1 | rpm --import |
3.软件完整性校验
3.1 *md5sum校验工具
1 | md5sum axe1-1.0a.tar.gz |
生成算法结果,如果与发布者不一样就是被篡改了,抓紧删 。
3.2 包封装类型
下载源代码安装包文件
tar解压
1
2# 常用的将软件包放到/usr/src目录
tar zxf httpd-2.2.15.tar.gz -C /usr/src./configure配置
1
2
3cd /usr/src/httpd-2.2.15
# --prefix=软件安装目录
./configure --prefix=/usr/local/apachemake编译
make install 安装
4. 用户和组账号概述
- 用户账号
- 超级用户
- 普通用户
- 程序用户
- 组账号
- 基本组(私有组)
- 附加组(公有组)
- UID和GID
- UID(用户标识号)
- 程序用户UID:1-499
- 普通用户UID:500-60000
- GID(组标识号)
- GID跟UID走
- UID(用户标识号)
4.1 用户账号文件
/etc/passwd
1 | root : x : 0 : 0 : root : /root : /bin/bash |
- 如果给他操作环境就给他登录Shell /bin/bash
- 如果不想给他操作环境就给他 /sbin/nologin
4.2 保存用户的密码、账号等有效信息
/etc/shadow 一行对应一个用户的密码记录
1 | teacher:$1$BT7teaYX$s2sr6uFUxKhtU.8/8VpzB1:14374:0:99999:7::: |
文件的每一行内容包含九个用冒号”:”分隔的配置字段。
4.3 useradd
useradd [选项] 用户名
错误:如果在root角色下创建的目录不是对应角色的家目录,所以会创建失败
正确:只创建zhangchuan家目录的上一级目录
1 | mkdir /test |
- -u:指定UID标记号
- -d:指定宿主目录,缺省为/home/用户名
- -e:指定账号失效时间
- -g:指定用户的基本组名(或UID)
- -G:指定用户的附加组名(或GID)
- -M:不为用户建立并初始化宿主目录
- -s:指定用户的登录Shell
1 | useradd -d /ftp/mike -g mike -G ftpuser -s /sbin/nologin mike |
4.3.1 创建普通用户
-d -e -G
每次用户登录时初始化配置文件
1 | ~/.bash_profile 用户每次登录时执行 |
4.4 passwd
- -d:清空用户的密码,使之无需密码即可登录
- -l:锁定用户账号
- -S:查看用户是否被锁定
- -u:解锁用户账号
1 | echo 123.com|passwd --stdin lisi # shell批量注册 |
4.5 usermod
1 | usermod [选项] ... 用户名 |
- -l:更改用户账户名 user mod -l user user1 //把user1改成user
- -L:锁定用户账户
- -U:解锁用户账户
- 其他与useradd相同
4.6 组账号文件
/etc/group 查看组里有哪些用户
1 | grep "adm" /etc/group |
4.7 groupadd
1 | group [-g GID] 组名 |
4.8 gpasswd
-a 添加组成员
1
gpasswd -a 用户 组
-d 删除组成员
-M 更新组成员,定义谁谁在里面,没定义就踢出
4.9 groupdel
删除组直接调用
1 | groupdel 组名 |
5.文件/目录权限
1 | - rw- r-- r-- 1 root root 34298 0402 00:23 install.log |
1 | chmod u+x /root/install.log |
5.1 用户表示
- u 属主
- g 属组
- o 其他人
- a 所有人
5.2 子目录权限
-R 将子目录权限统一设置为当前权限
5.3 chown命令
人为修改目录文件的属主和属组
- chown 属主 文件或目录
- chown :属组 文件或目录
- chown 属主:属组 文件或目录
-R
:递归修改指定目录下的所有文件、子目录的归属
5.4 lsattr和chattr
查看和修改底层属性
- (+-)i:全锁
- 目录:可修改已有子对象,不可建立删除子对象
- 文件:不可删除,改名,追加,修改
- (+-)a:修改锁
- 目录:可以建立修改子对象,不可以删除子对象
- 文件:可以追加内容,不可以修改删除。(多用于日志)
1 | chattr +a /var/log/message // 设置目录不给修改日志 |
5.5 SET位权限(让普通用户有root权限)
为可执行的文件设置权限,字符为s,有s位说明被攻击了
1 | chmod u+s /usr/bin/vim |
5.6 粘滞位0+t
没有设置粘滞位,李四可以删张三的文件
1 | # 加上粘滞位,李四不能删除张三的文件了 |