內容選單標籤

2020年10月13日 星期二

JavaScript

 <!DOCTYPE html>

<html>

    <head>

        <meta charset="utf-8">

        <title></title>

        <script>

            document.write("可以寫 JavaScript 的地方1:head 標籤內");

        </script>

        

    </head>

    <body>

        <header></header>

        <section>

            <script>

                document.write("可以寫 JavaScript 的地方2:body 標籤內");

            </script> 


            <script src="hello.js"> 

                document.write("Test!")               

            </script> 

            

            <script>

                var ret=alert("警告!");

                document.write("alert!結束...")                   

            </script>


            <script>

                var ret=confirm("確認?")

                document.write("<p>confirm結果傳回:"+ret+"</p>");                

            </script> 

            

            <script>

                var ret=prompt("請輸入帳號:");

                document.write(""+ret);

            </script>

                      

        </section>

        <footer></footer>


    </body>

</html>

-----------------------------------------------------------------2020-10-16

https://www.youtube.com/watch?v=35sPvHtT8iY&list=PLGBY4JjI_1Pgeq1vqOAZVlM7FzCrKkK-c&index=11

---------------------------------------------------------------------


var todos=["do1","do2","do3"]        //Array       


console.log(todos)                           //顯示
["do1", "do2", "do3"]

todos
["do1", "do2", "do3", "newdo"]

todos.push("newdo")                          //新增
console.log(todos)
["do1", "do2", "do3", "newdo"]


todos[2]="updated"                            //修改
console.log(todos)
["do1", "do2", "updated", "newdo"]

todos.splice(3,1)                                     //刪除
console.log(todos)
["do1", "do2", "updated"]



------------------------------------------------------------------函式

var todos=["k1","k2","k3"]

function displayTodos(){

    console.log(todos)

}


displayTodos()
["k1", "k2", "k3"]



function addTodos(todo){

    todos.push(todo)

    displayTodos()    

}

addTodos("Addtest")

["k1", "k2", "k3", "Addtest"]



function changeTodo(position,newTodo){

    todos[position]=newTodo

    displayTodos()

}

changeTodo(0,"updatedTodo")
["updatedTodo", "k2", "k3", "Addtest"]



function deleteTodo(position){

    todos.splice(position,1)

    displayTodos()

}


deleteTodo(2)
["updatedTodo", "k2", "Addtest"]



----------------------------------------------------------------物件


