歡迎來到Wilson的blogger,這裡提供各主題的文章,搞笑、奇聞軼事、酷炫都有,歡迎大家留言,也請來訪的各位幫忙點擊首頁出現的所有廣告,只要點一下就可以囉,感激不盡!

2016年9月16日 星期五

Ubuntu C語言編譯

Ubuntu和某些linux的distribution已經內建好了C語言的所有套件,可以直接在終端機編譯,方便很多
建一個記事本,寫好code,儲存
C01
將副檔名改為.c
C02
終端機輸入cd /(原始碼檔案所在位置),進入到剛剛寫好的原始碼所在的目錄
C03
輸入gcc -g (原始碼檔名),編譯就完成了,如果有bug會顯示debug訊息
2016-09-17 03-35-53 的螢幕擷圖  
編譯完成後會在目錄裡看到一個a.out檔,在終端機輸入./a.out,就可以執行了
C04  
記得幫點擊部落格首頁的廣告,每個各點一下喔,只要點一下就好,感激不盡

vsftpd

在linux上要跨越網際網路和不是連線到同一個實體ip的電腦互傳資料就要用ftp server,vsftpd是linux招牌的ftp server
1.終端機輸入sudo apt install vsftpd,安裝vsftpd
vsftpd01
找到vsftpd.conf在哪個位置,終端機輸入sudo gedit /(vsftpd.conf所在位置)/vsftpd.conf,用記事本將它打開
vsftpd02
在全部原本有的欄位前面加一個#把它mark掉,在下面打上自己想要的設定
connect_from_port_20=YES/NO                                  是否用port20來傳輸資料,YES設定為用port20來傳輸,NO設定為不用port20來傳輸
listen_port=(自訂port號)                                               若不用port20來傳輸資料,可自訂想要的port
listen=YES/NO                                                             是否用stand alone模式啟動
use_localtime=YES/NO                                                vsftpd預設的時間是經度0°的格林威治時間,use_localtime可以設定是否用本地時間
write_enable=YES/NO                                                 是否可寫(針對所有類型使用者)
local_enable=YES/NO                                                 是否讓local使用者登入
local_mask=(權限代碼)                                                local使用者上傳的檔案要去掉的權限
connect_timeout=(秒數)                                               伺服器發出的連接訊號在多少秒內得不到client端的回應就強制斷線
data_connection_timeout=(秒數)                                 傳資料過程中因為線路問題導致多少秒內無法傳送就強制斷線
max_clients=(人數)                                                      限制同時登入的client數
local_max_rate=(速率)                                                 限制local使用者上傳的最大速率
chroot_local_user=YES/NO                                         是否要將local使用者活動範圍限制在各別的/home底下
anonymous_enable=YES/NO                                      是否anonymous使用者登入
anon_world_readable_only=YES/NO                          是否限定anonymous使用者唯讀
anon_other_write_enable=YES/NO                             是否anonymous使用者可寫
anon_mkdir_write_enable=YES/NO                            是否anonymous使用者可建目錄
anon_upload_enable=YES/NO                                    是否anonymous使用者可上傳資料
no_anon_password=YES/NO                                      是否不問anonymous使用者的email,讓anonymous使用者直接進入
anon_max_rate=(kb/s)                                                 限制anonymous使用者上傳的最大速率
anon_umask=(權限代碼)                                              anonymous使用者上傳的檔案要去掉的權限
anon_root=(路徑)                                                         指定anonymous使用者登入後可以看到的目錄
ascii_download_enable=YES/NO                                是否規定client用 ASCII 格式下載檔案,與安全有關
ascii_upload_enable=YES/NO                                     是否規定client用 ASCII 格式上傳檔案,與安全有關
one_process_model=YES/NO                                     是否給每個連線一個process
tcp_wrappers=YES/NO                                                是否開啟TCP防火牆
xferlog_enable=YES/NO                                              是否紀錄上傳下載歷史
xferlog_file=(路徑/檔名)                                                指定上傳下載歷史要紀錄在哪個檔案
dual_log_enable=YES/NO                                           是否同時開啟syslog和xferlog紀錄
utf8_filesystem=YES/NO                                              是否啟用utf8編碼
vsftpd03
※使用者有分local、guest、anonymous
local必須在伺服器電腦系統上有建一個使用者帳號,vsftpd才能用此帳號登入local,而登入的密碼即是此使用者在伺服器電腦上的使用者登入密碼,登入後可以看到在伺服器電腦上自己的/home目錄,但不能跑到其他使用者的/home,例如wilson和jsiruw在伺服器電腦上都有自己的系統使用者帳號,在伺服器電腦上就會有2個home,一個是/home/wilson,另一個是/home/jsiruw,wilson在電腦上的使用者密碼是875439974,jsiruw是133486257,那麼wilson要用密碼875439974登入ftp,可以存取的範圍是/home/wilson,jsiruw要用密碼133486257登入ftp,可以存取的範圍是/home/jsiruw
guest又稱虛擬帳號,要依附在local帳號,且設定與pam有關,很少在使用
anonymous是可以不須帳號密碼登入的,但其可活動的範圍是anon_root所指定的位置,其他位置都看不到
※要設定local使用者只要設定系統上的使用者就可以了
增加使用者的指令是sudo useradd (參數1) (設定1) (參數2) (設定2) ····· (使用者名稱)
刪除使用者的指令是sudo userdel -r (使用者名稱),有加-r會連該使用者的家目錄一起刪掉
設定已存在使用者的密碼的指令是sudo passwd (使用者名稱)
useradd指令的參數簡介
-G:指定這個新增加的user屬於哪些群組,法為-G (群組1),(群組2),····· 
-m:為新增的user建一個家目錄
-M:不建立新增的user的家目錄
-d:指定某個目錄為新user的家目錄,用法為-d /(目錄位置)
-p:設定新使用者的密碼,用法為-p (密碼)
例如我要建一個名為A的使用者,密碼為85749360,家目錄位置為/home/wiru/share,屬於群組wgegwe和rhwgef
指令為sudo useradd -p 85749360 -d /home/wiru/share -G wgegwe,rhwgef A 
新增後就可以從遠端用A這個local user帳號登入,登入密碼是85749360,登入後會進到/home/wiru/share這個目錄
如果要為使用者建立裡面有下載、音樂、圖片等資料夾的家目錄,指令是sudo useradd -m -d /(要建家目錄的目錄位置)/(家目錄名稱) (使用者名稱)
如果要刪除這個使用者,用sudo userdel -r A 
如果要讓自己以外的local user可以連線,一定要在vsftpd.conf加上pam_service_name=ftp這句
※linux權限代碼
可寫(writable):2
可讀(readable):4
可執行(executable):1
用三者相加的值來設定權限
只可寫=2
可讀=4
可執行=1
可寫+可讀+可執行=7
可寫+可讀=6
可讀+可執行=5
可寫+可執行=3
寫、執行都不可=0
百位數設定擁有者權限,十位數設定群組權限,個位數設定其他使用者權限
例如741代表擁有者可寫可讀可執行,群組可讀,其他使用者可執行
2016-09-17 03-09-34 的螢幕擷圖  
※umask指的是要拿掉的權限,例如umask設成127代表要拿掉擁有者的執行權限,拿掉群組的寫權限,拿掉其他使用者的讀執行權限,和一般的權限設定是相反的
2.用sudo權限打開xferlog_file指定的路徑,在裡面建一個文字檔,檔名是xferlog_file設定的檔名,用來紀錄所有上傳下載資料的
vsftpd04

