導航:首頁 > 操作系統 > usermodelinux

usermodelinux

發布時間:2022-11-26 12:31:52

Ⅰ 如何在linux單用戶模式下修改fstab文件

Linux啟用單用戶模式進入系統,當修改/etc/fstab文件時提示文件只讀,無法修改;
具體修改有兩種方式:
方法一、進入Linux單用戶模式
a.在系統進入centos 數秒的時候按字母e,進入GRUB編輯狀態
b.選擇以單詞kernel起頭的這行,按下e鍵以編輯這個命令
c.在末尾輸入空格 single,回車
d.再按b鍵載入
e. root# mount -o remount,rw /
f. 然後vi/etc/fstab進入修改
方法二、用光碟進入Linux修復模式 (光碟啟動按F2 接著輸入linux rescue回車進入)
然後修改fstab
注意進入修復模式後fstab路徑為
vi /mnt/sysimage/etc/fstab

Ⅱ linux虛擬化技術有哪些

1、早期的虛擬化模型被稱為Type 1,或者叫本地虛擬化(native virtualization)。
2、後來出現了主機虛擬化(hosted virtualization)模式,被稱為Type 2,hypervisor運行在操作系統之上,在同一平台上允許兩個或更多的操作系統共存。
3、更加傳統的虛擬化解決方案是平台虛擬化,或者叫做硬體虛擬化,具有兩種主要的形式,完全虛擬化( full-virtualization)和半虛擬化(para-virtualization)。
4、平台虛擬化:如Citrix的Xen是一個流行的解決方案,可以同時執行Type1和Type2型hypervisor,Amazon的EC2就採用Xen來進行伺服器的虛擬化。另一個重要的hypervisor是Linux Kernel Virtual Machine(KVM),同樣都支持本地虛擬化和主機虛擬化模型。
5、操作系統虛擬化:操作系統虛擬化是另外一個重要的虛擬化技術,正如其名,是對操作系統本身進行虛擬化,而不是平台。在這種方式下,操作系統提供一組用戶空間(User-Space)彼此隔離,而應用被限制在每個用戶空間裡面,就好像一個獨立的主機。這種形式的虛擬化在虛擬主機環境中非常流行,讓多個獨立的用戶可以共享一個操作系統。
6、其他Linux虛擬化技術:
CoLinux,或者叫做協作Linux,是一種利用協作虛擬機的虛擬化方式。
用戶模式(User-Mode)Linux,即UML,和CoLinux有些類似,但是更加靈活。
Wine和Cygwin也是有趣的虛擬化解決方案。

Ⅲ linux中用戶怎麼加入附屬組

可以使用usermod命令。usermod可用來修改用戶帳號的各項設定。
需要使用的參數:
-G|--groups
##把用戶追加到某些附屬組中,僅與-a選項一起使用
用法示例:
將user1用戶加入到group1組當中
$
usermode
-aG
group1
user1

Ⅳ linux怎麼進入字元命令界面

linux進入字元命令界面方法如下:

Ⅳ 簡述linux啟動控制權的變更順序

.1: 啟動電源後,主機第一步先做的就是查詢BIOS(全稱:basic input/output system 基本輸入輸出系統)信息。了解整個系統的硬體狀態,如CPU,內存,顯卡,網卡等。嗯,這一步windows算和它是一家。不分彼此。

· 2: 接下來,就是主機讀取MBR(硬碟的第一個扇區)里的boot loader了。這個可是重點哦,據說troubleshooting里就會考這點,給個壞了的loader,叫你修正。windows不支持linux的分區格式。所以,用windows的boot。ini是查不到linux的系統的。一般我裝系統都是先裝windows再裝linux,然後用grub來做boot loader。兩個字:省心!因為linux不像windows那麼小氣。grub可是支持windows分區格式的哦。

· 3: 接上一步,主機讀取boot loader後,會讀取裡面的信息,知道誰跟誰是待在哪,假如主機想進入linux系統,讀取到linux核心是在/boot文件目錄中後,將此核心載入到內存中。開始了接下來的分析啟動之旅。

· 4: OK,第一個運行程序是誰?就是/sbin/init程序。不信,就用top程序看下,是不是PID為1的就是這個東東,它,可是萬物之祖啊,我簡稱它是女媧娘娘(不喜歡亞當夏娃)。

· 5: init首先查找啟動等級(run-level)。因為啟動等級不同,其運行腳本(也就是服務)會不同。默認的等級有以下幾項:

0 - halt (系統直接關機)

1 - single user mode (單人模式,用於系統維護時使用)

2 - Multi-user, without NFS (類似3模式,不過少了NFS服務)

3 - Full multi-user mode (完整模式,不過,是文本模式)

4 - unused (系統保留功能)

5 - X11 (與3模式類似,不過,是X終端顯示)

6 - reboot (重新開機)

(不要選擇0或4,6 否則,進步了系統的)

· 6: OK。系統知道自己的啟動等級後,接下來,不是去啟動服務,而是,先設置好主機運行環境。讀取的文件是/etc/rc。d/rc。sysinit文件。那究竟要設置哪些環境呢?

· 設置網路環境/etc/sysconfig/network,如主機名,網關,IP,DNS等。

· 掛載/proc。此文件是個特殊文件,大小為0,因為它是在內存當中。裡面東東最好別刪。