var person={

    name:"John",                   //屬性

    sayName:function(){      //方法

        console.log("Hi my name is",this.name)

    }


person.name
"John"


person.sayName()
Hi my name is John



----------------------------------------------------------------

var todos={

    todos:["k1","k2","k3"],

    displayTodo:function(){

        console.log(this.todos);

    },

       addTodo:function(todo){

        this.todos.push(todo);

        this.displayTodo()

    },

        changTodo:function(position,newvalue){

        this.todos[position]=newvalue;

        this.displayTodo()

    },

        deleteTodo:function(position){

        this.todos.splice(position,1);

        this.displayTodo()

    }


todos.displayTodo()
["k1", "k2", "k3"]


todos.addTodo("newk")
["k1", "k2", "k3", "newk"]


todos.changTodo(0,"updated")
["updated", "k2", "k3"]


todos.deleteTodo(0)
["k2", "k3"]





2020年10月3日 星期六

HTML5+CSS3+JavaScript

 

---------------------HTML5

HTML a 元素   

anchor 建立了通往其他頁面、檔案、Email 地址、或其他 URL 的超連結。


src --> img標籤,script標籤,iframe標籤;

是英語單詞source的縮寫

href   --> link標籤,a標籤

是Hypertext Reference的缩寫。 意思是指定超鏈結目標的URL。


rel

relation 關聯


HTML img alt -->圖片替代文字。 alternative 兩者(或若干)中擇一的;替代的;

HTML img title -->滑鼠移經顯示文字標示


------範例


<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
        <link rel="stylesheet" href="09kkStyle.css">
        <style>
            body{
                width: 90%;
                margin: 0 auto;
                background-color: #EEFFBB;
                font-size: 1em;
                font-family: 新細明體,serif;
                color: #333333;
                line-height: 1.5em;
                letter-spacing: 0.05em;
            }
            header, section, footer{
                background-color: #F0F8FF;                              
                border-radius: 5px;                
                border: 1px solid #CCCCCC;
                box-shadow: 5px 0px 10px -3px #AAAAAA;
            }
            header p{
                font-size: 3.5em;
                font-family: 微軟正黑;
                color: #F0F8FF;
                text-align: center;
                letter-spacing: 1em;
                text-shadow: -2px -2px 0px #FFFFFF, 2px 2px 0px #444444, 2px 2px 6px #888888 ;
                margin-top: 40px;
            }
            #topnav{
                background-color: #FFF0E6;
                border-top: 1px dashed #FF9F60;
                border-bottom: 1px dashed #FF9F60;
                height: 40px;
            }           
            #topnav ul {
                float: left;
                left: 16%;
                position: relative;
                margin: 5px;               
            }
            
            #topnav li{
                float: left;
                padding: 4px;
                background-color: #FF6600;
                list-style-type: none;
                width: 85px;
                text-align: center;
                margin: 0 5px 0 0;
            }

            #topnav a{
                font-family: 新細明體;
                font-size: 1.1em;
                font-weight: bold;
                color: #FFFFFF;
                text-decoration: none;
            }
            
            #topnav a:hover{
                font-size: 1.2em;
                color: #000000;
                text-decoration: underline;
            }
            
            section{
                clear: left;
            }
            .Title01{
                font-size: 2em;
                font-family: 標楷體;
                text-shadow: 0 0 0.2em #87F, 0 0 0.2em #87F, 0 0 0.2em #87F;
            }
            figure {
                display:inline ;
                border: 1px solid #BFBFBF; 
                box-shadow: 2px 2px 3px rgba(135, 139, 133,0.4);
                float:left;
                margin: 0 15px;
            }

            figure img{
                display: table-row;
                margin: 5px 5px 10px 5px;
            }

            figcaption {
                display:block ;
                background-color: #145A32;
                color: #FFFFFF;
                font: italic smaller sans-serif;
            }
            #p1{
                margin: 15px ;
                text-align:justify;
            }
            #p2{
                margin: 15px;
                text-indent: 2em;
                text-align: justify;
            }
            #float_off{
                clear: both;
            }
            footer{               
                text-align: center;                
            }
            footer p{
               
                font-size: 1.5em;
                font-weight: bold;
                text-shadow:  1.4px 1.4px 1.3px #333333;
            }

        </style>
    </head>
    <header>
        <p>網站名稱</p>
        <nav id="topnav">
            <ul>
                <li><a href="#">首頁</a></li>
                <li><a href="#">網路學堂</a></li>
                <li><a href="#">蒐羅天下</a></li>
                <li><a href="#">部落格</a></li>
                <li><a href="#">專欄</a></li>
                <li><a href="#">免費廣告</a></li>
                <li><a href="#">下載專區</a></li>
                <li><a href="#">論壇</a></li>
            </ul>


        </nav>
    </header>
    <section>
        <p class="Title01">章節名稱</p>
        <figure>            
            <img src="pic/02.png" > 
            <figcaption>夜宿高山</figcaption>
        </figure>
        <p id="p1">
