2018年1月28日 星期日

Arduino 教學

Arduino 教學

簡易電路(本系列要在不使用Arduino的情況下設計一些簡易的電路)

  1. 簡易電路單元一:LED亮度
  2. 簡易電路單元二:按鈕控制 LED 開或關

Arduino IDE 基礎
  1. Arduino IDE 顯示行號與程式碼摺疊功能
  2. Arduino UNO 硬體直接控制LED燈亮度

 mBlock 設計Arduino程式
  1. mBlock 安裝
  2. mBlock 單元一:控制 Arduino Uno 主板上的 LED
  3. mBlock 單元二:控制 LED 燈亮度
  4. mBlock 單元三:可變電阻控制 LED 燈亮滅
  5. mBlock 單元四:使用蜂鳴器播放旋律
  6. mBlock 單元五:使用光敏電阻控制 LED 燈亮度
  7. mBlock 單元六:傾斜感測器之搖搖樂
  8. mBlock 單元七:按鈕輸入之快按俠
  9. mBlock 單元八:隨音樂舞動的音感LED燈
  10. mBlock 單元九:LED 燈條
  11. mBlock 單元十:模擬閃電之LED燈
  12. mBlock 單元十一:模擬雲朵燈
  13. mBlock 單元十二:主動式紅外線感測器
  14. mBlock 單元十三:光感應開門系統
  15. mBlock 單元十四:RGB LED
  16. mBlock 單元十五:追光自走車
  17. mBlock 單元十六:超音波避障自走車
  18. mBlock 單元十七:藍牙自走車
  19. mBlock 單元十八:藍牙小夜燈
  20. mBlock 單元十九:紅外線循跡自走車
  21. mBlock 單元二十:藍牙雲朵燈
  1. Arduino Esplora碼錶
  2. 燒錄 Bootloader 至 Arduino Uno R3 上的 atmega328
  3. Arduino 心跳感測器
  4. Arduino 心跳感測器 Part 2:顯示心跳到LCD
  5. Arduino 紅外線自走車
  6. Android 藍芽App 控制Arduino LED
  7. Arduino 藍芽自走車
  8. Arduino 記憶遊戲
  9. Moto Blockly 編輯器
  10. 離線板 Arduino 網頁積木編輯器
  11. Arduino Nano 藍牙小夜燈
  12. Arduino Otto 跳舞機器人
  13. Otto 指令說明
  14. Otto 組裝
  15. 3D 列印四足獸 Mini Quadruped
  16. 雷射切割四足機器人mePed v1.0
  17. 自製Arduino藍牙遙控器
  18. 如何使用 mBlock 與 Arduino Esplora 互動
  19. mBlock Scratch Extension for Otto Robot
  20. 當彈珠台遇到了arduino 之mBlock程式設計

2018年1月3日 星期三

你好:

你好:



Best Regards       祝事事如意,闔家平安
Chen Yu Liang      陳有量敬上
╭╮☆╭╧╮╭╧╮╭╧╮╭╧╮╭╮☆〞  
╰幸╮║送│║來│║祝│║福│╰快╮
☆╰福╘∞╛╘∞╛╘∞╛╘∞╛☆╰樂
(O)04-26562850-204or231梧棲國中
(FAX)04-26573633

0963786256
email:cyl62@wcjs.tc.edu.tw;chenyuliang.tw@gmail.com
google talk:chenyuliang.tw

2018年1月2日 星期二

2.Install vsftpd for CentOS 7

# yum install vsftpd ftp
# vim /etc/vsftpd/vsftpd.conf
----------------------------------------
anonymous_enable=NO #不讓路人登入
local_enable=YES
write_enable=YES #讓登入者寫入資料YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to FTP service.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list #將允許登入的帳號寫在此檔案
listen=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
----------------------------------------
配置文件最后添加
allow_writeable_chroot=YES
要不然
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
如果/etc/vsftpd/chroot_list不存在,需要建文件
vim /etc/vsftpd/chroot_list

:wq直接保存并退出就行。
# systemctl restart vsftpd
# systemctl enable vsftpd
設定防火牆
# firewall-cmd --permanent --add-port=21/tcp
# firewall-cmd --permanent --add-service=ftp
# firewall-cmd --reload
建立ftp user, 並change shell
# useradd ftpuser01
# passwd ftpuser01
# chsh -s /sbin/nologin ftpuser01
Enable SELinux role
# setsebool -P allow_ftpd_full_access 1
# setsebool -P ftp_home_dir 1
Review config
# egrep -vi '^#|^$' /etc/vsftpd/vsftpd.conf