· 根據內核在開機時的結果/proc/sys/kernel/modprobe。開始進行周邊設備的偵測。

· 載入用戶自定義的模塊/etc/sysconfig/moles/*。moles

· 讀取/etc/sysctl。conf文件對內核進行設定。

· 設定時間,終端字體,硬碟LVM或RAID功能,以fsck進行磁碟檢測。

· 將開機狀況記錄到/var/log/dmesg中。(可以用命令dmesg查看結果)

· 7: OK,接下來,就是啟動系統服務了,不同的run-level會有不同的服務啟動。到/etc/rc。d目錄中,不同的level會有不同的目錄。如啟動3模式,會有個rc3。d目錄,裡面就保存著服務。其中,S(start)開頭的表明開機啟動,K(kill)開頭的表明開機不啟動。數字表示啟動順序。數字越小,啟動越早。

注意,他們都是連接到etc/rc。d/init。d/目錄中的相關文件。所以,想手工啟動某一服務,可以用"/etc/rc。d/init。d/某個服務 start"啟動哦。相反,我們也可以把某個服務ln(鏈接命令)到不同run-level的目錄中。記得打上S或者K+數字哦。

· 8: 讀取服務後,主機會讀取/etc/rc。d/rc。local文件。所以,如果需要什麼開機啟動的話,可以寫個腳本或命令到這裡面來。就不用像上面那麼麻煩。以後刪除也方便。

Ⅵ 在linux編程中若一個用戶程序希望將一組數據傳遞給kernel有幾種方式

教科書里的Linux代碼例子都已作古,所以看到的代碼不能當真,領會意思就行了
比如以前的init進程的啟動代碼
execve(init_filename,argv_init,envp_init);

現在改為
static void run_init_process(char *init_filename)
{
argv_init[0] = init_filename;
kernel_execve(init_filename, argv_init, envp_init);
}

好的,聰明人就發現,linux內核中調用用戶空間的程序可以使用init這樣的方式,調用 kernel_execve
不過內核還是提供了更好的輔助介面call_usermodehelper,自然最後也是調用kernel_execve

調用特定的內核函數(系統調用)是 GNU/Linux 中軟體開發的原本就有的組成部分。但如果方向反過來呢,內核空間調用用戶空間?確實有一些有這種特性的應用程序需要每天使用。例如,當內核找到一個設備, 這時需要載入某個模塊,進程如何處理?動態模塊載入在內核通過 usermode-helper 進程進行。
讓我們從探索 usermode-helper 應用程序編程介面(API)以及在內核中使用的例子開始。 然後,使用 API 構造一個示例應用程序,以便更好地理解其工作原理與局限。
usermode-helper API
usermode-helper API 是個很簡單的 API,其選項為用戶熟知。例如,要創建一個用戶空間進程,通常只要設置名稱為 executable,選項都為 executable,以及一組環境變數(指向 execve 主頁)。創建內核進程也是一樣。但由於創建內核空間進程,還需要設置一些額外選項。

內核版本
本文探討的是 2.6.27 版內核的 usermode-helper API。
表 1 展示的是 usermode-helper API 中一組關鍵的內核函數

表 1. usermode-helper API 中的核心函數

API 函數
描述

call_usermodehelper_setup 准備 user-land 調用的處理函數
call_usermodehelper_setkeys 設置 helper 的會話密鑰
call_usermodehelper_setcleanup 為 helper 設置一個清空函數
call_usermodehelper_stdinpipe 為 helper 創建 stdin 管道
call_usermodehelper_exec 調用 user-land
表 2 中還有一些簡化函數,它們封裝了的幾個內核函數(用一個調用代替多個調用)。這些簡化函數在很多情況下都很有用,因此盡可能使用他們。

表 2. usermode-helper API 的簡化

API 函數
描述

call_usermodehelper 調用 user-land
call_usermodehelper_pipe 使用 stdin 管道調用 user-land
call_usermodehelper_keys 使用會話密鑰調用 user-land
讓我們先瀏覽一遍這些核心函數,然後探索簡化函數提供了哪些功能。核心 API 使用了一個稱為subprocess_info 結構的處理函數引用進行操作。該結構(可在 ./kernel/kmod.c 中找到)集合了給定的 usermode-helper 實例的所有必需元素。該結構引用從 call_usermodehelper_setup 調用返回。該結構(以及後續調用)將會在 call_usermodehelper_setkeys(用於存儲憑證)、call_usermodehelper_setcleanup 以及 call_usermodehelper_stdinpipe 的調用中進一步配置。最後,一旦配置完成,就可通過調用 call_usermodehelper_exec 來調用配置好的用戶模式應用程序。

聲明
該方法提供了一個從內核調用用戶空間應用程序必需的函數。盡管這項功能有合理用途,還應仔細考慮是否需要其他實現。這是一個方法,但其他方法會更合適。
核心函數提供了最大程度的控制,其中 helper 函數在單個調用中完成了大部分工作。管道相關調用(call_usermodehelper_stdinpipe 和 helper 函數 call_usermodehelper_pipe)創建了一個相聯管道供 helper 使用。具體地說,創建了管道(內核中的文件結構)。用戶空間應用程序對管道可讀,內核對管道可寫。對於本文,核心轉儲只是使用 usermode-helper 管道的應用程序。在該應用程序(./fs/exec.c do_coremp())中,核心轉儲通過管道從內核空間寫到用戶空間。
這些函數與 sub_processinfo 以及 subprocess_info 結構的細節之間的關系如圖 1 所示。
圖 1. Usermode-helper API 關系

表 2 中的簡化函數內部執行 call_usermodehelper_setup 函數和 call_usermodehelper_exec 函數。表 2 中最後兩個調用分別調用的是 call_usermodehelper_setkeys 和 call_usermodehelper_stdinpipe。可以在 ./kernel/kmod.c 找到 call_usermodehelper_pipe 和 call_usermodehelper 的代碼,在 ./include/linux/kmod.h 中找到 call_usermodhelper_keys 的代碼。
為什麼要從內核調用用戶空間應用程序?
現在讓我們看一看 usermode-helper API 所使用的內核空間。表 3 提供的並不是專門的應用程序列表,而是一些有趣應用的示例。

表 3. 內核中的 usermode-helper API 應用程序

應用程序
源文件位置

內核模塊調用 ./kernel/kmod.c
電源管理 ./kernel/sys.c
控制組 ./kernel/cgroup.c
安全密匙生成 ./security/keys/request_key.c
內核事件交付 ./lib/kobject_uevent.c
最直接的 usermode-helper API 應用程序是從內核空間載入內核模塊。request_mole 函數封裝了 usermode-helper API 的功能並提供了簡單的介面。在一個常用的模塊中,內核指定一個設備或所需服務並調用 request_mole 來載入模塊。通過使用 usermode-helper API,模塊通過 modprobe 載入到內核(應用程序通過 request_mole 在用戶空間被調用)。
與模塊載入類似的應用程序是設備熱插拔(在運行時添加或刪除設備)。該特性是通過使用 usermode-helper API,調用用戶空間的 /sbin/hotplug 工具實現的。
關於 usermode-helper API 的一個有趣的應用程序(通過 request_mole) 是文本搜索 API(./lib/textsearch.c)。該應用程序在內核中提供了一個可配置的文本搜索基礎架構。該應用程序使用 usermode-helper API 將搜索演算法當作可載入模塊進行動態載入。在 2.6.30 內核版本中,支持三個演算法,包括 Boyer-Moore(./lib/ts_bm.c),簡單固定狀態機方法(./lib/ts_fsm.c),以及 Knuth-Morris-Pratt 演算法(./lib/ts_kmp.c)。
usermode-helper API 還支持 Linux 按照順序關閉系統。當需要系統關閉電源時,內核調用用戶空間的 /sbin/poweroff 命令來完成。其他應用程序如 表 3 所示,表中附有其源文件位置。
Usermode-helper API 內部
在 kernel/kmod.c 中可以找到 usermode-helper API 的源代碼 和 API(展示了主要的用作內核空間的內核模塊載入器)。這個實現使用 kernel_execve 完成臟工作(dirty work)。請注意 kernel_execve是在啟動時開啟 init 進程的函數,而且未使用 usermode-helper API。
usermode-helper API 的實現相當簡單直觀(見圖 2)。usermode-helper 從調用call_usermodehelper_exec 開始執行(它用於從預先配置好的 subprocess_info 結構中清除用戶空間應用程序)。該函數接受兩個參數:subprocess_info 結構引用和一個枚舉類型(不等待、等待進程中止及等待進程完全結束)。subprocess_info(或者是,該結構的 work_struct 元素)然後被壓入工作隊列(khelper_wq),然後隊列非同步執行調用。

圖 2. usermode-helper API 內部實現

當一個元素放入 khelper_wq 時,工作隊列的處理函數就被調用(本例中是__call_usermodehelper),它在 khelper 線程中運行。該函數從將 subprocess_info 結構出隊開始,此結構包含所有用戶空間調用所需信息。該路徑下一步取決於 wait 枚舉變數。如果請求者想要等整個進程結束,包含用戶空間調用(UMH_WAIT_PROC)或者是根本不等待(UMH_NO_WAIT),那麼會從 wait_for_helper 函數創建一個內核線程。否則,請求者只是等待用戶空間應用程序被調用(UMH_WAIT_EXEC),但並不完全。這種情況下,會為____call_usermodehelper() 創建一個內核線程。
在 wait_for_helper 線程中,會安裝一個 SIGCHLD 信號處理函數,並為 ____call_usermodehelper 創建另一個內核線程。但在 wait_for_helper 線程中,會調用 sys_wait4 來等待____call_usermodehelper 內核線程(由 SIGCHLD 信號指示)結束。然後線程執行必要的清除工作(為UMH_NO_WAIT 釋放結構空間或簡單地向 call_usermodehelper_exec() 回送一個完成報告)。
函數 ____call_usermodehelper 是實際讓應用程序在用戶空間啟動的地方。該函數首先解鎖所有信號並設置會話密鑰環。它還安裝了 stdin 管道(如果有請求)。進行了一些安裝以後,用戶空間應用程序通過 kernel_execve(來自 kernel/syscall.c)被調用,此文件包含此前定義的 path、argv 清單(包含用戶空間應用程序名稱)以及環境。當該進程完成後,此線程通過調用 do_exit() 而產生。
該進程還使用了 Linux 的 completion,它是像信號一樣的操作。當 call_usermodehelper_exec 函數被調用後,就會聲明 completion。當 subprocess_info 結構放入 khelper_wq 後,會調用wait_for_completion(使用 completion 變數作為參數)。請注意此變數會存儲到 subprocess_info 結構作為 complete 欄位。當子線程想要喚醒 call_usermodehelper_exec 函數,會調用內核方法complete,並判斷來自 subprocess_info 結構的 completion 變數。該調用會解鎖此函數使其能繼續。可以在 include/linux/completion.h 中找到 API 的實現。
應用程序示例
現在,讓我們看看 usermode-helper API 的簡單應用。首先看一下標准 API,然後學習如何使用 helper 函數使事情更簡單。
在該例中,首先開發了一個簡單的調用 API 的可載入內核模塊。清單 1 展示了樣板模塊功能,定義了模塊入口和出口函數。這兩個函數根據模塊的 modprobe(模塊入口函數)或 insmod(模塊入口函數),以及 rmmod(模塊出口函數)被調用。

清單 1. 模塊樣板函數

#include
#include
#include

MODULE_LICENSE( "GPL" );

static int __init mod_entry_func( void )
{
return umh_test();
}

static void __exit mod_exit_func( void )
{
return;
}

mole_init( mod_entry_func );
mole_exit( mod_exit_func );

usermode-helper API 的使用如 清單 2 所示,其中有詳細描述。函數開始是聲明所需變數和結構。以subprocess_info 結構開始,它包含所有的執行用戶空間調用的信息。該調用在調用call_usermodehelper_setup 時初始化。下一步,定義參數列表,使 argv 被調用。該列表與普通 C 程序中的 argv 列表類似,定義了應用程序(數組第一個元素)和參數列表。需要 NULL 終止符來提示列表末尾。請注意這里的 argc 變數(參數數量)是隱式的,因為 argv 列表的長度已經知道。該例中,應用程序名是 /usr/bin/logger,參數是 help!,然後是 NULL 終止符。下一個所需變數是環境數組(envp)。該數組是一組定義用戶空間應用程序執行環境的參數列表。本例中,定義一些常用的參數,這些參數用於定義 shell 並以 NULL 條目結束。

清單 2. 簡單的 usermode_helper API 測試

static int umh_test( void )
{
struct subprocess_info *sub_info;
char *argv[] = { "/usr/bin/logger", "help!", NULL };
static char *envp[] = {
"HOME=/",
"TERM=linux",
"PATH=/sbin:/bin:/usr/sbin:/usr/bin", NULL };

sub_info = call_usermodehelper_setup( argv[0], argv, envp, GFP_ATOMIC );
if (sub_info == NULL) return -ENOMEM;

return call_usermodehelper_exec( sub_info, UMH_WAIT_PROC );
}

下一步,調用 call_usermodehelper_setup 來創建已初始化的 subprocess_info 結構。請注意使用了先前初始化的變數以及指示用於內存初始化的 GFP 屏蔽第四個參數。在安裝函數內部,調用了kzalloc(分配內核內存並清零)。該函數需要 GFP_ATOMIC 或 GFP_KERNEL 標志(前者定義調用不可以休眠,後者定義可以休眠)。快速測試新結構(即,非 NULL)後,使用 call_usermodehelper_exec 函數繼續調用。該函數使用 subprocess_info 結構以及定義是否等待的枚舉變數(在 「Usermode-helper API 內部」 一節中有描述)。全部完成! 模塊一旦載入,就可以在 /var/log/messages 文件中看到信息。
還可以通過 call_usermodehelper API 函數進一步簡化進程,它同時執行 call_usermodehelper_setup和 call_usermodehelper_exec 函數。如清單 3 所示,它不僅刪除函數,還消除了調用者管理subprocess_info 結構的必要性。

清單 3. 更簡單的 usermode-helper API 測試

static int umh_test( void )
{
char *argv[] = { "/usr/bin/logger", "help!", NULL };
static char *envp[] = {
"HOME=/",
"TERM=linux",
"PATH=/sbin:/bin:/usr/sbin:/usr/bin", NULL };

return call_usermodehelper( argv[0], argv, envp, UMH_WAIT_PROC );
}

請注意在清單 3 中,有著同樣的安裝並調用(例如初始化 argv 和 envp 數組)的需求。此處惟一的區別是 helper 函數執行 setup 和 exec 函數。

Ⅶ 了解Honeynet(蜜網)或者Linux的朋友請幫幫我

honeynet主機配置

Gen I是在三層用nat進行轉換控制,配置相對比較方便一些,但是路由轉發會消耗掉一個TTL。
Gen II是在二層用brige轉發控制,配置相對稍微復雜一點,不消耗TTL,相對更隱蔽一些。

不想編譯內核,使用Gen I。

1、主機系統配置

比較喜歡debian,由於user-mode-linux只在debian的testing和unstable里,所以就近選個快速的鏡象站點作系統更新、軟體安裝。geekbone的mirror非常完整,而且速度不錯,推薦。

# apt-get update
# apt-get upgrade

需要ssh來對主機進行管理:

# apt-get install ssh

去除一些不必要的服務:

# update-rc.d -f inetd remove
# update-rc.d -f ppp remove
# update-rc.d -f exim remove

2、安裝user-mode-linux

# apt-get install user-mode-linux

debian的UML內核沒有配mount DevFS,所以啟動的時候要加上devfs=mount的參數。

系統鏡象使用honeynet提供的redhat 7.2,可以從如下地址下載:

http://honeynet.xfocus.net/misc/files/root_fs.rh-7.2-server.pristine.20021012.gz

解壓後使用這個文件系統啟動UML:

# linux ubd0=root_fs.rh-7.2-server.pristine.20021012 eth0=tuntap,,00:90:0b:03:04:05,192.168.0.254 devfs=mount

如果文件系統映象文件名是root_fs,就不需加ubd0=,eth0=tuntap,,00:90:0b:03:04:05,192.168.0.254的意思是在eth0上用TUN/TAP綁定/dev/tap0,IP為192.168.0.254,前面的mac地址是指定UML網卡的mac地址,否則默認是FE:FD:00:00:00:00。

這個系統的用戶名和口令都是root。

3、數據控制

數據控制使用honeynet提供的rc.firewall腳本,可以從如下地址下載:

http://honeynet.xfocus.net/papers/honeynet/tools/rc.firewall

作一些輕微的修改:

rc.firewall默認使用2層的bridging模式,修改為:

MODE="nat"

需要配置虛擬系統對外的IP,可以指定多個用空格隔開:

PUBLIC_IP="192.168.7.144"

配置虛擬系統真實的IP,可以指定多個用空格隔開,注意和PUBLIC_IP對應:

HPOT_IP="192.168.0.144"

配置主機管理介面:

MANAGE_IFACE="eth0"

主機真實IP:

MANAGE_IP="192.168.7.99" # IP of management Interface
MANAGE_NETMASK="255.255.255.0" # Netmask of management Interface

允許訪問的埠,可以多個用空格隔開:

ALLOWED_TCP_IN="22"

允許訪問的來源IP,可以用any:

MANAGER="192.168.7.9/24"

數據控制介面:

LAN_IFACE="tap0"

rc.firewall默認允許9個TCP連接,20個UDP連接,50個ICMP連接和10個其它IP連接。當然可以修改腳本里這幾個參數。

4、數據捕獲

安裝snort:

# apt-get install snort

去掉它的自動啟動:

# update-rc.d -f snort remove

使用了honeynet提供的snort.conf和啟動腳本,下載地址:

http://honeynet.xfocus.net/papers/honeynet/tools/snort.conf
http://honeynet.xfocus.net/papers/honeynet/tools/snort-start.txt

snort.conf有些錯誤,作如下修改:

var HOME_NET 192.168.7.99/24

output alert_full: /data/snort/snort_full
output alert_fast: /data/snort/snort_fast

snort-start.txt啟動腳本稍微修改:

PID=/var/run/snort_tap0.pid
DIR=/data/snort
SNORT=/usr/sbin/snort

$SNORT -d -D -c /etc/snort/snort.conf -i vmnet1 -l $DIR/$DATE not host yyy.yyy.yyy.yyy

其中yyy.yyy.yyy.yyy是自己客戶端的IP,這樣忽略記錄自己的IP,避免了自己在虛擬honeypot上的連接特別是文件傳輸等不被記錄,使得日誌不會因為自己的操作變得巨大,增加干擾信息。當然前提是自己客戶端的IP是固定的,否則就算了。

當然針對需要捕獲何種數據可以再細調snort規則。

5、安裝vmware

使用的是vmware-gsx-2.5,商業軟體照者安裝就行。安裝的時候要注意,網路要安裝成host only模式,設置的IP就是網關地址,這些可以在安裝後用vmware-config.pl來修改。在網路修改那裡使用editor不要使用wizard。

關於數據控制和數據捕獲與上面UML的一樣,就是相應的介面由tap0改為vmnetX。

6、注意事項

清空iptables規則不能簡單的來個iptables -F,因為rc.firewall腳本把INPUT和FORWARD的策略都設為DROP,如果這樣撤銷rc.firewall的話所有網路都不通了。用如下的一個小腳本:

#!/bin/sh
#-----------------------------------------
# stop-firewall.sh
#-----------------------------------------
# safely stop rc.firewall

/sbin/iptables -F
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -X icmpHandler
/sbin/iptables -X otherHandler
/sbin/iptables -X tcpHandler
/sbin/iptables -X udpHandler

echo "honeynet rc.firewall safely stoped!"

#EOF

很遺憾,UML和vmware不能同時用,它們使用的介面不一樣,也許改rc.firewall可以實現。然後就把機器託管到IDC去,你要開幾個虛擬機就再需要幾個外部IP,不要告訴IDC你到底做什麼,要不然別人可能會感覺不爽,你還得解釋半天。

Ⅷ user mode linux 怎麼安裝(重金酬謝)!!!

最簡單的辦法是用wubi
1。下載ubuntu9.10的光碟鏡像;(www.ubuntu.com) //可以用迅雷
2。將鏡像文件添加到虛擬光碟機,如果沒有虛擬光碟機,可以下載安裝UltraISO,在鏡像文件上單擊右鍵,選擇載入到虛擬光碟機。【沒有ultrai用其他虛擬光碟機也行】。
3。從我的電腦里找到虛擬光碟機,雙擊打開,在光碟里選擇用wubi.exe安裝。
4。按照提示操作,選擇安裝位置的時候找一個剩餘空間比較大的磁碟分區。
剩下的按照提示傻瓜式的安裝就可以里,裝完以後會提示你重啟,記住一定不要選重啟,要選稍有重啟。

(以下幾步可以省略,但是為了保證安裝成功,鼓勵嘗試)

5。檢查一下C盤是否有wubildr和wubildr.mbr這兩個文件,如果沒有,找到光碟
winboot目錄,把裡面的wubildr和wubildr.mbr復制到C盤。
6。 以管理員身份運行CMD。
友情提示:請先備份win7系統啟動項。命令是
•bcdedit /export 「D:\BCD Backup\Bcd Backup」 : 將啟動設置備份到D盤 「BCD Backup」 目錄下;
•bcdedit /import 「D:\BCD Backup\Bcd Backup」 : 恢復之前備份在D盤 「BCD Backup」目錄下啟動選項。
7。 鍵入:cd c:\ ,接著鍵入:bcdedit /create /d "Ubuntu" /application bootsector(這時會生成一個id以{asdfadsf})這樣的內容)
8。 鍵入:bcdedit /set {id} device partition=C:(id 就用之前生成的id)
9。 鍵入:bcdedit /set {id} path \wubildr.mbr (id 就用之前生成的id)
10。 鍵入:bcdedit /displayorder {id} /addlast(id 就用之前生成的id)
11。 重啟,在選擇系統時候選擇ubuntu就可以了。之後便會自動安裝。

安裝完畢之後便可以使用ubuntu了。如果想要刪除ubuntu,只需要重新運行wubi就可以卸載了

QQ:790828241

希望對你管用。相信來這答題的都是處於愛好和想幫助別人。至於現金就不用了,呵呵。

Ⅸ 操作系統中Kernel Mode和User Mode的區別

在許多電腦的硬體架構中,為了不讓程序任意存取任何資源(例如隨機存取存儲器RAM),大部分的CPU架構都支持Kernel mode與User mode兩種執行模式,當然這種模式也得要OS有相關實際配合才有作用,像DOS就沒有Kernel/User mode的分別,所有以DOS執行的程序都可對任意資源執行任何行為,所以DOS上的病毒才能那麼囂張,動不動就格式化硬碟。
一般來說, 應用程序是在User mode中執行程序,普通的數值計算或變數指派都可以在此模式完成,但是若要執行一些危及系統安全的指令(例如對磁碟寫入資料),而這些指令是不準在User mode中執行的,強要執行那些特殊指令只會讓系統給你一個錯誤信息而已,應用程序必須呼叫一些OS定義好的函數才能達成那些功能,例如printf(),這些OS事先定義好的函數我們稱為system call(系統調用)。
當應用程序執行了system call,並不是傻傻地讓應用程序想做什麼就做什麼,他們首先會嚴密地檢查這個調用的應用程序的許可權以及操作的內容(是否讀取不屬於自己的存儲器范圍,是否讀寫沒有許可權讀寫的文件,是否想把資料往錯誤的裝置送過去......),若是有任何錯誤,system call將會停止執行並回傳一個錯誤代號,讓應用程序知道自己錯在何處。相反地一切檢查都沒問題,system call將會通知CPU進入Kernel mode,並依照應用程序送過來的參數執行特權指令。當特權指令執行完畢,system call將會通知CPU返回User mode,並回到應用程序中。
Kernel/User mode架構是非常普遍的執行模式,幾乎可以在任何機器上看到這套架構,從電腦到機上盒,刷卡機等等電子商品,為了保護某些特別的指令不被搞不清楚狀況的程序開發者亂玩,OS開發者通常藉由定義system call告訴開發者們,哪些行為必須經過OS的過濾才能執行。
當然Linux等Open source kernel的開發者可以自行定義並增加system call的數量, 豐富OS與應用程序的溝通介面,不過這種修改得經過非常小心的計劃與測試,因為在system call裡面執行的程序若是有錯,很可能讓整個OS崩潰(死機)!例如許多沒有Open source的驅動程序(xVidia,ATx之類的顯示卡),由於Kernel的開發者無從得知那些驅動程序的演演算法,所以也無法保證那些驅動程序會不會讓Kernel執行到一半掛掉。
事實上,所有第三方撰寫的驅動程序都會有這種問題,Windows常常被人臭罵有時候真的是無辜的,一切都是因為寫驅動程序的第三方公司功力太爛,寫出品質低落的驅動程序讓Windows壞到掛掉,微軟Windows小組也是滿腹苦水(在此並沒有袒護微軟的意思,只是陳述事實)。

Ⅹ linux下命令怎麼修改用戶名

linux 中更改用戶許可權和用戶組的命令實例;
增加許可權給當前用戶 chmod +wx filename
chmod -R 777 /upload
用戶組 chgrp -R foldname zdz
chown -R 所有者用戶名.組名 文件夾名稱
例如:chown -R zdz.nginx KooBox
命令詳解直接搜索就很多了,這里不多說了。
================================
語法:chmod [who] [+ | - | =] [mode] 文件名
命令中各選項的含義為
u 表示「用戶(user)」,即文件或目錄的所有者。
g 表示「同組(group)用戶」,即與文件屬主有相同組ID的所有用戶。
o 表示「其他(others)用戶」。
a 表示「所有(all)用戶」。它是系統默認值。
操作符號可以是:
+ 添加某個許可權。
- 取消某個許可權。
= 賦予給定許可權並取消其他所有許可權(如果有的話)。
設置mode所表示的許可權可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
s 在文件執行時把進程的屬主或組ID置為該文件的文件屬主。方式「u+s」設置文件的用戶ID位,「g+s」設置組ID位。
t 保存程序的文本到交換設備上。
u 與文件屬主擁有一樣的許可權。
g 與和文件屬主同組的用戶擁有一樣的許可權。
o 與其他用戶擁有一樣的許可權。
實例
修改文件可讀寫屬性的方法
例如:把index.html 文件修改為可寫可讀可執行:
chmod 777 index.html
要修改目錄下所有文件屬性可寫可讀可執行:
chmod 777 *.*
把文件夾名稱與後綴名用*來代替就可以了。
比如:修改所有htm文件的屬性:
chmod 777 *.htm
修改文件夾屬性的方法
把目錄 /images/small 修改為可寫可讀可執行
chmod 777 /images/small
修改目錄下所有的文件夾屬性
chmod 777 *
把文件夾名稱用*來代替就可以了
要修改文件夾內所有的文件和文件夾及子文件夾屬性為可寫可讀可執行
chmod -R 777 /upload
總結linux下目錄和文件的許可權區別
文件:讀文件內容(r)、寫數據到文件(w)、作為命令執行文件(x)。
目錄:讀包含在目錄中的文件名稱(r)、寫信息到目錄中去(增加和刪除索引點的連結)、搜索目錄(能用該目錄名稱作為路徑名去訪問它所包含的文件和子目錄)
具體說就是:
(1)有隻讀許可權的用戶不能用cd進入該目錄:還必須有執行許可權才能進入。
(2)有執行許可權的用戶只有在知道文件名,並擁有讀權利的情況下才可以訪問目錄下的文件。
(3)必須有讀和執行許可權才可以ls列出目錄清單,或使用cd命令進入目錄。
(4)有目錄的寫許可權,可以創建、刪除或修改目錄下的任何文件或子目錄,即使使該文件或子目錄屬於其他用戶也是如此。

查看目錄許可權

查看文件許可權的語句:
在終端輸入:
ls -l xxx.xxx (xxx.xxx是文件名)
那麼就會出現相類似的信息,主要都是這些:
-rw-rw-r--
一共有10位數
其中: 最前面那個 - 代表的是類型
中間那三個 rw- 代表的是所有者(user)
然後那三個 rw- 代表的是組群(group)
最後那三個 r-- 代表的是其他人(other)
然後我再解釋一下後面那9位數:
r 表示文件可以被讀(read)
w 表示文件可以被寫(write)
x 表示文件可以被執行(如果它是程序的話)
- 表示相應的許可權還沒有被授予
現在該說說修改文件許可權了
在終端輸入:
chmod o w xxx.xxx
表示給其他人授予寫xxx.xxx這個文件的許可權
chmod go-rw xxx.xxx
表示刪除xxx.xxx中組群和其他人的讀和寫的許可權
其中:
u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被讀(read)
w 表示文件可以被寫(write)
x 表示文件可以被執行(如果它是程序的話)
其中:rwx也可以用數字來代替
r ------------4
w -----------2
x ------------1
- ------------0
行動:
表示添加許可權
- 表示刪除許可權
= 表示使之成為唯一的許可權
當大家都明白了上面的東西之後,那麼我們常見的以下的一些許可權就很容易都明白了:
-rw------- (600) 只有所有者才有讀和寫的許可權
-rw-r--r-- (644) 只有所有者才有讀和寫的許可權,組群和其他人只有讀的許可權
-rwx------ (700) 只有所有者才有讀,寫,執行的許可權
-rwxr-xr-x (755) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有讀和執行的許可權
-rwx--x--x (711) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有執行的許可權
-rw-rw-rw- (666) 每個人都有讀寫的許可權
-rwxrwxrwx (777) 每個人都有讀寫和執行的許可權
linux 中更改用戶許可權和用戶組的命令實例;
增加許可權給當前用戶 chmod +wx filename
chmod -R 777 /upload
用戶組 chgrp -R foldname zdz
chown -R 所有者用戶名.組名 文件夾名稱
例如:chown -R zdz.nginx KooBox
命令詳解直接搜索就很多了,這里不多說了。
================================
語法:chmod [who] [+ | - | =] [mode] 文件名
命令中各選項的含義為
u 表示「用戶(user)」,即文件或目錄的所有者。
g 表示「同組(group)用戶」,即與文件屬主有相同組ID的所有用戶。
o 表示「其他(others)用戶」。
a 表示「所有(all)用戶」。它是系統默認值。
操作符號可以是:
+ 添加某個許可權。
- 取消某個許可權。
= 賦予給定許可權並取消其他所有許可權(如果有的話)。
設置mode所表示的許可權可用下述字母的任意組合:
r 可讀。
w 可寫。
x 可執行。
X 只有目標文件對某些用戶是可執行的或該目標文件是目錄時才追加x 屬性。
s 在文件執行時把進程的屬主或組ID置為該文件的文件屬主。方式「u+s」設置文件的用戶ID位,「g+s」設置組ID位。
t 保存程序的文本到交換設備上。
u 與文件屬主擁有一樣的許可權。
g 與和文件屬主同組的用戶擁有一樣的許可權。
o 與其他用戶擁有一樣的許可權。
實例
修改文件可讀寫屬性的方法
例如:把index.html 文件修改為可寫可讀可執行:
chmod 777 index.html
要修改目錄下所有文件屬性可寫可讀可執行:
chmod 777 *.*
把文件夾名稱與後綴名用*來代替就可以了。
比如:修改所有htm文件的屬性:
chmod 777 *.htm
修改文件夾屬性的方法
把目錄 /images/small 修改為可寫可讀可執行
chmod 777 /images/small
修改目錄下所有的文件夾屬性
chmod 777 *
把文件夾名稱用*來代替就可以了
要修改文件夾內所有的文件和文件夾及子文件夾屬性為可寫可讀可執行
chmod -R 777 /upload
總結linux下目錄和文件的許可權區別
文件:讀文件內容(r)、寫數據到文件(w)、作為命令執行文件(x)。
目錄:讀包含在目錄中的文件名稱(r)、寫信息到目錄中去(增加和刪除索引點的連結)、搜索目錄(能用該目錄名稱作為路徑名去訪問它所包含的文件和子目錄)
具體說就是:
(1)有隻讀許可權的用戶不能用cd進入該目錄:還必須有執行許可權才能進入。
(2)有執行許可權的用戶只有在知道文件名,並擁有讀權利的情況下才可以訪問目錄下的文件。
(3)必須有讀和執行許可權才可以ls列出目錄清單,或使用cd命令進入目錄。
(4)有目錄的寫許可權,可以創建、刪除或修改目錄下的任何文件或子目錄,即使使該文件或子目錄屬於其他用戶也是如此。

查看目錄許可權

查看文件許可權的語句:
在終端輸入:
ls -l xxx.xxx (xxx.xxx是文件名)
那麼就會出現相類似的信息,主要都是這些:
-rw-rw-r--
一共有10位數
其中: 最前面那個 - 代表的是類型
中間那三個 rw- 代表的是所有者(user)
然後那三個 rw- 代表的是組群(group)
最後那三個 r-- 代表的是其他人(other)
然後我再解釋一下後面那9位數:
r 表示文件可以被讀(read)
w 表示文件可以被寫(write)
x 表示文件可以被執行(如果它是程序的話)
- 表示相應的許可權還沒有被授予
現在該說說修改文件許可權了
在終端輸入:
chmod o w xxx.xxx
表示給其他人授予寫xxx.xxx這個文件的許可權
chmod go-rw xxx.xxx
表示刪除xxx.xxx中組群和其他人的讀和寫的許可權
其中:
u 代表所有者(user)
g 代表所有者所在的組群(group)
o 代表其他人,但不是u和g (other)
a 代表全部的人,也就是包括u,g和o
r 表示文件可以被讀(read)
w 表示文件可以被寫(write)
x 表示文件可以被執行(如果它是程序的話)
其中:rwx也可以用數字來代替
r ------------4
w -----------2
x ------------1
- ------------0
行動:
表示添加許可權
- 表示刪除許可權
= 表示使之成為唯一的許可權
當大家都明白了上面的東西之後,那麼我們常見的以下的一些許可權就很容易都明白了:
-rw------- (600) 只有所有者才有讀和寫的許可權
-rw-r--r-- (644) 只有所有者才有讀和寫的許可權,組群和其他人只有讀的許可權
-rwx------ (700) 只有所有者才有讀,寫,執行的許可權
-rwxr-xr-x (755) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有讀和執行的許可權
-rwx--x--x (711) 只有所有者才有讀,寫,執行的許可權,組群和其他人只有執行的許可權
-rw-rw-rw- (666) 每個人都有讀寫的許可權
-rwxrwxrwx (777) 每個人都有讀寫和執行的許可權

閱讀全文

與usermodelinux相關的資料

熱點內容
graphvizlinux 瀏覽:438
智能手錶藍牙怎麼下載app 瀏覽:293
女程序員下班菜譜 瀏覽:260
加密貨幣買什麼比較靠譜 瀏覽:277
用圖片的地圖再編譯的地方 瀏覽:462
python監控系統進程 瀏覽:236
群暉怎麼取消照片共享文件夾 瀏覽:156
程序員那麼可愛第幾集陸璃懷孕 瀏覽:615
西門子st編程手冊 瀏覽:59
mt4編程書籍 瀏覽:21
單片機模擬實驗設置電壓 瀏覽:948
如何用電腦打開安卓手機內存 瀏覽:860
java數據訪問層 瀏覽:181
代碼優化是編譯程序的必要階段 瀏覽:623
程序員那麼可愛孩子還在嗎 瀏覽:513
以下哪些是資料庫編程技術 瀏覽:164
水冷壓縮冷凝機組 瀏覽:177
小米路由器app怎麼加黑名單 瀏覽:433
證券交易2012pdf 瀏覽:208
單線程和多線程編譯 瀏覽:155