真的是太厲害了,用手抄寫經文,當成家裡壁紙!台南安南區一位75歲的阿伯,他七八年前退休後,就開始抄寫佛經,當成家裡的壁紙,走進他家,牆壁上、貼滿手寫經文,讓人大開眼界,他受訪時笑著說,對他來講,這也是一種修身養性的方式。經過台南安南區這裡的透天厝,常常有人會被,這醒目的黃色壁紙,給吸引住停下來看,走近一看,上面密密麻麻的,都是用手寫的佛家經文,整整齊齊大小一致,讓人忍不住讚嘆,而作者就是這位已經75歲的徐阿伯。這是他家不管是鐵捲門,或是壁磚上頭有護貝過的紙張,是他製作的佛經壁紙,七八年前他退休後,開始用手抄寫經文,當成修身養性的方式,慢慢地,這些妝點家裡的壁紙,讓看過的人印象深刻,阿伯的家,也成為這個區域,最有特色的房子。真的是太厲害了,用手抄寫經文,當成家裡壁紙!台南安南區一位75歲的阿伯,他七八年前退休後,就開始抄寫佛經,當成家裡的壁紙,走進他家,牆壁上、貼滿手寫經文,讓人大開眼界,他受訪時笑著說,對他來講,這也是一種修身養性的方式。經過台南安南區這裡的透天厝,常常有人會被,這醒目的黃色壁紙,給吸引住停下來看,走近一看,上面密密麻麻的,都是用手寫的佛家經文,整整齊齊大小一致,讓人忍不住讚嘆,而作者就是這位已經75歲的徐阿伯。這是他家不管是鐵捲門,或是壁磚上頭有護貝過的紙張,是他製作的佛經壁紙,七八年前他退休後,開始用手抄寫經文,當成修身養性的方式,慢慢地,這些妝點家裡的壁紙,讓看過的人印象深刻,阿伯的家,也成為這個區域,最有特色的房子。
        </p>
        <p id="p2">
            真的是太厲害了,用手抄寫經文,當成家裡壁紙!台南安南區一位75歲的阿伯,他七八年前退休後,就開始抄寫佛經,當成家裡的壁紙,走進他家,牆壁上、貼滿手寫經文,讓人大開眼界,他受訪時笑著說,對他來講,這也是一種修身養性的方式。
            經過台南安南區這裡的透天厝,常常有人會被,這醒目的黃色壁紙,給吸引住停下來看,走近一看,上面密密麻麻的,都是用手寫的佛家經文,整整齊齊大小一致,讓人忍不住讚嘆,而作者就是這位已經75歲的徐阿伯。
            這是他家不管是鐵捲門,或是壁磚上頭有護貝過的紙張,是他製作的佛經壁紙,七八年前他退休後,開始用手抄寫經文,當成修身養性的方式,慢慢地,這些妝點家裡的壁紙,讓看過的人印象深刻,阿伯的家,也成為這個區域,最有特色的房子。
                    </p>
        <p id="float_off"></p>
    </section>
    <footer><p>CopyRight (c) 2020 GuoChin All Righs Reserved.</p></footer>
</html>




 

2020年9月19日 星期六

CentOS8 參照 2015年7月3日 CentOS7練習


此篇已經重新謄錄完成!!

可以作廢。




HostOS:
windows10
192.168.2.100

若無法 ping :
控制台\系統及安全性\Windows Defender 防火牆-->進階設定-->輸入規則
啟用  檔案及印表機共用(回應要求-ICMPv4-IN)  設定檔:私人   -->啟用規則


GuestOS:
CentOS8
192.168.2.103

# ping 192.168.2.100
PING 192.168.2.100 (192.168.2.100) 56(84) bytes of data.
64 bytes from 192.168.2.100: icmp_seq=1 ttl=128 time=0.367 ms
.
.


----------------------------------------------- 啟用網卡

# ip addr
# ip -s link
# ip link set ens33 up        //啟用網路介面卡   up:開    down:關

# nmcli device status
DEVICE  TYPE      STATE     CONNECTION
ens33   ethernet  已連線    ens33
lo      loopback  不受管理  --

# nmcli device connect ens33        //啟用網卡   停用網卡:disconnect
裝置「ens33」已成功以「9cb77588-c78e-40b0-acbe-3be164c3e385」啟用。


# nmtui        //啟用連線






----------------------------------------------- 路由

# ip route | column -t
default         via  192.168.2.1  dev    ens33   proto  static  metric  100             
192.168.2.0/24  dev  ens33        proto  kernel  scope  link    src     192.168.2.103  metric  100

# ip route | column -t > kkRouteTable.txt
# ls
kkRouteTable.txt
# cat kkRouteTable.txt



# ip -6 route | column -t        //IPv6 Route Table
::1        dev  lo     proto  kernel  metric  256  pref  medium
fe80::/64  dev  ens33  proto  kernel  metric  100  pref  medium



# tracepath 168.95.1.1        //traceroute


# ss -antp |column -t        //對應 netstat -antp



# ss -t


                   




----------------------------------------------- 

# systemctl list-unit-files                     //查詢服務啟動或是關閉狀態,以檔名顯示

# systemctl list-units                           //查詢目前所有已啟動的服務
UNIT                                               LOAD   ACTIVE SUB       DESCRIPTION
...
crond.service                                      loaded active running   Command Scheduler
...
firewalld.service                                  loaded active running   firewalld - dynamic firew>
...
NetworkManager.service                             loaded active running   Network Manager
...
sshd.service                                       loaded active running   OpenSSH server daemon
...



# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-03-03 07:47:29 CST; 1h 40min ago


# systemctl stop firewalld.service                   //立即停止xxx.service
# systemctl start firewalld.service                  //立即啟動xxx.service
# systemctl is-active firewalld.service
active


# systemctl disable firewalld.service            //設定開機不啟動xxx.service
# systemctl enable firewalld.service            //設定開機啟動xxx.service

