1.linux,码解NFS服务,是什么啊
2.linux启动时挂载rootfs
3.å¦ä½ä»NFSå¯å¨Linuxååç
4.Linux Kernel 是什么?
linux,NFS服务,是什么啊
NFS(Network File System)即网络文件系统,是码解FreeBSD支持的文件系统中的一种,它允许网络中的码解计算机之间共享资源。在NFS的码解应用中,本地NFS的码解客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。码解天龙八部源码分析NFS最显而易见的码解优点:
1、节省本地存储空间,码解将常用的码解数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的码解使用。
2、码解用户不需要在网络中的码解每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。码解
3、码解一些存储设备如软驱、码解CDROM和Zip(一种高储存密度的hadsky的app源码磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
扩展资料:
NFS 有很多实际应用。下面是比较常见的四点:
1、多个机器共享一台CDROM或者其他设备。这对于在多台机器中安装软件来说更加便宜跟方便。
2、在大型网络中,配置一台中心 NFS 服务器用来放置所有用户的home目录可能会带来便利。这些目录能被输出到网络以便用户不管在哪台工作站上登录,总能得到相同的home目录。
3、不同客户端可在NFS上观看影视文件,节省本地空间。
4、在客户端完成的linux源码安装技巧工作数据,可以备份保存到NFS服务器上用户自己的路径下。
NFS是运行在应用层的协议。随着NFS多年的发展和改进,NFS既可以用于局域网也可以用于广域网,且与操作系统和硬件无关,可以在不同的计算机或系统上运行。
百度百科-NFS
百度百科-linux
linux启动时挂载rootfs
1。linux启动时,经过一系列初始化之后,需要mount 根文件系统,为最后运行init进程等做准备,mount 根文件系统有这么几种方式:
1)文件系统已经存在于硬盘(或者类似的设备)的某个分区上了,kernel根据启动的命令行参数(root=/dev/xxx),直接进行mount。 这里有一个问题,在root文件系统本身还不存在的诱导支付源码下载情况下,kernel如 何根据/dev/xxx来找到对应的设备呢?注意:根文件系统和其他文件系统的mount方式是不一样的,kernel通过直接解析设备的名称来获得设备的主、从设备号,然后就可以访问对应的设备驱动 了。所以在init/main.c中有很长一串的root_dev_names(如hda,hdab,sda,sdb,nfs,ram,mtdblock……),通过这个表就可以根据设备名称得到设备号。注意,bootloader或内核中设定的启动参数(root=/dev/xxx)只是一个代号,实际的根文件系统中不一定存在这个设备文件!
2)从软驱等比较慢的设备上装载根文件系统,如果kernel支持ramdisk,在装载root文件系统时,内核判断到需要从软盘(fdx)mount(root=/dev/fd0),就会自动把文件系统映象复制到ramdisk,一般对应设备ram0,房中介管理源码然后在ram0上mount 根文件系统。 从源码看,如果kernel编译时没有支持ramdisk,而启动参数又是root=/dev/fd0, 系统将直接在软盘上mount,除了速度比较慢,理论上是可行的(没试过,不知道是不是这样?)
3)启动时用到initrd来mount根文件系统。注意理解ramdisk和initrd这两个概念,其实ramdisk只是在ram上实现的块设备,类似与硬盘操作,但有更快的读写速度,它可以在系统运行的任何时候使用,而不仅仅是用于启动;initrd(boot loader initialized RAM disk)可以说是启动过程中用到的一种机制,具体的实现过程也使用ramdisk技术。就是在装载linux之前,bootloader可以把一个比较小的根文件系统的映象装载在内存的某个指定位置,姑且把这段内存称为initrd(这里是initrd所占的内存,不是ramdisk,注意区别),然后bootloader通过传递参数的方式告诉内核initrd的起始地址和大小(也可以把这些参数编译在内核中),在启动阶段就可以暂时的用initrd来mount根文件系统。initrd的最初的目的是为了把kernel的启动分成两个阶段:在kernel中保留最少最基本的启动代码,然后把对各种各样硬件设备的支持以模块的方式放在initrd中,这样就在启动过程中可以从initrd所mount的根文件系统中装载需要的模块。这样的一个好处就是在保持kernel不变的情况下,通过修改initrd中的内容就可以灵活的支持不同的硬件。在启动完成的最后阶段,根文件系统可以重新mount到其他设备上,但是也可以不再 重新mount(很多嵌入式系统就是这样)。 initrd的具体实现过程是这样的:bootloader把根文件系统映象装载到内存指定位置,把相关参数传递给内核,内核启动时把initrd中的内容复制到ramdisk中(ram0),把initrd占用的内存释放掉,在ram0上mount根文件系统。从这个过程可以看出,内核需要对同时对ramdisk和initrd的支持(这种需要都编入内核,不能作为模块)。
2。嵌入式系统根文件系统的一种实现方法:对于kernel和根文件系统都存储在flash中的系统,一般可以利用linux启动的initrd的机制。具体的过程前面已经比较清楚了,还有一点就是在启动参数中传递root=/dev/ram0,这样使得用initrd进行mount的根文件系统不再切换,因为这个时候实际的设备就是ram0。还有就是initrd的起始地址参数为虚拟地址,需要和bootloader中用的物理地址对应。
å¦ä½ä»NFSå¯å¨Linuxååç
é¦å æ们è¦æç¡®æ们ææçç¨åºï¼æ¯æ¾å¨æç®å½çº§ç»æçæ件系ç»éï¼ä¸ºäºå¯»æ¾å°æéè¦æä½ç³»ç»æ¥è¿è¡çç¨åºï¼æä»¬å¿ é¡»åè¯å®ï¼æ件å¨åªä¸ªæ件系ç»ãä¸ è¬æ¥è¯´ï¼PCæºçæ件就åå¨å¨ç¡¬çä¸ï¼å¯¹äºLive CDèè¨ï¼æ件系ç»å°±èå¨å çä¸é¢ãä¹å°±æ¯è¯´ï¼åªè¦æä½ç³»ç»è½æ¾å°å¹¶æ£ç¡®å°è®¤è¯äºæ件系ç»ï¼å°±å¯ä»¥æ§è¡éé¢çç¨åºäºï¼
设置ç®æ æºå¨ä¸çNFSå¯å¨
çå®äºç¬¬ä¸èï¼æç½å¯å¨çè¿ç¨äºåï¼ ç®åå°è¯´ï¼å°±æ¯å æ ¸å è½½ ï¼å æ ¸æ¾å°ä¸ä¸ªæä»¶ç³»ç» ï¼å æ ¸æ§è¡æ件系ç»éçä¸ä¸ªç¨åº ãæ 论æ¯ä»NFSå¯å¨ï¼è¿æ¯ä»ç¡¬çå¯å¨ï¼é½æ¯ä¸è¿°è¿ç¨ãåªæ¯NFSå¯å¨ï¼å ¶æ件系ç»æ¯æ¾å¨ç½ç»ä¸çãåªè¦æ 们åè¯å æ ¸ï¼å ·ä½æ¾å¨ä»ä¹å°æ¹ï¼å¨ç½ç»çå¦ä¸ç«¯æä»¬è®¾ç½®å¥½å ±äº«ï¼èªç¶å¯ä»¥ä»NFSå¯å¨ã
让å æ ¸è¯å«NFS并å¯ä»NFSå¯å¨
ç¼è¯å æ ¸
å¨å æ ¸æºä»£ç ç®å½æ ä¸ï¼é ç½®å æ ¸ï¼
$make menuconfig
ä¾æ¬¡è¿å ¥ File Systems -> Network File Systemä¸éæ© NFS client support 以å Root file system on NFSãå¦ææ¾ä¸å°Root file system on NFS é项ï¼è¦æå¼ç¬¬ä¸çº§èåä¸çNetworking support -> Networking options -> TCP/IP networking -> IP: kernel level autoconfigurationãå¦æNFSè¦ä½¿ç¨DHCPï¼è¿å¾éä¸ IP: DHCP supportã
ä¿åé 置并éæ°ç¼è¯å³å¯ã
é ç½®å æ ¸åæ°
è¿å ¥ARMå¼åæ¿ç设置 linux_cmd_lineçå°æ¹ï¼miniå为å¼æºæ sï¼è¾å ¥linux_cmd_lineï¼å¹¶å¸¦çå¼å·è¾å ¥åæ°ï¼ï¼æè è¿å ¥PCçGRUBï¼è®¾ç½®ç±»ä¼¼åæ°
root=/dev/nfs rw nfsroot=..1.1:/linux ip=..1.5:::...0:linux::off
该é 置为éæIP设置ãååæ°æä¹å¦ä¸ï¼
root=/dev/nfs ï¼æå®æ ¹æ件系ç»ä¸º /dev/nfsï¼å³NFS ãè¿ä¸/devè¿ä¸ªç®å½å¹¶æ²¡æä»ä¹å ³ç³»ï¼å¨æ¤ä» 为ä¸ä¸ªååã
rw ï¼æ ¹æ件系ç»æ载为å¯è¯»åãè¿å¯ä»¥æ ro å³åªè¯»çé项ã
nfsroot=..1.1:/linux ï¼æææè½½åªä¸ä¸ªNFSä¸çåªä¸ä¸ªç®å½ãè¿éæçæ¯æè½½IP 为..1.1ççµèä¸å¯¼åºç/linuxç®å½ã
ip=..1.5:::...0:linux::off ï¼è®¾ç½®æ¬æºçIPãæ¤ä¸¾æ¯ä¸ºäº è¿æ¥åæ设置çIPãè¿éæ¯ä¸ä¸ªéæçé ç½®ï¼é ç½®çæ ¼å¼ä¸º ip=æ¬æºçIPå°å::ç½å ³å°å:ç½ç»æ©ç :æ¬æºç主æºå:ç½ç»æ¥å£å:off ãä¸è¬æ åµä¸ç½å ³ãç½ç»æ¥å£åé½ä¸éè¦è®¾ç½®ãå¦ææ¯DHCPè·åIPï¼é£å¾ç®åï¼ç´æ¥ ip=dhcp å³å¯ã
设置NFSæå¡å¨
Ubuntuä¸çé¾æ¥ï¼/User/xiaoxiaopig/article/_1.htm
NFSæå¡å¨å¯ä»¥æ¯ä»»ææä½ç³»ç»ï¼åªè¦è½æä¾NFSæå¡å³å¯ï¼WINDOWSå¯ä»¥ä½¿ç¨ WSU ââ Windows Services for Unixæ¥å®ç°ï¼å ·ä½è¯·åèæ¥ä¸æ¥æ¬ç«è¦å表çæç« ï¼ãå¨è¿é以Fedora为ä¾ï¼å¸æå«çåè¡ççç¨æ·è§¦ç±»æéã
对äºFedoraæ¥è¯´ï¼æå¾å½¢çé¢çå·¥å ·è¿è¡è®¾ç½®ï¼å¨ç®¡çï¼ãæå¡å¨è®¾ç½®ï¼ãNFSä¸æ·»å ä¸ä¸ªå ±äº«å³å¯ã
æ´éç¨çä½æ³ï¼å°±æ¯ä¿®æ¹ /etc/exportsæ件ï¼ä¹ååå¯å¨NFSæå¡å¨ã
/etc/exportsæä»¶æ ¼å¼å¦ä¸
导åºçæ件夹 导åºçç½æ®µ(对该导åºçç½æ®µçé项)
æè°å¯¼åºçç½æ®µå°±æ¯åªååªä¸ªç½æ®µå¯¼åºï¼ä¿è¯å®å ¨æ§ãä¸ä¸ªä¾å为ï¼
/linux ..1.0/(rw,sync,no_root_squash)
å°±æ¯å° /linux 导åºå°ç½æ®µä¸º..1.0ï¼åç½æ©ç 为...0 (å³)çç½ç»ãå ¶ä¸å¯ç¨çé项为ï¼ç¿»è¯èªmanææ¡£ï¼ï¼
secureåinsecure : secureé项ä¸ï¼ææè¿æ¥ç端å£åå°äºãé»è®¤æå¼ã
rwåro : Read/WriteåRead Only
asyncåsync asyncå°ä½¿ç¨å¼æ¥æ°æ®ååï¼æ°æ®å¹¶é马ä¸åå ¥æå¡å¨çãsyncåç¸åã使ç¨asyncéè¦æ³¨ææå¡å¨ä¸è½éæä¸æ£å¸¸å°å ³éï¼å¦åå¯è½å¯¼è´æ°æ®ä¸¢å¤±ã
no_wdelay ï¼ä¸ä½¿ç¨å»¶è¿åå ¥ãNFSæå¡å¨ä¼å°åå ¥åå ¥è¯·æ±ç¼å²èµ·æ¥ï¼å¯ä»¥æé«æ§è½ãå¦æasyncå·²ç»æå¼é£ä¹è¯¥é项æ æã
no_subtree_check ï¼ä¸è¿è¡åæ æ£æ¥ï¼ä½¿ç¨è¯¥é项æå¼èµ·å®å ¨é®é¢ï¼
root_squashåno_root_squashãall_squash ï¼root_squashé项使å¾å®¢æ·ç«¯ä»¥rootæéè®¿é® æ件系ç»æ¶ï¼è½¬æ¢ä¸ºæå¡å¨ç«¯çå¿åç¨æ·ãè¿é项æå¼ä¸å®è¦è®¾ç½®å¥½æå¡å¨çæéã
ä¹ååéæ°å¯å¨NFSæå¡ãFedoraä¸ä½¿ç¨ /etc/init.d/nfs restart
ä½¿ç¨ exportsæ¥ç导åºçæ件ã
Linux Kernel 是什么?
Linux Kernel是操作系统Linux的核心组件,负责管理和控制硬件资源,以及为应用程序提供接口。它是一个开放源码项目,允许开发者和用户进行修改和扩展。
最近,Linux Kernel的NFS(网络文件系统)实现被发现存在漏洞。这一漏洞允许远程攻击者绕过访问控制,从而获取非授权访问权限。攻击者通过在NFS文件系统上更改ACL(访问控制列表),实现了对资源的绕过访问控制,进而获取非授权访问。
具体来说,漏洞出现在NFS实现中,该实现没有在设置ACL之前验证远程用户的权限。这意味着,攻击者能够以未授权身份更改ACL,从而绕过访问控制机制,实现非授权访问。这一问题严重威胁了系统的安全性和稳定性。
为修复这一漏洞,Linux社区已经发布了解决方案。用户需要更新到最新版本的Linux内核,以确保其系统得到保护。同时,开发者和系统管理员应保持警觉,及时监控系统状态,以防止潜在的安全威胁。
总的来说,Linux Kernel是Linux操作系统的核心,其安全性对于整个系统的稳定性和安全至关重要。漏洞的发现和修复提醒我们,持续关注和更新系统是维护网络安全的重要步骤。用户应确保其系统始终运行在最新版本,以抵御各种安全风险。