linux安装rpm时候报错:error: unpacking of archive failed: cpio: Bad magic?
warning:epel-release-6-5.noarch.rpm:HeaderV3RSA/SHA256signature:NOKEY,keyID0608b895key部队,要导入当前版本的key rpm–import/etc/pki/rpm-gpg/RPM*error:Faileddependencies: rpmlib(FileDigests)<=4.6.0-1isneededbyepel-release-6-5.noarch rpmlib(PayloadIsXz)<=5.2-1isneededbyepel-release-6-5.noarch rpmlib版本不对,加nodeps忽略依赖性,可能有问题。
如何给linux安装新内核?
一、获取内核源码
二、解压内核源码
首先以root帐号登录,然后进入/usr/src子目录。如果用户在安装Linux时,安装了内核的源代码,则会发现一个linux-x.y.z的子目录。该目录下存放着内核x.y.z的源代码。此外,还会发现一个指向该目录的链接linux。删除该连接,然后将新内核的源文件拷贝到/usr/src目录中,并解压:
#tarzxvfLinux-2.3.14.tar.gz
文件释放成功后,在/usr/src目录下会生成一个linux子目录。其中包含了内核2.3.14的全部源代码。将/usr/include/asm、/usr/inlude/linux、/usr/include/scsi链接到/usr/src/linux/include目录下的对应目录中。
#cd/usr/include
#rm-Rfasmlinux
#ln-s/usr/src/linux/include/asm-i386asm
#ln-s/usr/src/linux/include/linuxlinux
#ln-s/usr/src/linux/include/scsiscsi
删除源代码目录中残留的.o文件和其它从属文件。
#cd/usr/src/linux
#makemrproper
三.增量补丁
有时不需要完全重新安装,只需打增量补丁,类似升级,在内核源码树根目录运行:
patch-p1<../patch-x.y.z
四.内核源码树目录:
arch:包含和硬件体系结构相关的代码,每种平台占一个相应的目录。和32位PC相关的代码存放在i386目录下,其中比较重要的包括kernel(内核核心部分)、mm(内存管理)、math-emu(浮点单元仿真)、lib(硬件相关工具函数)、boot(引导程序)、pci(PCI总线)和power(CPU相关状态)。
block:部分块设备驱动程序。
crypto:常用加密和散列算法(如AES、SHA等),还有一些压缩和CRC校验算法。
Documentation:关于内核各部分的通用解释和注释。
drivers:设备驱动程序,每个不同的驱动占用一个子目录。
fs:各种支持的文件系统,如ext、fat、ntfs等。
include:头文件。其中,和系统相关的头文件被放置在linux子目录下。
init:内核初始化代码(注意不是系统引导代码)。
ipc:进程间通信的代码。
kernel:内核的最核心部分,包括进程调度、定时器等,和平台相关的一部分代码放在arch/*/kernel目录下。
lib:库文件代码。
mm:内存管理代码,和平台相关的一部分代码放在arch/*/mm目录下。
net:网络相关代码,实现了各种常见的网络协议。
scripts:用于配置内核文件的脚本文件。
security:主要是一个SELinux的模块。
sound:常用音频设备的驱动程序等。
usr:实现了一个cpio。
在i386体系下,系统引导将从arch/i386/kernel/head.s开始执行,并进而转移到init/main.c中的main()函数初始化内核。
五.配置内核
#cd/usr/src/linux
内核配置方法有三种:
(1)命令行:makeconfig
(2)菜单模式的配置界面:makemenuconfig
(3)Xwindow:makexconfig
Linux的内核配置程序提供了一系列配置选项。对于每一个配置选项,用户可以”y”、”m”或”n”。其中”y”表示将相应特性的支持或设备驱动程序编译进内核;”m”表示将相应特性的支持或设备驱动程序编译成可加载模块,在需要时,可由系统或用户自行加入到内核中去;”n”表示内核不提供相应特性或驱动程序的支持。由于内核的配置选项非常多,本文只介绍一些比较重要的选项。
1、Codematurityleveloptions(代码成熟度选项)
Promptfordevelopmentand/orincompletecode/drivers(CONFIG_EXPERIMENTAL)如果用户想要使用还处于测试阶段的代码或驱动,可以选择“y”。如果想编译出一个稳定的内核,则要选择“n”。
2、Processortypeandfeatures(处理器类型和特色)
(1)、Processorfamily(386,486/Cx486,586/K5/5×86/6×86,Pentium/K6/TSC,PPro/6x86MX)选择处理器类型,缺省为Ppro/6x86MX。
(2)、MaximumPhysicalMemory(1GB,2GB)内核支持的最大内存数,缺省为1G。
(3)、Mathemulation(CONFIG_MATH_EMULATION)协处理器仿真,缺省为不仿真。
(4)、MTRR(MemoryTypeRangeRegister)support(CONFIG_MTRR)
选择该选项,系统将生成/proc/mtrr文件对MTRR进行管理,供Xserver使用。
(5)、Symmetricmulti-processingsupport(CONFIG_SMP)选择“y”,内核将支持对称多处理器。
3、Loadablemodulesupport(可加载模块支持)
(1)、Enableloadablemodulesupport(CONFIG_MODULES)选择“y”,内核将支持加载模块。
(2)、Kernelmoduleloader(CONFIG_KMOD)选择“y”,内核将自动加载那些可加载模块,否则需要用户手工加载。
4、Generalsetup(一般设置)
(1)、Networkingsupport(CONFIG_NET)该选项设置是否在内核中提供网络支持。
(2)、PCIsupport(CONFIG_PCI)该选项设置是否在内核中提供PCI支持。
(3)、PCIaccessmode(BIOS,Direct,Any)该选项设置Linux探测PCI设备的方式。选择“BIOS”,Linux将使用BIOS;选择“Direct”,Linux将不通过BIOS;选择“Any”,Linux将直接探测PCI设备,如果失败,再使用BIOS。
(4)Parallelportsupport(CONFIG_PARPORT)选择“y”,内核将支持平行口。
5、PlugandPlayconfiguration(即插即用设备支持)
(1)、PlugandPlaysupport(CONFIG_PNP)选择“y”,内核将自动配置即插即用设备。
(2)、ISAPlugandPlaysupport(CONFIG_ISAPNP)选择“y”,内核将自动配置基于ISA总线的即插即用设备。
6、Blockdevices(块设备)
(1)、NormalPCfloppydisksupport(CONFIG_BLK_DEV_FD)选择“y”,内核将提供对软盘的支持。
(2)、EnhancedIDE/MFM/RLLdisk/cdrom/tape/floppysupport(CONFIG_BLK_DEV_IDE)选择“y”,内核将提供对增强IDE硬盘、CDROM和磁带机的支持。
7、Networkingoptions(网络选项)
(1)、Packetsocket(CONFIG_PACKET)选择“y”,一些应用程序将使用Packet协议直接同网络设备通讯,而不通过内核中的其它中介协议。
(2)、Networkfirewalls(CONFIG_FIREWALL)选择“y”,内核将支持防火墙。
(3)、TCP/IPnetworking(CONFIG_INET)选择“y”,内核将支持TCP/IP协议。
(4)TheIPXprotocol(CONFIG_IPX)选择“y”,内核将支持IPX协议。
(5)、AppletalkDDP(CONFIG_ATALK)选择“y”,内核将支持AppletalkDDP协议。
8、SCSIsupport(SCSI支持)
如果用户要使用SCSI设备,可配置相应选项。
9、Networkdevicesupport(网络设备支持)
Networkdevicesupport(CONFIG_NETDEVICES)选择“y”,内核将提供对网络驱动程序的支持。
10、Ethernet(10or100Mbit)(10M或100M以太网)
在该项设置中,系统提供了许多网卡驱动程序,用户只要选择自己的网卡驱动就可以了。此外,用户还可以根据需要,在内核中加入对FDDI、PPP、SLIP和无线LAN(WirelessLAN)的支持。
11、Characterdevices(字符设备)
(1)、Virtualterminal(CONFIG_VT)选择“y”,内核将支持虚拟终端。
(2)、Supportforconsoleonvirtualterminal(CONFIG_VT_CONSOLE)
选择“y”,内核可将一个虚拟终端用作系统控制台。
(3)、Standard/generic(dumb)serialsupport(CONFIG_SERIAL)
选择“y”,内核将支持串行口。
(4)、Supportforconsoleonserialport(CONFIG_SERIAL_CONSOLE)
选择“y”,内核可将一个串行口用作系统控制台。
12、Mice(鼠标)
PS/2mouse(aka”auxiliarydevice”)support(CONFIG_PSMOUSE)如果用户使用的是PS/2鼠标,则该选项应该选择“y”。
13、Filesystems(文件系统)
(1)、Quotasupport(CONFIG_QUOTA)选择“y”,内核将支持磁盘限额。
(2)、Kernelautomountersupport(CONFIG_AUTOFS_FS)选择“y”,内核将提供对automounter的支持,使系统在启动时自动mount远程文件系统。
(3)、DOSFATfssupport(CONFIG_FAT_FS)选择“y”,内核将支持DOSFAT文件系统。
(4)、ISO9660CDROMfilesystemsupport(CONFIG_ISO9660_FS)
选择“y”,内核将支持ISO9660CDROM文件系统。
(5)、NTFSfilesystemsupport(readonly)(CONFIG_NTFS_FS)
选择“y”,用户就可以以只读方式访问NTFS文件系统。
(6)、/procfilesystemsupport(CONFIG_PROC_FS)/proc是存放Linux系统运行状态的虚拟文件系统,该项必须选择“y”。
(7)、Secondextendedfssupport(CONFIG_EXT2_FS)EXT2是Linux的标准文件系统,该项也必须选择“y”。
14、NetworkFileSystems(网络文件系统)
(1)、NFSfilesystemsupport(CONFIG_NFS_FS)选择“y”,内核将支持NFS文件系统。
(2)、SMBfilesystemsupport(tomountWfWsharesetc.)(CONFIG_SMB_FS)
选择“y”,内核将支持SMB文件系统。
(3)、NCPfilesystemsupport(tomountNetWarevolumes)(CONFIG_NCP_FS)
选择“y”,内核将支持NCP文件系统。
15、PartitionTypes(分区类型)
该选项支持一些不太常用的分区类型,用户如果需要,在相应的选项上选择“y”即可。
16、Consoledrivers(控制台驱动)
VGAtextconsole(CONFIG_VGA_CONSOLE)选择“y”,用户就可以在标准的VGA显示方式下使用Linux了。
17、Sound(声音)
Soundcardsupport(CONFIG_SOUND)选择“y”,内核就可提供对声卡的支持。
18、Kernelhacking(内核监视)
MagicSysRqkey(CONFIG_MAGIC_SYSRQ)选择“y”,用户就可以对系统进行部分控制。一般情况下选择“n”。
六、编译内核
(一)、建立编译时所需的从属文件
#cd/usr/src/linux
#makedep
(二)、清除内核编译的目标文件
#makeclean
(三)、编译内核
#makezImage
内核编译成功后,会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件zImage。如果编译的内核很大的话,系统会提示你使用makebzImage命令来编译。这时,编译程序就会生成一个名叫bzImage的内核映像文件。
(四)、编译可加载模块
如果用户在配置内核时设置了可加载模块,则需要对这些模块进行编译,以便将来使用insmod命令进行加载。
#makemodules
#makemodelus_install
编译成功后,系统会在/lib/modules目录下生成一个2.3.14子目录,里面存放着新内核的所有可加载模块。
七、启动新内核
(一)、将新内核和System.map文件拷贝到/boot目录下
#cp/usr/src/linux/arch/i386/boot/bzImage/boot/vmlinuz-2.3.14
#cp/usr/src/linux/System.map/boot/System.map-2.3.14
#cd/boot
#rm-fSystem.map
#ln-sSystem.map-2.3.14System.map
(二)、配置/etc/lilo.conf文件。在该文件中加入下面几行:
default=linux-2.3.14
image=/boot/vmlinuz-2.3.14
label=linux-2.3.14
root=/dev/hda1
read-only
(三)、使新配置生效
#/sbin/lilo
(四)、重新启动系统
#/sbin/reboot
新内核如果不能正常启动,用户可以在LILO:提示符下启动旧内核。然后查出故障原因,重新编译新内核即可。
如何在linux上用命令实现用户和组的管理?
Linux上用命令实现本地用户和组的管理
本地用户和组:管理文件和进程等等
本地用户和组:
1)root: 超级管理员 系统创建的第一个账户
特点:
id为:0
家目录:/root
具有系统的完全控制权: 小心使用。
# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
#
2)普通用户: 不具有管理员权限
特点:
id范围:
1000 <= id <=60000
家目录: /home/用户名
# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
#
3)服务用户: 为服务提供权限
特点:
id范围:
0 < id < 1000
家目录:应用程序服务目录
# id apache
uid=48(apache) gid=48(apache) groups=48(apache)
#
如果是yum,rpm安装的软件: 由rpm包中的脚本创建服务账户
Include conf.modules.d/*.conf
#
# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User apache
Group apache
# ‘Main’ server configuration
#
本地组:
1) 主组:一个用户一定要属于某个主组中。 当些用户在创建文件时,给文件的归属组
2)从属组: 用户容器 ,组织和管理用户 权限管控
作用:
文件:
进程:
$ ps -ux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
student 32178 0.0 0.4 93052 9360 ? Ss 15:00 0:00 /usr/lib/system
student 32182 0.0 0.3 253776 7072 ? S 15:00 0:00 (sd-pam)
student 32188 0.0 0.2 159412 4980 ? S 15:00 0:00 sshd: student@p
student 32189 0.0 0.2 233912 4864 pts/0 Ss 15:00 0:00 -bash
student 32293 0.3 0.2 159408 5192 ? D 15:43 0:00 sshd: student@p
student 32294 0.3 0.2 233912 4924 pts/1 Ss 15:43 0:00 -bash
student 32319 0.5 0.2 233940 4804 pts/1 S 15:43 0:00 /bin/bash
student 32341 0.0 0.2 269312 3876 pts/1 R+ 15:43 0:00 ps -ux
$
账户文件:
1) /etc/passwd:保存用户信息
# cat /etc/passwd |grep student
student: x :1000:1000: Student User:/home/student:/bin/bash
用户名 密码 uid 主组ID 描述 家目录 登录shell
#
# cat /etc/passwd |grep -w root:x
root:x:0:0:root:/root:/bin/bash
#
# cat /etc/passwd |grep apache
apache:x:48:48:Apache:/usr/share/httpd: /sbin/nologin
服务账号 无法登录系统
#
2. /etc/shadow : 保存用户密码的 HASH ,密码的有效性信息,密码修改时间,账户有效期。
#
# ls -l /etc/shadow
———-. 1 root root 1014 Mar 29 11:39 /etc/shadow
#
#
# cat /etc/shadow |grep student
student:$6$8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80:18038:0:99999:7:::
#
密码的HASH: sha512
8oIjLCsc$/n1iQXYh1E6.uOEuJKgioqAtmqm2TQmkJGF2RwyteIr1tIfrPdiRYgWe6Sjen5/eMij2uHM/a1tue/QRlo3X80
18038:天数 密码最后一次修改的时间 从1970-01-01 + 18038 天之后 那一天
0: 密码最少使用天数 0 没有限制 用户随时可以改密码
99999 :天数, 密码最大修改时间 永久 200多年
7 : warning 警告时间, 当密码快到最后修改时间前7天, 通知用户修改。
::天数 失效时间 inactive 用户密码过了最后修改时间,未改变密码 ,再过多少天,账户将被 锁定
:: 账户有效期
创建用户和组:
创建时,没有密码:
# useradd zhangsan
# useradd lisi
# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)
# id lisi
uid=1002(lisi) gid=1002(lisi) groups=1002(lisi)
#
无法登录:与PAM 有关
$
$ su – zhangsan
Password:
Password:
su: Authentication failure
$
设置密码:
#
# cat /etc/passwd |grep zhangsan
zhangsan:x:1001:1001::/home/zhangsan:/bin/bash
# cat /etc/shadow |grep zhangsan
zhangsan:!!:18350:0:99999:7::: # !! 未设置密码
#
# passwd zhangsan
Changing password for user zhangsan.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
#
#
# cat /etc/shadow |grep zhangsan
zhangsan:$6$3wxuXomVbQ58wQcK$oQW6injgldxa2N/Pt4tCPDVRqWRVGw.UNZdxE4R0nhEt8K/3UDKzxap6ReIReEvDpG.GdwjpMiiDh7.f6DJNQ0:18350:0:99999:7:::
#
chage 可以查看用户 密码属性
# chage -l zhangsan
Last password change : Mar 29, 2020
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
#
创建组:从属组
#
# groupadd it
#
#
# groupadd sales
#
#
#
# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mem:x:8:
kmem:x:9:
wheel:x:10:student
cdrom:x:11:
mail:x:12:postfix
man:x:15:
dialout:x:18:
floppy:x:19:
games:x:20:
tape:x:33:
video:x:39:
ftp:x:50:
lock:x:54:
audio:x:63:
users:x:100:
nobody:x:65534:
dbus:x:81:
utmp:x:22:
utempter:x:35:
input:x:999:
kvm:x:36:
render:x:998:
systemd-journal:x:190:
systemd-coredump:x:997:
systemd-resolve:x:193:
tss:x:59:
polkitd:x:996:
rpc:x:32:
unbound:x:995:
ssh_keys:x:994:
sssd:x:993:
setroubleshoot:x:992:
rpcuser:x:29:
insights:x:991:
cockpit-ws:x:990:
sshd:x:74:
chrony:x:989:
tcpdump:x:72:
student:x:1000:
printadmin:x:988:
libstoragemgmt:x:987:
slocate:x:21:
postdrop:x:90:
postfix:x:89:
apache:x:48:
zhangsan:x:1001:
lisi:x:1002:
it:x:1003: 组成员列表
sales:x:1004:
#
# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
#
将用户添加进组: zhangsan ,加入it组,lisi,sales组
# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
# usermod -aG it zhangsan
#
#
# usermod -aG sales lisi
#
#
# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan),1003(it)
# id lisi
uid=1002(lisi) gid=1002(lisi) groups=1002(lisi),1004(sales)
#
删除用户:
# useradd andy
默认删除,保留用户的文件:
#
# userdel andy
#
#
# useradd andy #重建andy会不一样, uid会不同
useradd: warning: the home directory already exists.
Not copying any file from skel directory into it.
Creating mailbox file: File exists
#
# useradd user1
# useradd user2
# id andy
uid=1003(andy) gid=1005(andy) groups=1005(andy)
# userdel -r any
userdel: user ‘any’ does not exist
#
# userdel -r andy #不保留用户的文件。家目,邮箱文件 ,skel文件都会
#
#
# id andy
id: ‘andy’: no such user
# useradd andy
# id andy
uid=1006(andy) gid=1008(andy) groups=1008(andy)
#
从组中移除用户:
#
# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan),1003(it) #zhangsan主组 ,it 从属组
#
命令:
# gpasswd -d zhangsan it
Removing user zhangsan from group it
#
#
# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan)
#
#
# usermod -aG it zhangsan
#
#
# id zhangsan
uid=1001(zhangsan) gid=1001(zhangsan) groups=1001(zhangsan),1003(it)
#
#
#
# groups zhangsan
zhangsan : zhangsan it
#
直接修改文件:
# vim /etc/group
# cat /etc/group |grep it:
it:x:1003:
#
删除组:
# groupadd test
#
#
# groupdel test
创建自定义用户和组:
实验:用户名mary, 指定用户id 2000,家目录/maryhome ,不用登录系统 描述 this is mary user
#
# useradd -u 2000 -d /maryhome -s /sbin/nologin -c “this is mary” mary
#
# id mary
uid=2000(mary) gid=2000(mary) groups=2000(mary)
# cat /etc/passwd |grep mary
mary:x:2000:2000:this is mary:/maryhome:/sbin/nologin
#
# su – mary
Last login: Sun Mar 29 16:48:49 CST 2020 on pts/0
This account is currently not available.
#
创建自定义组:指定组id
# groupadd -g 3000 group1
# cat /etc/group |grep group1
group1:x:3000:
#
sha后缀是什么文件?
.sha扩展名也代表UNIX操作系统中使用的Shell Archive文件格式。SHA是一种纯文本格式。SHA文件是自提取的,SHA格式用于在一个shell脚本中对多个文件进行编码。运行这个脚本将重新创建编码后的文件。
以.sha为扩展名的文件可以使用标准的Unix实用程序从命令行执行,如Unix Bourne shell sh。SHA格式也可以在Windows中使用特殊的实用程序,以及在GNU/Linux中执行。
linux密码默认加密方式?
Linux默认用户密码加密方式是sha512。