# chkconfig firewalld off                             //設定 firewalld 開機時不要啟動
# chkconfig firewalld on                             //設定 firewalld 開機時啟動,且不加.service


# systemctl is-enabled firewalld.service
enabled




----------------------------------------------- 

# sestatus
SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
...


# vi /etc/sysconfig/selinux        //關閉SELINUX
...
SELINUX=disabled
...




----------------------------------------------- 

# journalctl               //日誌檢視說明
# journalctl -n10      //列出最後10行資料
# journalctl -xn        //列出最後事件,並提供相關解決問題資訊

# journalctl --follow            //持續列出最後10行事件記錄
-- Logs begin at Tue 2020-03-03 07:47:06 CST. --
 3月 03 09:31:32 Ku.CentOS8 systemd[1]: Stopped firewalld - dynamic firewall daemon.
...


# tail -n 10 -f /var/log/messages
Mar  3 09:31:43 kk systemd[1]: Stopping firewalld - dynamic firewall daemon...
Mar  3 09:31:44 kk systemd[1]: Stopped firewalld - dynamic firewall daemon.





-----------------------------------------------


(一)使用者的設定

# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

# crontab -e
53 07 * * * /usr/bin/ls

# crontab -l
53 07 * * * /usr/bin/ls

# cat /var/spool/cron/root
53 07 * * * /usr/bin/ls


# journalctl -n 10
...

 3月 04 07:51:52 Ku.CentOS8 crontab[1733]: (root) BEGIN EDIT (root)
 3月 04 07:52:43 Ku.CentOS8 crontab[1733]: (root) REPLACE (root)
 3月 04 07:52:43 Ku.CentOS8 crontab[1733]: (root) END EDIT (root)
 3月 04 07:53:01 Ku.CentOS8 crond[967]: (root) RELOAD (/var/spool/cron/root)
 3月 04 07:53:01 Ku.CentOS8 systemd[1]: Started Session 3 of user root.
 3月 04 07:53:01 Ku.CentOS8 CROND[1737]: (root) CMD (/usr/bin/ls  )
...


# cat /var/log/cron
...
Mar  4 07:51:52 Ku crontab[1733]: (root) BEGIN EDIT (root)
Mar  4 07:52:43 Ku crontab[1733]: (root) REPLACE (root)
Mar  4 07:52:43 Ku crontab[1733]: (root) END EDIT (root)
Mar  4 07:53:01 Ku crond[967]: (root) RELOAD (/var/spool/cron/root)
Mar  4 07:53:01 Ku CROND[1737]: (root) CMD (/usr/bin/ls  )
...


# tail /var/log/cron
...






(二)系統的設定檔

# vi /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

00 08 * * * root /usr/bin/ls



# systemctl list-units
UNIT                          LOAD   ACTIVE SUB       DESCRIPTION
proc-sys-fs-binfmt_misc.automount loaded active waiting   Arbitrary Executable >
...
crond.service                 loaded active running   Command Scheduler
...
firewalld.service             loaded active running   firewalld - dynamic firewall daemon
...
NetworkManager.service        loaded active running   Network Manager
...
sshd.service                  loaded active running   OpenSSH server daemon


# systemctl restart crond

# tail /var/log/cron
...
Mar  5 08:00:01 Ku crond[974]: (*system*) RELOAD (/etc/crontab)
Mar  5 08:00:01 Ku CROND[1765]: (root) CMD (/usr/bin/ls)
Mar  5 08:00:01 Ku CROND[1764]: (root) CMDOUT (anaconda-ks.cfg)
Mar  5 08:00:01 Ku CROND[1764]: (root) CMDOUT (kkRouteTable.txt)
...


# journalctl -n 10
-- Logs begin at Thu 2020-03-05 07:42:10 CST, end at Thu 2020-03-05 08:01:01 CS>
 3月 05 08:00:01 Ku.CentOS8 crond[974]: (*system*) RELOAD (/etc/crontab)
 3月 05 08:00:01 Ku.CentOS8 CROND[1765]: (root) CMD (/usr/bin/ls)
 3月 05 08:00:01 Ku.CentOS8 CROND[1764]: (root) CMDOUT (anaconda-ks.cfg)
 3月 05 08:00:01 Ku.CentOS8 CROND[1764]: (root) CMDOUT (kkRouteTable.txt)
...





-----------------------------------------------

# date
四  3月  5 11:06:39 CST 2020


