Linux03__管理

一世执手 提交于 2020-02-09 18:55:32

一、软件包管理

1.1 Linux分为源码包和二进制包(rpm包)

  源码包:开源、可选择安装功能、需编译安装 更稳定、卸载方便,但安装步骤多,编译时间长,报错不易解决;

/usr/local/软件名/ 源码包 默认安装路径(卸载的话直接将/usr/local/<包名>删除即可)
源码包安装:将包解压 ./configure [--prefix=/usr/local/<>]

定义需要的功能选项;

检测系统环境是否符合要求;

将前两项结果写入makefile文件;

make 编译(make clear清空编译)
make install 编译安装

     rpm包:安装快、简单,但看不到源码、依赖性更大。

rpm默认安装路径
/etc/ 配置文件 /usr/bin/ 可执行的命令
/usr/share/doc 软件使用手册 /usr/share/man/ 帮助文件

 

1.2 rpm命令管理

  rpm安装最大问题:依赖性

  (1)依赖分为树形依赖,环形依赖(同时安装所有包),模块依赖

#模块依赖

mount /dev/sr0 /mnt/cdrom/  #挂载系统镜像
cd /mnt/cdrom/Packages
#选择安装mysql为例
rpm -ivh mysql-connector-odbc*
#提示缺少依赖libobdcinst.so.2,so.2格式为安装库,只需找到对应的安装包即可安装,可通过http://www.rpmfind.net/这个网站查询对应的安装包

  (2) -i 安装, -v 显示详细信息, -h显示进度, -U升级, --nodeps 不检测依赖性, -e 卸载

      -q 查询,  -a 所有, -i 查询软件信息, -p 查询未安装包的信息

rpm -ivh make-3.82-23.el7.x86_64.rpm
rpm -Uvh make-3.85-20.el7.x86_64.rpm
rpm -e make
rpm -qa | grep make
rpm -qi make
rpm -qip zip-3.0-11.el7.x86_64.rpm
rpm -qf <系统文件>   #查询系统文件属于哪个安装包
rpm -qRp <包名>  #查询未安装包依赖

1.3 yum在线管理

  (1)IP地址配置和yum源网络配置

# 修改网络配置文件
vi /etc/sysconfig/network-scripts/ifcfg-ens33
service network restart
''''''
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=50ac09de-bd8f-42f4-99a0-bf6d5d244b9d
DEVICE=ens33
ONBOOT=yes
HWADDR=00:0C:  :  :
''''''
#配置网络YUM源
vi /etc/yum.repos.d/CentOS-Base.repo
'''''''
[base]  容器名称
mirrorlist  镜像站点
baseurl  yum源服务器地址
enabled  此容器是否生效
gpgcheck  RPM的数字证书是否生效
gpgkey  数字证书的公钥文件保存位置
'''''''

  (2)yum命令

yum list 
yum search <包名>
yum -y install <包名>
rpm -q gcc  #查询安装结果
yum -y update <包名>
yum -y remove <包名>  #尽量不用yum卸载,会将依赖一起卸载,可能引入其他包的依赖问题

yum grouplist
yum groupinstall <软件组名>

  (3)光盘yum源搭建

# 1 挂载光盘
mount /dev/sr0 /mnt/cdrom/
# 2 修改配置文件,本地YUM源配置文件为CentOS-Media.repo,让这个文件生效,其他.repo文件失效(可将其他全备份改名)。
cd /etc/yum.repos.d/
vim CentOS-Media.repo
#改enabled=1,baseurl=file:///mnt/cdrom/

二、用户管理

2.1 用户信息文件 /etc/passwd

man 5 passwd  #用man打开配置文件

vi /etc/passwd  # 每一行代表一个用户
#  root:x:0:0:root:/root:/bin/bash
#  用户名:密码标识:UID:GID:用户说明:家目录:登录之后的shell
UID: 0---超级用户,1-499---系统用户,500-65535---普通用户

2.2 影子文件 /etc/shadow

vi /etc/shadow  
# zf:$6$P8QkrNzO$0dbklAZRWTqNgmneADWWlKoT70gRuZu.hu3A2jwExuxkOV.RZ4nGCAVkoyDHYrJk75RStR0ffZS0Y3UlzKXBp0:18299:0:99999:7:::

#  用户名:加密密码:修改时间戳:密码修改时间间隔:有效期:警告天数

2.3  组信息文件 /etc/group

  组密码文件 /etc/gshadow

vim /etc/gshadow
''''''
root:::
zf:!::
组名:组密码:组管理员用户名:组中附加用户
''''''

vim /etc/group
''''''
root:x:0:
zf:x:1000:
组名:组密码标志:GID:组中附加用户
''''''

2.4 用户家目录

  普通用户:/home/用户名/,所有者和所属组都是此用户,权限是700;

  超级用户:/root/,所有者和所属组都是root,权限是550

# 将普通用户改为超级用户
vi /etc/passwd
''''''
将UID(第3列)改为0 zf:x:0:1000::/home/zoufan:/bin/bash ''''''

2.5 用户管理命令

#1 用户添加 useradd 
useradd test
# 选项 -u UID,-c 用户说明,-G组名
useradd -u 666 -G root,zf -c "test user" -d /zzff zzff
#2 修改密码 passwd
passwd test
#选项 -S查询用户密码的状态 -l暂时锁定用户 -u解锁用户
#3 修改用户信息 usermod / chage
usermod -c "test user" -G root zzff
chage -l zzff  # 修改用户密码状态
#4 删除用户 userdel
userdel -r zzff # -r删除用户的同时删除家目录
#5 用户切换 su
su - root  # -连带环境变量一起切换   
su - root -c "useradd testuser" # -c仅执行一次命令,不切换用户身份

2.6 用户组管理命令

# 1添加用户组
groupadd testg
# 2修改用户组
groupmod -n tg testg 
# 3删除
groupdel tg

三、权限管理

3.1 ACL权限(Access Control List)

  (1)定义:一个针对文件/目录的访问控制列表

  在普通权限中,用户对文件只有三种身份,就是属主、属组和其他人;每种用户拥有读、写、执行3种权限;ACL用于设定用户针对文件的权限。

  

 

   应用场景:如图,/project为班级文件夹,属主为老师Teacher,属组为班级名Python,班级同学有Stu1、Stu2。project的权限为770,即老师和两位同学对project的权限为rwx,其他人为---。现有一位旁听人st,需设定他对project的权限为r-x,则此时需要设定ACL权限

#2 查看分区ACL权限是否开启
df -h  #找根分区对应的盘符,假设是/dev/sda3
dumpe2fs -h /dev/sda3  #dumpe2fs查询指定分区文件系统信息

#3 查看ACL命令
getfacle 
#4 设置ACL权限命令 setfacl
# 选项:-m设定ACL权限, -x删除指定的ACL权限, -b删除所有ACL权限,
     -d设定默认ACL权限, -k删除默认ACL权限, -R递归设定ACL权限

 

3.2 文件特殊权限

3.3 文件系统属性chattr权限

3.4 系统命令sudo权限

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!