因為新版的vsftpd規定anon_root所設定的路徑權限必須是不可寫的,不然伺服器無法運作
所以,先在anon_root所設定的路徑建一個資料夾
vsftpd05
打開終端機,輸入sudo chmod o+w /(anon_root所設定的路徑)/(資料夾名稱),設定此資料夾的權限,讓anonymous使用者可以在此資料夾內存取
vsftpd06
再輸入sudo chmod a-w /(anon_root所設定的路徑),將anon_root所設定的路徑權限設為不可寫
vsftpd07
如果chroot_local_user設定為YES,local使用者的家目錄必須要是不可寫的,不然會無法登入,這也是新版的規定,但home不可寫會讓重要的IceLockAuthfile無法讀取,導致以後登入該使用者後沒多久就登出的bug
所以在vsftpd.conf加入一行allow_writeable_chroot=YES就可以了(是writeable沒錯,vsftpd的創造者筆誤)
2016-09-19 04-34-25 的螢幕擷圖
3.到你的電信公司申請一組固定ip,如果是hinet到這裡申請
vsftpd9-1
vsftpd9-2
輸入hinet的帳號密碼
vsftpd9-3
之後按照指示申請即可
4.設定方式有兩種,一種是將固定ip設定在路由器上,用NAT穿透到電腦,另一種是直接將固定ip設定在電腦上,建議直接設定在電腦上
終端機輸入sudo pppoeconf
vsftpd10
點選〈是〉
vsftpd11
輸入你的hinet帳號,後面加@ip.hinet.net,記得加ip
vsftpd12
輸入你的hinet密碼
vsftpd13
點選〈是〉
vsftpd14
隨個人設定
vsftpd15
點選〈是〉
vsftpd16
點選〈是〉
vsftpd17
點選〈確定〉
vsftpd18
5.輸入sudo /etc/init.d/vsftpd start,啟動伺服器
vsftpd08
輸入netstat -tulpn | grep :(port號),可以檢查有沒有正常運作
vsftpd19
輸入ftp (固定ip),可以連上伺服器,可以檢查有沒有錯誤
vsftpd20
輸入sudo /etc/init.d/vsftpd restart,可以重新啟動伺服器
vsftpd09    
6.client端是windows,在檔案總管上方路徑欄輸入ftp://(伺服器固定ip),就可以連線
   client端是linux,在終端機輸入ftp (伺服器固定ip),就可以連線      
   另外也可以用一些軟體連線