// 更改日期間:  MMDDhhmmYYYY  月日時分年
# date 040608302020
一  4月  6 08:30:00 CST 2020




//查看 BIOS 時間
# hwclock -r
2020-03-05 11:13:12.171152+08:00


//將電腦日期時間寫入到 BIOS 時間
# hwclock -w



-----------------------------------------------







-----------------------------------------------







-----------------------------------------------







-----------------------------------------------







-----------------------------------------------







-----------------------------------------------







----------------------------------------------- 

Python 程式設計

Ch1 認識 Python
1-1

CentOS8 Apache



-------------------------------------------------

// DNF  is  the  next upcoming major version of YUM, a package manager for
   RPM-based Linux distributions.
# dnf -y install httpd

# rpm -qa | grep httpd
httpd-tools-2.4.37-16.module_el8.1.0+256+ae790463.x86_64
centos-logos-httpd-80.5-2.el8.noarch
httpd-2.4.37-16.module_el8.1.0+256+ae790463.x86_64
httpd-filesystem-2.4.37-16.module_el8.1.0+256+ae790463.noarch

//執行檔
# ls /usr/sbin | grep httpd
httpd

//設定檔
# ls /etc/httpd/conf
httpd.conf 

//站台預設 跟目錄
# ls /var/www/
html

# systemctl start httpd.service
# systemctl enable httpd.service
# systemctl status httpd.service


//displays information about a selection of the active processes.
//To see every process on the system using BSD syntax:
# ps -axu | grep httpd
root       958  0.0  0.5 280208 10988 ?        Ss   14:30   0:00 /usr/sbin/httpd -DFOREGROUND
apache     991  0.0  0.4 292424  8252 ?        S    14:30   0:00 /usr/sbin/httpd -DFOREGROUND
...



# ls /usr/lib/systemd/system | grep httpd
httpd.service
httpd@.service
httpd.service.d
httpd.socket
httpd.socket.d



# firewall-cmd --state
running

# firewall-cmd --get-service | grep http

# ls /usr/lib/firewalld/services/ | grep http
https.xml
http.xml
wbem-https.xml
wbem-http.xml

# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --reload

# firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens32
  sources:
  services: cockpit dhcpv6-client http ssh
...


HostOS
http://192.168.1.4/




-------------------------------------------------設定虛擬目錄 Alias-------在其他的系統目錄 /opt


# ls -l /
...
drwxr-xr-x.   2 root root    6  5月 11  2019 opt
...

# mkdir /opt/web

# echo Hello Alias > /opt/web/index.html

# ls -l /opt
drwxr-xr-x. 2 root root 24  3月 26 14:59 web

# ls -l /opt/web/
-rw-r--r--. 1 root root 12  3月 26 14:59 index.html


# vi /etc/httpd/conf/httpd.conf
...
Alias /kk1web /opt/web
<Directory /opt/web>
   Require all granted
</Directory>


# systemctl restart httpd.service




HostOS
http://192.168.1.4/kk1web/
Hello Alias






-------------------------------------------------設定虛擬目錄 Alias-------在 /home

# vi /var/www/html/1.html
This is /var/www/html/1.html


HostOS
http://192.168.1.4/1.html
This is /var/www/html/1.html




# mkdir /home/web

# vi /home/web/1.html
This is One Web on /home/web


# vi /etc/httpd/conf/httpd.conf
...
Alias /web01 /home/web
<Directory "/home/web">
    Require all granted
</Directory>

# systemctl restart httpd.service


HostOS
http://192.168.1.4/web01/1.html
Forbidden
You don't have permission to access /web01/1.html on this server.


# tail -1 /var/log/httpd/error_log
[Thu Mar 26 15:15:25.107073 2020] [core:error] [pid 2426:tid 139987941058304] (13)Permission denied: [client 192.168.1.2:52012] AH00132: file permissions deny server access: /home/web/1.html



# ls -Z /var/www
system_u:object_r:httpd_sys_content_t:s0 html

# ls -Z /var/www/html
unconfined_u:object_r:httpd_sys_content_t:s0 1.html


# ls -Z /
...
system_u:object_r:usr_t:s0 opt

# ls -Z /home
unconfined_u:object_r:user_home_dir_t:s0 web

# ls -Z /home/web/
unconfined_u:object_r:user_home_t:s0 1.html

# chcon -t httpd_sys_content_t /home/web

# ls -Z /home
unconfined_u:object_r:httpd_sys_content_t:s0 web