2.SSH 基本設定--只允許管理者使用 ssh 登入

SSH 基本設定
新增管理者帳號:
    useradd sysadm
    passwd sysadm
注意:這裡是以 sysadm 為例,當然您可以取自己喜歡的名稱,不過文件後續所用到的所有 sysadm 字眼,記得要換成您自取的帳號
只允許管理者使用 ssh 登入:
1.
    cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

    vi /etc/ssh/sshd_config
    AllowUsers sysadm
    #在檔案最後面加上這一行,這樣就只有 sysadm 可以使用 ssh 連線了
    #若要設定多人,就用空格隔開:AllowUsers sysadmsysadm2
注意:上面這個設定很重要,建議一定要做
重新讀取 ssh 設定檔:
如何禁止從遠端(SSH)以ROOT登入:修改 /etc/ssh/sshd_config
1. 找到檔案 /etc/ssh/sshd_config

2. 修改其中的

#PermitRootLogin yes

改為

PermitRootLogin no (注意開頭不要有井字號 #)


2. 
    /etc/rc.d/init.d/sshd restart
用 sysadm 帳號登入後,再用 su - 指令變成 root
OpenSSH 官方文件:http://www.openssh.com/manual.html

sfs3 移機

新主机上安裝好LAMP
console 連入mariadb
#mysql -u  root -p
>create database sfs3;
>GRANT ALL PRIVILEGES ON sfs3.*  TO 'sfs3man'@'localhost' IDENTIFIED BY 'PASSWORD';

>use mysql;   觀察mysql.user
 >describe mysql.user;
>select user from mysql.user;

更新密碼
>update user set password=PASSWORD("NEW_PASSWORD") where User='sfs3man';
> flush privileges;
> exit

以sfs3man連入mariadb 看看吧...

RESTORE to new machine
將/var/www/html/sfs3 打包及dump出來的sfs3db.sql 一起上傳到新机器
sfs3.tar.gz 解壓到/var/www/html
#tar zxvf sfs3.tar.gz -C /var/www/html/
chown -R apache:apache /var/www/html/sfs3
chmod 644 /var/www/html/sfs3/include/config.php
chown root.root  /var/www/html/sfs3/include/config.php
讓config.php 為唯讀且屬root
chmod -R 777 /var/www/html/sfs3/data/
更改include/config.php的ip 為新机的
mysql -u root -p sfs3 < sfs3db.sql

163.17.209.5 163.17.209.1 /etc/hosts

vim /etc/hosts
##########################################################
http://springsfeng.iteye.com/blog/1702442
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 www5.wcjs.tcc.edu.tw www5 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6
163.17.209.5 mail.wcjs.tcc.edu.tw mail
#########################################################
vim /etc/resolv.conf
#######################################################################
DNS{1,2}=<address>
主/輔DNS的地址,如果PEERDNS=yes,會把這裡的值自動寫到/etc/resolv.conf
#######################################################################

設定 /etc/resolv.conf 檔案

#########################################################
domain wcjs.tc.edu.tw
nameserver 163.17.209.1
nameserver 163.17.40.1
nameserver 168.95.1.1
search wcjs.tc.edu.tw


######################################################
vim /etc/host.conf
######################################################
  1 ###名称解释顺序
  2 order hosts,bind
  3 ####允许主机拥有多个IP地址
  4 multi on
  5 ####禁止IP地址欺骗
  6 nospoof on

######################################################
vim /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=dns.wcjs.tc.edu.tw
#######################################################

檢查下列設定檔
vim /etc/modprobe.conf
alias eth0 skge
alias eth1 r8169
???????
alias scsi_hostadapter ahci
alias snd-card-0 snd-hda-intel
options snd-card-0 index=0
options snd-hda-intel index=0
remove snd-hda-intel { /usr/sbin/alsactl store 0 >/dev/null 2>&1 || : ; }; /sbin/modprobe -r --ignore-remove snd-hda-intel
#############################################################
vim /etc/sysconfig/network-scripts/ifcfg-eth0 1
# Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller
2 DEVICE=eth0
3 BOOTPROTO=static none
4 BROADCAST=163.17.209.255
5 HWADDR=00:24:8C:5E:6D:A6
6 IPADDR=163.17.209.1
7 IPV6INIT=yes
8 IPV6_AUTOCONF=yes
9 NETMASK=255.255.255.0
10 NETWORK=163.17.209.0
11 ONBOOT=yes
12 GATEWAY=163.17.209.254
13 TYPE=Ethernet
####################
###########################################
PEERDNS=yes
DNS1=202.196.16.3

PEERDNS=<answer>
yes 如果在本接口配置文件中使用了DNS指令,會自動修改/etc/resolv.conf的設定以保持一致。
DNS{1,2}=<address>
主/輔DNS的地址,如果PEERDNS=yes,會把這裡的值自動寫到/etc/resolv.conf
#######################################################################
DEVICE="eth0"
HWADDR="1C:BD:B9:D7:8D:17"
NM_CONTROLLED="yes"
ONBOOT="yes"
IPADDR="163.17.209.6"
GATEWAY="163.17.209.254"
#2 DEVICE=eth0
BOOTPROTO="static"
BROADCAST="163.17.209.255"
#5 HWADDR=00:24:8C:5E:6D:A6
#6 IPADDR=163.17.209.1
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
NETMASK="255.255.255.0"
NETWORK="163.17.209.0"
#11 ONBOOT=yes
GATEWAY="163.17.209.254"
TYPE="Ethernet"
 #######################################################################
PEERDNS="yes"
DNS1="163.17.209.1"
DNS2="163.17.40.1"
DNS3="168.95.1.1"
#######################################################################
#######################################################################
DNS{1,2}=<address>
主/輔DNS的地址,如果PEERDNS=yes,會把這裡的值自動寫到/etc/resolv.conf
#######################################################################

1.centos 7 LAMP-sfs3 安裝

LAMP 安裝
安裝   CentOS-7-x86_64-Minimal-1511.iso 
yum update -y
##cron
yum install -y mlocate wget zip unzip ntpdate firewalld vim 

yum install -y vim-X11 vim-common vim-enhanced vim-minimal 

調校設定
vim /etc/vimrc  
添加以下內容(比對一下內容,有些已存在配置檔內)
set number " 顯示列號 nu / nonu
set hlsearch "
高亮度反白標記搜尋到的字串 hlsearch / nohlsearch
set backspace=2 "
編輯模式下可用倒退鍵刪除, 0 1 :僅可刪除剛輸入的字元, 無法刪除原本就已經存在的文字,2:任意刪除

set autoindent " 自動縮排 autoindent / noautoindent
set showmode " 顯示左下方的 --INSERT-- 之類的狀態說明列
set bg=dark " 顯示不同的底色色調 light / dark
syntax on " 進行語法檢驗,顏色顯示。
highlight Comment ctermfg=cyan " 設定註解的顏色
highlight Search term=reverse ctermbg=4 ctermfg=7 " 設定搜尋到的字串顏色
set tabstop=4 " 設定 tab 鍵的字元數
set backup " 自動儲存備份檔,更動任何一個檔案時,原始檔案會被另存成一個檔名為 『目前檔名~』 的檔案,

保留原始檔案內容。

vim /etc/sysconfig/selinux
enforcing  --> disabled
setenforce 0

ntpdate time.stdtime.gov.tw | hwclock -w

yum install -y httpd 
systemctl start httpd.service
systemctl status httpd.service
systemctl enable httpd.service

yum install -y mariadb-server mariadb
systemctl start mariadb.service 
systemctl status mariadb.service 
systemctl enable mariadb.service

mysql_secure_installation

yum install -y php php-gd php-mbstring php-mysql php-xml 
systemctl restart httpd.service
php -v

systemctl start firewalld.service 
systemctl status firewalld.service 
systemctl enable firewalld.service

firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --add-service=mysql --permanent --zone=public  

firewall-cmd --reload

check Request test webpage


vim /etc/locale.conf
LANG="zh_TW.Big5“
cp /163.17.209.242/etc/locale.conf /etc/.

vim /etc/httpd/conf/httpd.conf
Options Indexes FollowSymLinks  Options FollowSymLinks
AddDefaultCharset UTF-8  AddDefaultCharset big5
cp /163.17.209.242/etc/httpd/conf/httpd.conf /etc/httpd/conf/.

vim /etc/my.cnf
[mysqld]
default-storage-engine=MyISAM
###在安裝sfs前做好,sh setup.sh前做好
cp /163.17.209.242/etc/my.cnf /etc/.

vim /etc/php.ini
error_reporting = E_ALL & ~E_NOTICE

error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT
date.timezone = "Asia/Taipei“
short_open_tag = On
max_execution_time = 300
upload_max_filesize = 20M
post_max_size = 20M

cp /163.17.209.242/etc/php.ini /etc/.

yum install -y php-pear php-bcmath
pear -d preferred_state=beta install Crypt_DiffieHellman
pear install Crypt_CBC
rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epelrelease-7-8.noarch.rpm

yum install -y php-mcrypt

Get the sfs_stable5 tarball
cd /var/www/html
wget http://sfscvs.tc.edu.tw/sfs_stable5.tar.gz

tar zxvf sfs_stable5.tar.gz
ls

sh setup.sh

http://localhost.localdomain/sfs3/install.php

chmod 644 /var/www/html/sfs3/include/config.php
rm -f /var/www/html/sfs3/install.php

cp /var/www/html/sfs3/include/config.php /var/www/html/config.php.20160811.php

1-DRBL的安裝-2

四、DRBL的安裝

minimal centos 6.8-success  7.3-test iso 安裝
中文,台灣,350g,8g swap,/ 340g,16g-8g ram,美式英文鍵盤,裝5張網卡

yum -y install openssh-server
systemctl restart sshd


########################
vim /etc/selinux/config
SELINUX=disabled
enforced-->disabled
########################

yum -y update
yum install -y setuptool ntsysv system-config-*
yum install -y vim wget mlocate
cd /tmp
rm -f GPG-KEY-DRBL 
wget http://drbl.nchc.org.tw/GPG-KEY-DRBL
rpm --import GPG-KEY-DRBL
rpm -qa gpg-pubkey

4559 9AFD
yum install perl-Digest-SHA1



http://free.nchc.org.tw/drbl-core/x86_64/RPMS.drbl-stable/

drbl-2.25.10-drbl1.noarch.rpm
clonezilla-3.27.16-drbl1.noarch.rpm
partclone-0.2.91-drbl1.x86_64.rpm
partimage-0.6.9-4drbl.x86_64.rpm
udpcast-20110710-1drbl.x86_64.rpm
ntfsprogs-2.0.0-9drbl.x86_64.rpm
yum -y install 

yum -y install syslinux-nonlinux syslinux anaconda system-config-kickstart


drblsrv -i
失敗
yum remove syslinux
drblsrv -i
成功
rpm -ivh syslinux-4.05-1drbl.x86_64.rpm
rpm -ivh syslinux-devel-4.05-1drbl.x86_64.rpm

drblpush -i

有多少台DRBL用戶端的電腦(也就是給學生使用的電腦)連接到DRBL伺服器網路連接埠 eth1 ?
請輸入數字:
[1] 200

------------------------------------------------------
本系統中,有3種模式可以提供無碟的Linux服務給用戶端使用:
[0] 完全DRBL模式(Full DRBL mode),每個用戶端都有自己的/etc與/var (基於NFS).
[1] 單一系統印象檔模式(DRBL SSI, single system image) , 每個用戶端都使用tmpfs(以記憶體來當虛擬磁碟)的/etc與/var。此模式中,DRBL伺服器的負載與所需要的硬碟空間會少一些。但是請注意!在這個模式中,(a)用戶端電腦的記憶體建議至少要256MB以上,(b)用戶端電腦的系統設定檔並不會回存到伺服器中。所有開機後的系統設定只會使用一次然後關機後就消失。此外,如果你有修改過任何範本機器的設定檔(也就是位於/tftpboot/nodes下的設定檔),你要再執行drbl-gen-ssi-files來產生新的tarball範本檔於/tftpboot/node_root/drbl_ssi/中,(c) 如果你要針對某些用戶端設定一些特別的檔案,可以參考/tftpboot/node_root/drbl_ssi/clients/00_README。
[2] 不要提供無碟Linux服務給用戶端使用.
你要選用哪一個模式?
[0] 2

用戶端電腦開機,出現提示符號時要等待多少個0.1秒?
[70] 10


4步安裝法

步驟1 - 安裝您的GNU/Linux套件。

  • 另外,請設定好所有網路卡的IP位址,我們後面用的是eth0對外,其餘的eth1以後的對內部使用(請務必將這些內部使用的網路卡IP都設成192.168.x.x, 172.16-31.x.x或是10.x.x.x等的private IP,例如eth1:192.168.101.254, eth2:192.168.102.254, eth3:192.168.103.254...);請注意一個原則,private IP (192.168.x.x)將會被拿來做DRBL環境的連結用。安裝時也建議關閉防火牆,等DRBL安裝完之後再來設定防火牆。另外,如果你的GNU/Linux安裝的時候自動幫你裝了NetworkManager,且被自動啟動的話,建議關閉或者移除,因為當作伺服器的機器並不適合使用NetworkManager。舉例而言,Fedora的話,可以這樣處理: sudo chkconfig --del NetworkManager; sudo chkconfig --del NetworkManagerDispatcher,然後啟動chkconfig network on。Ubuntu或者Debian之類的套件,先手動安裝圖形的網路設定程式: "sudo apt-get install gnome-network-admin",然後直接移除network manager: "sudo apt-get --purge remove network-manager",重新開機後,執行"network-admin"(或者在Gnome桌面選擇"系統"-> "管理" -> "網路")就可以設定固接網路。
  • 其他注意事項:
  • 安裝完之後,如果您的系統沒有開啟對硬碟 DMA 支援,建議您開啟以增快server硬碟讀取速度。您可以用"hdparm /dev/hdx"來看using_dma是否on或是off,如果是off的話,可以執行"hdparm -d1 -c3 -k1 /dev/hdx"而開啟它,以上請將/dev/hdx改成您的server硬碟裝置檔,一般是/dev/hda。如果要以後每次開機之後都能啟動dma,以Fedora/RedHat/Mandrake為例,您可以在/etc/sysconfig/harddisks中將# USE_DMA=1的註解"#"拿掉變成USE_DMA=1。
  • 如果你的DRBL主機只有一張網路卡,或是為了擴大server對內的網路流量,你的eth0也可以用IP alias設成兩個IP,一個(eth0)供server連到public Internet用,另外一個(eth0:1)供DRBL環境用,RedHat-like套件的eth0:1設定方法見此<注意>如果你使用alias IP的話,以本例,DRBL server會發IP address給連結在eth0網段上的電腦,所以如果你步驟三的時候不鎖定用戶端電腦的MAC address,這樣serer就會發IP address給任何電腦。有時候這樣會是一種困擾。建議你非必要不要用alias IP

  • 步驟2 - server上相關套件的安裝

    • RedHat/Fedora/CentOS
      • 如果您不是系統管理者(root),執行指令"su root" (然後輸入root的密碼),如果你的套件沒有設定root密碼,可以用"sudo su " (然後該使用者的密碼)以便切換成root
      • 請先安裝DRBL的金鑰(ID: 4096R/45599AFD, Key fingerprint = 54C0 821A 4871 5DAF D61B FCAF 6678 57D0 4559 9AFD),這樣可以進一步確認您安裝的程式是本計畫所發行的程式。有兩個方式可以來安裝。方法1: "rm -f GPG-KEY-DRBL; wget http://drbl.nchc.org.tw/GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL" 。方法2: 由key server下載,KeyID是45599AFD,可以這樣執行"gpg --keyserver subkeys.pgp.net --recv-key 45599AFD",然後再執行"gpg -a --export 45599AFD > GPG-KEY-DRBL; rpm --import GPG-KEY-DRBL". 如果你要查詢系統是否已經有匯入數位簽章的話,可以這樣查詢: rpm -qa gpg-pubkey*。
      • 下載DRBL的RPM檔(檔名如drbl-1.9.6-35.i386.rpm):穩定版測試中的版本,或是不穩定的版本
      • 執行"rpm -Uvh drbl-XXX.i386.rpm"或者"yum install drbl-XXX.i386.rpm" (如果你的套件有yum的話)來安裝drbl程式,drbl-XXX.i386.rpm就是您剛剛下載的檔案,如果您是下載穩定版的話,就執行"rpm -Uvh drbl-current.i386.rpm"或者"yum install drbl-current.i386.rpm"。
      • :由於drbl程式使用到一個perl的模組,一般套件都會內建安裝perl-Digest-SHA1這個package,如果您的系統中沒有的話,請自己先裝。以Fedora 8為例,可以這樣安裝(1) "yum install perl-Digest-SHA1" 或者(2) "rpm -Uvh http://opensource.nchc.org.tw/fedora/linux/releases/8/Fedora/i386/os/Packages/perl-Digest-SHA1-2.11-4.fc8.i386.rpm"

    • <步驟2b>
      • 場景1: 假如對外網路順暢,你的套件有提供apt, urpmi或是yum的儲藏庫: 執行"drblsrv -i"。注意"-i"前面有個空格。執行的例子請按這裡。原則上,如果您不確定的地方,您可以直接按Enter使用預設值即可。

    • <步驟3a>瞭解您的環境以及設定後,執行
    • drblpush -i
      請注意"-i"前面有個空格。然後程式會自動偵測系統,找到參數,系統沒有設定的參數,程式會要求您輸入。執行的例子請按這裡。原則上,如果您不確定的地方,您可以直接按Enter使用預設值即可。
    • <注意>往後有新增加的client電腦或是server上新安裝了軟體等,請再執行一遍"drblpush -i"或是"drblpush -c /etc/drbl/drblpush.conf"(這個會讀取前一次存下來的設定檔)以便重新部署檔案給您的client電腦用。[註]執行完這個指令你的用戶端有可能需要重新開機才能正常運作。
    • <注意>安裝好DRBL相關這些程式後,不建議您開您的GNU/Linux啟套件自動更新的功能,因為有可能更新後,伺服器的檔案和用戶端的檔案版本不一致,如果您要開啟自動更新功能的話,必須再每次更新後,再自動執行一次上述的步驟。另外,如果要升級DRBL相關的程式,請依照後面的升級方式來進行,不適宜讓套件自動把DRBL相關程式升級。


    • drblpush -i
  • rpm -e syslinux-nonlinux syslinux anaconda system-config-kickstart
  • rpm -ivh syslinux-4.05-1drbl.x86_64.rpm

  • YUM 移除套件
    yum remove [package_name]

  • 新版未安裝-uefi-mkimage--


  •  drblsrv -i
  • *****************************************************.
  • 建立PXE網路開機的設定檔...
  • Copying pxelinux.0, gpxelinux.0, menu.c32, vesamenu.c32, chain.c32, mboot.c32, sanboot.c32 and memdisk to /tftpboot/nbi_img...
  • Copying memtest86+ to /tftpboot/nbi_img...
  • Copying FreeDOS files to /tftpboot/nbi_img/...
  • Generating default pxelinux config (/tftpboot/nbi_img/pxelinux.cfg/default)...
  • Use com32 module: vesamenu.c32
  • Adding menus for DRBL, local boot, memtest86+, FreeDOS...
  • done!
  • Command grub2-mkimage or grub-mkimage not found!
  • Skip creating grub2 uEFI network boot image.

  • how to resolve it?
  • *****************************************************.

Install BIND-centos 7.2

yum -y install bind bind-utils

cd /163.17.209.1/named
/bin/cp /163.17.209.1/etc/named.conf    /etc/.  -f 
/bin/cp /163.17.209.1/etc/named.rfc1912.zones    /etc/.  -f 
/bin/cp /163.17.209.1/named/db.wcjs.tc.edu.tw   /var/named/.  -f
/bin/cp /163.17.209.1/named/db.163.17.209        /var/named/.  -f
/bin/cp /163.17.209.1/named/wcjs.ip6.rev          /var/named/.  -f
/bin/cp /163.17.209.1/named/dummy-block /var/named/.  -f

cd /var/named
chown root:named  /var/named
chown root:named  db.wcjs.tc.edu.tw
chown root:named  db.163.17.209
chown root:named  wcjs.ip6.rev

systemctl start named
systemctl status named
systemctl enable named 

firewall-cmd --add-service=dns --permanent 
firewall-cmd --reload 

yum -y install bind-chroot

/usr/libexec/setup-named-chroot.sh /var/named/chroot on 

systemctl stop named 
systemctl disable named 
systemctl start named-chroot 
systemctl status named-chroot
systemctl enable named-chroot 

ll /var/named/chroot/etc 

ll /var/named/chroot/var/named 

firewall-cmd --add-service=dns --permanent 
firewall-cmd --reload

mysqldump -u root --default-character-set=utf8 -p ga

mysqldump  -u root --default-character-set=utf8 -p ga
chown -Rf apache:apache images/
chown -f apache:apache attachments/

2018年1月1日 星期一

3.學務系統 SFS3 LDAP 設定(CENTOS7)-潘爸的喃喃自語

##1.在CentOS7上安裝OpenLDAP Server

yum -y install openldap-servers openldap-clients
rm -rvf /etc/openldap/slapd.d
mkdir /etc/openldap/slapd.d
cp /usr/share/openldap-servers/slapd.ldif /etc/openldap/slapd.conf

vim /etc/openldap/slapd.conf


###把所有的cn=Manager,dc=my-domain,dc=com改成cn=root,dc=wcjs,dc=tc,dc=edu,dc=tw
###把所有的dc=my-domain,dc=com改成dc=wcjs,dc=tc,dc=edu,dc=tw


cd /etc/openldap
slappasswd > password.txt

tail password.txt
###(把內容複製到記事本備用)

vim /etc/openldap/slapd.conf

###把所有的dc=my-domain,dc=com改成dc=wcjs,dc=tc,dc=edu,dc=tw 然後結尾補上

olcRootPW: {SSHA}xxxxxxxxxxxxxxxxxxxxxxxxxx

###PW:後面只有空一格半形space bar(從剛剛記事本那邊貼過來) 

/usr/libexec/openldap/convert-config.sh
head -20 /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{[12]*
slaptest -u

### config file testing succeeded

rm -rvf /var/lib/ldap/*
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
rm -rvf certs
mkdir certs
/usr/libexec/openldap/create-certdb.sh

###Creating certificate database in '/etc/openldap/certs'.

/usr/libexec/openldap/generate-server-cert.sh

###Creating new server certificate in '/etc/openldap/certs'.

chown ldap:ldap -R /var/lib/ldap/
systemctl start slapd
slaptest

###config file testing succeeded

systemctl enable slapd
firewall-cmd --permanent --zone=public --add-port=389/tcp
firewall-cmd --reload
ldapwhoami -WD cn=root,dc=wcjs,dc=tc,dc=edu,dc=tw

###Enter LDAP Password:
###dn:cn=root,dc=wcjs,dc=tc,dc=edu,dc=tw

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

vim domain.ldif

dn: dc=wcjs,dc=tc,dc=edu,dc=tw
objectClass: dcObject
objectclass: organization
dc: wcjs
o: wcjs

dn: ou=teacher,dc=wcjs,dc=tc,dc=edu,dc=tw
objectClass: organizationalUnit
ou: teacher
description: teachers account

dn: ou=student,dc=wcjs,dc=tc,dc=edu,dc=tw
objectClass: organizationalUnit
ou: student
description: students account

###(注意上面的句子一定要分成三段,從講義直接貼出來沒有分段會有錯誤)

ldapadd -D cn=root,dc=wcjs,dc=tc,dc=edu,dc=tw -W -f domain.ldif

###Enter LDAP Password:
adding new entry "dc=wcjs,dc=tc,dc=edu,dc=tw"
adding new entry "ou=teacher,dc=wcjs,dc=tc,dc=edu,dc=tw"
adding new entry "ou=student,dc=wcjs,dc=tc,dc=edu,dc=tw"

##1.2install -y phpldapadmin########
yum install -y phpldapadmin

vim /etc/phpldapadmin/config.php

:set number
###(顯示行號)
(找到397行改下面這樣)
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');

vim /etc/httpd/conf.d/phpldapadmin.conf

<Directory /usr/share/phpldapadmin/htdocs>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
Require ip 163.17.209.0/24
###(在Require local之後加入上面這行,這是限制只有指定的ip可以存取phpldapadmin (突然覺得phpmysqladmin也該這樣)

systemctl start httpd
systemctl enable httpd
firewall-cmd --permanent --zone=public --add-port=80/tcp
reboot
#################################

####vim /etc/httpd/conf.d/phpldapadmin.conf
登入 

http://ldap-server-ip/phpldapadmin

帳號: cn=root,dc=wcjs,dc=tc,dc=edu,dc=tw

(登入如出現密碼錯誤,請確認是否密碼句尾有空白字元,是的話要可能得從前面步驟再來一次)

到這邊ldap server部分就ok了
1.3再來要看郭老大這篇,新增三個模組到學務系統
http://www.wpjh.tc.edu.tw/joomla/index.php/2012-04-25-23-06-11/2012-04-30-07-56-38/2013-03-25-13-04-19/367-20130502

cd /var/www/html/sfs3/modules/
wget http://www.wpjh.tc.edu.tw/joomla/attachments/article/367/stu_ldap_pass.zip
wget http://www.wpjh.tc.edu.tw/joomla/attachments/article/367/manage_ldap.zip
wget http://www.wpjh.tc.edu.tw/joomla/attachments/article/367/ch_ldap_pass.zip

unzip stu_ldap_pass.zip
unzip manage_ldap.zip
unzip ch_ldap_pass.zip

chown apache.apache stu_ldap_pass -R
chown apache.apache  manage_ldap -R
chown apache.apache  ch_ldap_pass -R

然後去學務系統新增這三個模組,
去模組權限管理的預設值設定參數
(ip可以設定127.0.0.1)
把自己的帳號啟用

最後參考這篇去改FG110C就可以了(得先照講義把SSLVPN設定到本機帳號可以登入,再看這篇去新增LDAP群組)
http://www.wpjh.tc.edu.tw/joomla/index.php/2012-04-25-23-06-11/2012-04-30-07-56-38/2013-03-25-13-04-19/381-20130630

##2.匯出資料
slapcat -n 2 > 20160820ldap.ldif   
##將LDAP的資料庫資料匯出到20160820ldap.ldif檔

##在CenetOS7,openldap-servers-2.4以上版本,第一個db是不能匯出的,必需下 -n 2的參數

3.匯入資料##/home/lia/slapcat/y/20150301ldap.ldif#####
###########################
ldapsearch -x -b "dc=wcjs,dc=tc,dc=edu,dc=tw"
###########################
rm -rf /var/lib/ldap/*
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
###匯入資料####/home/lia/slapcat/y/20150301ldap.ldif##
###匯入資料####/home/lia/slapcat/y/20150301ldap.ldif##
slapadd -v -l /home/lia/slapcat/y/20150301ldap.ldif 

chown -R ldap:ldap /var/lib/ldap
systemctl restart slapd
systemctl enable slapd
firewall-cmd --permanent --zone=public --add-port=389/tcp
firewall-cmd --reload


reboot
############################
4.在CentOS7上移除OpenLDAP Server
systemctl stop slapd
systemctl disable slapd
yum -y remove openldap-servers openldap-clients
rm -rvf /etc/openldap/
rm -rvf /var/lib/ldap/


reboot
#################

RHEL / CentOS 7 設定網路固定 IP

RHEL 及 CentOS 會自動偵測 DHCP 取得 IP, 如果要改成使用固定 IP, 除了可以像以前一樣修改設定檔外, 在 CentOS 7 也可以用內建的 Network Manager 設定網路。
以下會提供兩種設定固定 IP 的方法, 並以網卡 “eno16777736” 作為例子。
使用 Network Manager 設定固定 IP
雖然 RHEL / CentOS 7 預設啟動了 Network Manager, 但在設定前也可以先確定 Network Manager 有啟動:
$ systemctl status NetworkManager.service
看到綠色的 active (running), 那便表示 Network Manager 正在執行。
要檢查那一張網卡由 Network Manager 管理, 可以用 nmcli 指令:
$ nmcli dev status
由 Network Manager 管理的網卡會顯示 “connected”.
使用 Network Manager 前, 先安裝 nmtui (Network Manager Text User Interface):
# yum install NetworkManager-tui
然後就可以使用 “nmtui” 指令, 例如要設定 eno16777736 網卡, 輸入:
# nmtui edit eno16777736
然後用鍵盤的方向鍵, 移到 “IPv4 CONFIGURATION” 的 “Automatic”, 按 Enter 設定為 Manual, 按 “Show” 便會顯示設定內容。nmtui-01

在 Address 及 Gateway 設定網路:nmtui-02
設定好後, 移到最下面按 “OK”, 最後重新啟動網路便可以了:
# systemctl restart network.service
要檢查設定是否生效, 可以用以下指令:
# ip add
不使用 Network Manager 設定固定 IP
由於 CentOS 7 預設使用 Network Manager 管理網路, 以下除了設定固定 IP 外, 也會設定該網卡不受 Network Manager 管理。
開啟檔案 /etc/sysconfig/network-scripts/ifcfg-eno16777736, ifcfg-eno16777736 名稱會根據網卡名稱有所不同, 其中 eno16777736 是網卡名稱:
# vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
首先將 BOOTPROTO=dhcp 改成 BOOTPROTO=static, 以及加以以下三行:
IPADDR=192.168.0.100
NETMASK=255.255.255.0
NM_CONTROLLED=no
上面的 IPADDR 是需要使用的固定 IP, 而 NM_CONTROLLED=no 是設定這張網卡不受 Network Manager 管理, 而直接讀取這個設定檔內容。
改成類似這樣:
最後重新啟動網路便可以了:
# systemctl restart network.service