記得幫點擊部落格首頁的廣告,每個各點一下喔,只要點一下就好,感激不盡

2016年9月7日 星期三

VMware模擬OS X

1.去這裡下載unlocker
2016-09-03 16-54-12 的螢幕擷圖
打開會有這些檔案,windows直接點unlocker.exe就可以安裝
2016-09-03 17-44-27 的螢幕擷圖
linux要先把gettools.py和unlocker.py複製到/home底下
2016-09-03 17-44-35 的螢幕擷圖
然後打開終端機,輸入sudo /(lnx-install.sh所在位置)/lnx-install.sh
2016-09-03 17-45-29 的螢幕擷圖
安裝完後,打開VMware player,在create a new virtual machine就可以看到apple os x了
2016-09-03 17-46-22 的螢幕擷圖
建一個給os x的virtual machine
2016-09-03 17-48-05 的螢幕擷圖
2.去這裡下載os x的dmg檔,未來有更新的版本也可以在這個網站找到
2016-09-03 21-53-39 的螢幕擷圖       
3.去這裡下載7-zip
2016-09-04 22-01-47 的螢幕擷圖  
用7-zip打開os x dmg檔
2016-09-04 22-06-26 的螢幕擷圖    
翻資料夾,找到一個叫InstallESD.dmg的檔案,大小會跟原始dmg檔差不多,那就對了
2016-09-04 22-06-43 的螢幕擷圖
2016-09-04 22-06-59 的螢幕擷圖  
把它取出來
2016-09-04 22-07-19 的螢幕擷圖
一定要用7-zip取出來,其他映像工具在提取過程會出錯,出來的InstallESD.dmg不能用
4.去這裡下載poweriso,破解法有附
未命名  
用poweriso將InstallESD.dmg轉成iso格式
2016-09-04 22-10-51 的螢幕擷圖
2016-09-04 22-10-55 的螢幕擷圖 
5.再次進入剛剛建好的os x 10.11,啟動它
2016-09-03 17-48-05 的螢幕擷圖
掛載InstallESD.iso
2016-09-07 16-59-13 的螢幕擷圖  
重新載入
接著一步一步安裝
完成
 2016-09-07 18-34-20 的螢幕擷圖  
記得幫點擊部落格首頁的廣告,每個各點一下喔,只要點一下就好,感激不盡