2020年4月21日 星期二

CentOS8 Samba



https://technowikis.com/6772/how-to-install-samba-on-centos-8


++++++++++++++++++++++++++++++++++++ For User /home/user (xxx 有問題 xxx)

# dnf -y install samba samba-client

# systemctl enable smb.service
# systemctl start smb.service

# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --reload

# useradd kk5
# smbpasswd -a kk5


# chcon -t samba_share_t /home/kk5/
# setsebool -P samba_enable_home_dirs on


# vi /etc/samba/smb.conf
...
[global]
        workgroup = WORKGROUP
        server string = Samba Server% v
        netbios name = centos8
        map to guest = bad user
        dns proxy = no

        security = user
        passdb backend = tdbsam
        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
...


# systemctl restart smb.service



++++++++++++++++++++++++++++++++++++ For Rigestered User
# dnf -y install samba samba-client

# systemctl enable smb.service
# systemctl start smb.service

#firewall-cmd --permanent --zone=public --add-service=samba
#firewall-cmd --reload


------------------------------------
# useradd -M kk1 -s /sbin/nologin
------------------------------------

#useradd solvetic_samba
#groupadd smbgrp
#usermod -a -G smbgrp solvetic_samba
#smbpasswd -a solvetic_samba

#mkdir -p /home/secure

------------------------------------ 只要 smbgrp 群組皆可
#chown -R kk2:smbgrp /home/secure/
------------------------------------

#chown -R solvetic_samba:smbgrp /home/secure/
#chmod -R 0770 /home/secure/
#chcon -t samba_share_t /home/secure/

# vi /etc/samba/smb.conf
...
[global]
        workgroup = WORKGROUP
        server string = Samba Server% v
        netbios name = centos8
        map to guest = bad user
        dns proxy = no

        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw
...

//write list 是可以進入這個資料夾的使用者清單,@users 代表所有 SAMBA 使用者。
[Secure]
        path = /home/secure
        valid users = @smbgrp
        browsable = yes
        writable = yes
        guest ok = no



# systemctl restart smb.service

HostOS
\\192.168.1.4
登入、新增文件

# ls /home/secure/
檢查新增的文件是否正常



++++++++++++++++++++++++++++++++++++For Anonymous

# dnf -y install samba samba-client

# rpm -qa | grep samba
samba-client-libs-4.10.4-101.el8_1.x86_64
samba-common-4.10.4-101.el8_1.noarch
samba-common-libs-4.10.4-101.el8_1.x86_64
samba-common-tools-4.10.4-101.el8_1.x86_64
samba-4.10.4-101.el8_1.x86_64
samba-libs-4.10.4-101.el8_1.x86_64
samba-client-4.10.4-101.el8_1.x86_64


# ls /usr/lib/systemd/system
...
smb.service
...


# systemctl enable smb.service
# systemctl start smb.service

# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --reload

# mkdir -p /anonymous
# chmod -R 0755 /anonymous
# chown -R nobody:nobody /anonymous
# chcon -t samba_share_t /anonymous            //change file SELinux security context



# vi /etc/samba/smb.conf
...

//global 是關於 samba server 的設定
//security = user 代表需要帳戶密碼登入,使用者是 Linux 使用者,密碼則要另外設定一組            Samba 用的密碼。
[global]
        workgroup = WORKGROUP
        server string = Samba Server% v
        netbios name = centos8
         map to guest = bad user
        dns proxy = no

        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw



//homes 是對應 Linux 使用者的 home 資料夾,若有一個 linux 使用者 test123 登入了 samba,將會看到一個名為 test123 的資料夾,這個資料夾就代表 /home/test123
//browseable 代表其他使用者是否能看到這個資料夾
//writable 代表對此資料夾具有存取權的使用者的是否可以寫入檔案,否則唯讀
//create mode 代表使用者建立的檔案權限(linux 檔案權限)
//directory mode 代表使用者建立的目錄權限(linux 目錄權限)
[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
...


//[Anonymous] 會建立一個 public 資料夾(Samba上顯示的資料夾)
//path 要指向主機上的目錄,要注意的是這個目錄需要讓所有使用者都有存取權,將權限設定給 SAMBA 群組可能是個好主意。
//write list 是可以進入這個資料夾的使用者清單,@users 代表所有 SAMBA 使用者。
//若不需要共享的資料夾,將 [samba分享] 這部分設定刪除即可。
[Anonymous]
        path = /anonymous
        browsable = yes
        writable = yes
        guest ok = yes
        read only = no


# systemctl restart smb.service



HostOS
\\192.168.1.4


























++++++++++++++++++++++++++++++++++++ By rigestered users



# adduser -M smb -s /sbin/nologin
# smbpasswd -a  smb
New SMB password:            //123456
Retype new SMB password:
Added user smb.




---------------------------------------------
# getsebool -a | grep samba
# setsebool samba_enable_home_dirs on













# vi /etc/samba/smb.conf
...
//global 是關於 samba server 的設定
//security = user 代表需要帳戶密碼登入,使用者是 linux 使用者,密碼則要另外設定一組            Samba 用的密碼。
[global]
        workgroup = SAMBA
        security = user

        map to guest = bad user
        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw


//homes 是對應 linux 使用者的 home 資料夾,若有一個 linux 使用者 test123 登入了 samba,將會看到一個名為 test123 的資料夾,這個資料夾就代表 /home/test123
browseable 代表其他使用者是否能看到這個資料夾
writable 代表對此資料夾具有存取權的使用者的是否可以寫入檔案,否則唯讀
create mode 代表使用者建立的檔案權限(linux 檔案權限)
directory mode 代表使用者建立的目錄權限(linux 目錄權限)


[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes
...


//[samba分享] 會建立一個 public 資料夾(Samba上顯示的資料夾)
path 要指向主機上的目錄,要注意的是這個目錄需要讓所有使用者都有存取權,將權限設定給 SAMBA 群組可能是個好主意。
write list 是可以進入這個資料夾的使用者清單,@users 代表所有 SAMBA 使用者。
若不需要共享的資料夾,將 [samba分享] 這部分設定刪除即可。
[samba分享]
    comment         = Public Directories
    path            = /samba
    browseable      = Yes
    writable        = Yes
    create mode     = 0664
    directory mode  = 0775
    write list      = @users
    guest only = yes


# getsebool -a | grep samba
...
use_samba_home_dirs --> off
virt_use_samba --> off
# setsebool -P samba_enable_home_dirs on


//change file SELinux security context
# chcon -R -t samba_share_t /samba





# systemctl start smb.service
# systemctl is-active smb.service
active
# systemctl status smb.service
● smb.service - Samba SMB Daemon
   Loaded: loaded (/usr/lib/systemd/system/smb.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2020-04-06 09:03:17 CST; 21s ago
...



# systemctl enable smb.service
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
# systemctl is-enabled smb.service
enabled



# firewall-cmd --info-service samba
samba
  ports: 137/udp 138/udp 139/tcp 445/tcp
  protocols:
  source-ports:
  modules: netbios-ns
  destination:
  includes:

# firewall-cmd --permanent --zone=public --add-service=samba

success
# firewall-cmd --zone=public --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens32
  sources:
  services: cockpit dhcpv6-client samba ssh


# firewall-cmd --list-services
cockpit dhcpv6-client samba ssh


# firewall-cmd --reload
success


# mkdir /samba

# chmod -R 755 /samba
# chown -R nobody:nobody /samba


# systemctl restart smb.service




# groupadd samba

# useradd kk1
# passwd kk1

# usermod -a -G samba kk1
# pdbedit -a -u kk1




# adduser -M SambaUser -s /sbin/nologin

# cat /etc/group
SambaUser:x:1002:

# cat /etc/passwd
SambaUser:x:1001:1002::/home/SambaUser:/sbin/nologin


# cat /etc/shadow
SambaUser:!!:18330:0:99999:7:::


# ls /home


# smbpasswd -a SambaUser
New SMB password:            //123456
Retype new SMB password:
Added user SambaUser.


++++++++++++++++++++++++++++++++++++++++++++++++++






++++++++++++++++++++++++++++++++++++++++++++++++++






++++++++++++++++++++++++++++++++++++++++++++++++++






++++++++++++++++++++++++++++++++++++++++++++++++++






++++++++++++++++++++++++++++++++++++++++++++++++++






++++++++++++++++++++++++++++++++++++++++++++++++++














新增線上題庫

# mysql -u root -p
Enter password:

MariaDB [(none)]> use kkdb;

MariaDB [kkdb]> show tables;
+----------------+
| Tables_in_kkdb |
+----------------+
| tblch          |
| tblexam        |
| tblsr          |
| tblstu         |
+----------------+

MariaDB [kkdb]> select * from tblch;
+------+------+---------------------------------+
| chid | gra  | chpr                            |
+------+------+---------------------------------+
|    1 | 7    | 第一章 資訊科技導論             |
|    2 | 7    | 第二章 基礎程式設計             |
|    3 | 8    | 第一章 資訊素養與倫理           |
+------+------+---------------------------------+

MariaDB [kkdb]> show create table tblch\G;
*************************** 1. row ***************************
       Table: tblch
Create Table: CREATE TABLE `tblch` (
  `chid` int(11) NOT NULL AUTO_INCREMENT,
  `gra` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
  `chpr` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`chid`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

MariaDB [kkdb]> insert into tblch(gra,chpr) values('7',"第四章 資料保護與資訊安 全");

MariaDB [kkdb]> select * from tblch;
+------+------+---------------------------------------+
| chid | gra  | chpr                                  |
+------+------+---------------------------------------+
|    1 | 7    | 第一章 資訊科技導論                   |
|    2 | 7    | 第二章 基礎程式設計                   |
|    3 | 8    | 第一章 資訊素養與倫理                 |
|    4 | 7    | 第四章 資料保護與資訊安全             |
+------+------+---------------------------------------+


MariaDB [kkdb]> show create table tblexam\G;                                    *************************** 1. row ***************************
       Table: tblexam
Create Table: CREATE TABLE `tblexam` (
  `qid` int(11) NOT NULL AUTO_INCREMENT,
  `chid` int(11) DEFAULT NULL,
  `qus` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
  `opt1` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `opt2` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `opt3` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `opt4` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `ans` varchar(1) COLLATE utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY (`qid`)
) ENGINE=InnoDB AUTO_INCREMENT=77 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci


# vi /var/lib/mysql/kkdb/tblexam.txt
77 4 哪一項個資在尊重當事人及合法情況下,可以蒐集、處理或利用? 病歷 財務情況 犯罪前科 基因。
78 4 自然人與法人兩者都是法律用語。從生物學的觀點,如何區分兩者差異? 自然人是在大自然中生長 法人是財團組織裡的員工 自然人是指出生而取得民事主體資格的人;而法人則指法律上擬人化的組織 自然人指法律上擬人化的組織;而法人則是指出生而取得民事主體資格的人。
...
// vi 內似乎不能太多筆資料,
// 不用加選項(A)(B)(C)(D)
//qid 接續之前
//Tab 區隔

----------------------------20200908
從題庫產生後,先以MS word整理、寫好,欄位間為Tab區隔,ans題庫產生預設是全形大寫,須改成半形大寫 
再補上qid欄位資料與chid欄位資料
最後才複製到vi內
----------------------------

MariaDB [kkdb]> delete from tblexam ;    //先刪除原資料  
MariaDB [kkdb]> load data infile 'tblexam.txt' into table tblexam;
MariaDB [kkdb]> select * from tblexam;

MariaDB [kkdb]> delete from tblexam where qid=101;        //刪除資料


http://192.168.1.4/addqus.php


//ans 匯入是全形大寫字母,須改成半形大寫字母
MariaDB [kkdb]> update tblexam set ans='B' where qid=77;
MariaDB [kkdb]> select qid,ans from tblexam;



//7年級第一章給8年級測
MariaDB [kkdb]> update tblch set gra='8' where chid=1;


//2020-09-11刪除與更新
MariaDB [kkdb]> select * from tblstu where sid=987;
MariaDB [kkdb]> update tblstu set cla='04' where sid=987;
MariaDB [kkdb]> delete from tblstu where sid=985;



//2020-09-14 修改欄位長度
MariaDB [kkdb]> alter table tblexam modify column qus varchar(200);

http://172.31.145.99/addqus.php

MariaDB [kkdb]> select * from tblexam where qid=160;
MariaDB [kkdb]> delete from tblexam where qid=160;


MariaDB [kkdb]> update tblstu set sno='40' where sid=552;

[root@centos7 ~]# vi /var/lib/mysql/kkdb/tblexam.txt
//刪除原內容
//貼上在word整理好的新題目

//新增題目
//先確認目前qid 是多少,再到word依序補上qid 與 chid 兩欄位資料
http://172.31.145.99/addqus.php
MariaDB [kkdb]> select qid from tblexam;

[root@centos7 ~]#  vi /var/lib/mysql/kkdb/tblexam.txt

MariaDB [kkdb]> load data infile 'tblexam.txt' into table tblexam;