內容選單標籤

2018年8月7日 星期二

CentOs7-1804

CentOS-7-x86_64-DVD-1804.iso
VMware-player-14.1.2-8497320.exe
pietty0400b14.exe

BIOS設定


VMware Workstation 14 Player 設定
Create a New Virtual Machine --> Installer disc image file --> next --> Location:  --> Next  --> 
Maximun disk size:10  -->  Next  -->
Customize Hardware  -->  Memory 2GB  
                                      -->  Processors 2  
                                      -->  NetWork Adapter  --> Bridged  --> Close



安裝CentOS7
Install CentOS7
中文  --> 繁體中文(台灣)
安裝目的  --> 完成
網路與主機名稱  --> 設定  --> IPv4設定  --> 手動  --> 
      Add  -->192.168.1.103      255.255.255.0      192.168.1.1      DNS 168.95.1.1
主機名稱:centos7.kk --> 套用
乙太網路  --> 開啟  -->完成  --> 開啟安裝
ROOT密碼:!QAZ@WSX  --> 完成








------------------------------------------中文顯示
# echo $LANG
zh_TW.UTF-8

# locale
LANG=zh_TW.UTF-8
LC_CTYPE="zh_TW.UTF-8"
LC_NUMERIC="zh_TW.UTF-8"
LC_TIME="zh_TW.UTF-8"
LC_COLLATE="zh_TW.UTF-8"
LC_MONETARY="zh_TW.UTF-8"
LC_MESSAGES="zh_TW.UTF-8"
LC_PAPER="zh_TW.UTF-8"
LC_NAME="zh_TW.UTF-8"
LC_ADDRESS="zh_TW.UTF-8"
LC_TELEPHONE="zh_TW.UTF-8"
LC_MEASUREMENT="zh_TW.UTF-8"
LC_IDENTIFICATION="zh_TW.UTF-8"

LC_ALL=




------------------------------------------修改 IP Address

# vi /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens33"
UUID="651d908c-2e38-4100-80a6-08648285decd"
DEVICE="ens33"
ONBOOT="yes"
IPADDR="192.168.7.200"
PREFIX="24"
GATEWAY="192.168.7.254"
DNS1="163.32.57.1"
DOMAIN="168.95.1.1"
IPV6_PRIVACY="no"




# systemctl restart network.service



------------------------------------------系統更新
# yum -y install  wget
# wget http://ftp.kh.edu.tw/APPL/yum/CentOS7/fix-yum-CentOS7.sh

# chmod 755 fix-yum-CentOS7.sh
# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bk 


# vi /etc/yum.repos.d/CentOS-Base.repo          //資教中心,似乎有問題
### Name: RPMforge RPM Repository for RHEL 7 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el7/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1

proxy=http://open.kh.edu.tw:3128/
timeout=300



# vi /etc/yum.repos.d/CentOS-Base.repo
...
proxy=http://open.kh.edu.tw:3128/      //最後加入此2行,可以執行
timeout=300




# yum -y update
# yum clean packages

------------------------------------------指令練習      

# ip addr
...
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:86:ab:b0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.103/24 brd 192.168.1.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::4473:aa21:1772:b9b3/64 scope link noprefixroute
       valid_lft forever preferred_lft forever


# ip neigh
192.168.1.101 dev ens33 lladdr 54:04:a6:6b:67:7d REACHABLE
192.168.1.102 dev ens33 lladdr e0:cb:4e:bb:3b:ac STALE

192.168.1.1 dev ens33 lladdr c8:6c:87:2a:9b:e6 STALE


# ip route
default via 192.168.1.1 dev ens33 proto static metric 100
192.168.1.0/24 dev ens33 proto kernel scope link src 192.168.1.103 metric 100


# ip link set ens33 up
# ip link set ens33 down




----------誰在線上
 # who
root     pts/0        2018-08-09 14:38 (192.168.1.101)



----------Show who is logged on and what they are doing
# w
 14:43:41 up 6 min,  1 user,  load average: 0.00, 0.08, 0.06
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     pts/0    192.168.1.101    14:38    5.00s  0.05s  0.00s w




----------CH4檔案管理

----------列出目前在哪個目錄下 print name of current/working directory
# pwd
/root



----------切換目錄   change directory
# cd /          //根目錄     
# cd ~         //家目錄

# cd /home      // 絕對路徑
# cd ../home    // 相對路徑



----------複製 copy
# cp anaconda-ks.cfg /home

# ls /home
anaconda-ks.cfg



----------搬移 move
# mv /home/anaconda-ks.cfg /usr/ana.cfg
# ls /usr
ana.cfg  



----------刪除 remove
# rm /usr/ana.cfg
rm:是否移除普通檔案‘/usr/ana.cfg’? y
# ls /usr




----------觀看檔案內容
# cat anaconda-ks.cfg

# cat > test.txt                 //產生文字檔
this is 1
this is 2
//輸入完成Ctrl+D

# ls
test.txt
# cat test.txt
this is 1
this is 2



----------重導輸出 redirect
將標準輸出 stdout :1 或 標準錯誤訊息輸出 stderr : 2
改為輸出到檔案成為文字檔。
標準輸入stdin : 0

# echo 'kk1' > myFile
# cat myFile
kk1
# echo 'kk2' >> myFile      //新增至尾端
# cat myFile
kk1
kk2



----------輸出檔案內容並分頁顯示 more
# more anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
...
//空白建顯示下一頁
//q健結束




----------使用 less 觀看檔案內容
# less anaconda-ks.cfg
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
cdrom
...
//:2移到文件第2行



----------觀看檔案最後與最前面的內容
# tail -n 3 -f /var/log/messages
Aug 14 12:15:52 centos7 systemd-logind: New session 1 of user root.
Aug 14 12:15:52 centos7 systemd: Started Session 1 of user root.
Aug 14 12:15:52 centos7 systemd: Starting Session 1 of user root.
//顯示檔尾3列,並持續監看   n:lines   f:follow



----------改變檔案的更動時間
# ls -l
-rw-------. 1 root root  1319  8月  7 18:32 anaconda-ks.cfg
...

# touch anaconda-ks.cfg

[root@centos7 ~]# ls -l
-rw-------. 1 root root  1319  8月 14 22:10 anaconda-ks.cfg
...   


----------產生空白檔案
# touch kk1.txt
# ls -l
-rw-------. 1 root root  1319  8月 14 22:10 anaconda-ks.cfg
-rw-r--r--. 1 root root     0  8月 14 22:29 kk1.txt



----------建立、刪除目錄
# mkdir Dirkk
# ls -l
-rw-------. 1 root root  1319  8月 14 22:10 anaconda-ks.cfg
drwxr-xr-x. 2 root root     6  8月 14 22:15 Dirkk


# rmdir Dirkk      //只能刪除資料夾
# ls -l
-rw-------. 1 root root  1319  8月 14 22:10 anaconda-ks.cfg


# touch Dirkk/kk1.txt
# ls -l Dirkk/
-rw-r--r--. 1 root root 0  8月 14 22:21 kk1.txt

# rmdir Dirkk/
rmdir: failed to remove ‘Dirkk/’: 目錄不是空的

# rm -rf Dirkk/      //可刪除資料夾內仍有檔案   r:recursive   f:force
# ls -l
-rw-------. 1 root root  1319  8月 14 22:10 anaconda-ks.cfg




----------CH5進階檔案處理

----------檔案資訊記錄檔 inode。print the index number of each file
# touch kk1.txt
# ls -i
8409154 anaconda-ks.cfg  8409205 kk1.txt



----------建立符號連結 symbolic link
# echo "Hello My Word" > kk2.txt      //echo: display a line of text
# ls
anaconda-ks.cfg  kk2.txt
# cat kk2.txt
Hello My Word


 ln -s kk2.txt slink
# ls -l
-rw-------.      1 root root 1319  8月 14 22:10 anaconda-ks.cfg
-rw-r--r--.      1 root root   14    8月 15 12:39 kk2.txt
lrwxrwxrwx. 1 root root    7     8月 15 12:43 slink -> kk2.txt

//l      表它是一個連結
//rwxrwxrwx      符號連結沒自己的權限,視真實檔案為主


# cat slink
Hello My Word


//符號連結 inode 編號不同
# ls -i
8409154 anaconda-ks.cfg  8409206 kk2.txt  8409213 slink


//無效的符號連結
# rm kk2.txt
rm:是否移除普通檔案‘kk2.txt’? y

# ls -l
-rw-------. 1 root root 1319  8月 14 22:10 anaconda-ks.cfg
lrwxrwxrwx. 1 root root    7  8月 15 12:43 slink -> kk2.txt

# cat slink
cat: slink: 沒有此一檔案或目錄


//刪除符號連結
# rm slink
rm:是否移除符號連結‘slink’? y
# ls -l
-rw-------. 1 root root 1319  8月 14 22:10 anaconda-ks.cfg






----------建立硬連結 hard
# echo "Hello My Word" > kk3.txt
# ls -l
-rw-------. 1 root root 1319  8月 14 22:10 anaconda-ks.cfg
-rw-r--r--. 1 root root   14  8月 15 13:03 kk3.txt

# link kk3.txt hlink
[root@centos7 ~]# ls -l
-rw-------. 1 root root 1319  8月 14 22:10 anaconda-ks.cfg
-rw-r--r--. 2 root root   14    8月 15 13:03 hlink
-rw-r--r--. 2 root root   14    8月 15 13:03 kk3.txt

//一個檔案
//rw-r--r-- 硬連結有自己的權限
//代表除了kk3.txt外,還有另一檔案也參考到同一檔案位置
//建立硬連結,把原kk3.txt檔案的整個 inode 資料複製一份給 hlink


# ls -i
8409154 anaconda-ks.cfg  8409205 hlink  8409205 kk3.txt

//kk3.txt 的內容和 hlink 的內容一樣


//有效的硬連結
# rm kk3.txt
rm:是否移除普通檔案‘kk3.txt’? y

# ls -l
-rw-------. 1 root root 1319  8月 14 22:10 anaconda-ks.cfg
-rw-r--r--. 1 root root   14  8月 15 13:03 hlink

# cat hlink
Hello My Word



//刪除硬連結
# rm hlink
rm:是否移除普通檔案‘hlink’? y
# ls -l
-rw-------. 1 root root 1319  8月 14 22:10 anaconda-ks.cfg


功能 符號連結 硬連結
跨越分割區
O
X
支援目錄 O X
目的檔刪除後 無效連結 O
權限 無法自訂 可自訂





----------自動搜尋目錄,設定在環境變數 PATH 內
# ls
anaconda-ks.cfg

//檔案完整檔名,查詢檔案位置
# whereis ls   
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz


//在環境變數 PATH 內所有目錄,查詢是否有特定執行檔
# which ls
alias ls='ls --color=auto'
        /usr/bin/ls


//沒有設定在環境變數 PATH 內
# ../usr/bin/ls
anaconda-ks.cfg


[root@centos7 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin





----------df - report file system disk space usage

# df -h      //
檔案系統                 容量  已用  可用 已用% 掛載點
/dev/mapper/centos-root  8.0G 1012M  7.0G   13% /
devtmpfs                 899M     0  899M    0% /dev
tmpfs                    911M     0  911M    0% /dev/shm
tmpfs                    911M  9.5M  902M    2% /run
tmpfs                    911M     0  911M    0% /sys/fs/cgroup
/dev/sda1               1014M  142M  873M   14% /boot
tmpfs                    183M     0  183M    0% /run/user/0

//-h, --human-readable
          print sizes in human readable format



---------- du - Summarize disk usage of each FILE, recursively for directories.

# ls /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var


# du -sh /var/
52M     /var/

// -s, --summarize     display only a total for each argument





---------- 管線 |
# dmesg | more
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
...

//dmesg 顯示系統開機時主控台訊息
dmesg : stdout      - 管線 ->      more : stdin      -->      more : stdout




---------- 篩選內容 grep
# grep sda /var/log/dmesg
[    3.673676] sd 2:0:0:0: [sda] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB)
[    3.673772] sd 2:0:0:0: [sda] Write Protect is off
...

---------- Linux 記錄檔
//log 檔 ( /var/log )
系統記錄檔           /var/log/messagees
開機記錄檔          /var/log/dmesg
安全性記錄檔      /var/log/secure

# cat /var/log/dmesg | grep sda
[    3.673676] sd 2:0:0:0: [sda] 20971520 512-byte logical blocks: (10.7 GB/10.0 GiB)
[    3.673772] sd 2:0:0:0: [sda] Write Protect is off
...





---------- find - search for files in a directory hierarchy

# ls -l /var/log
drwxr-xr-x. 2 root   root       204  8月  7 18:32 anaconda
drwx------. 2 root   root        23  8月  7 18:35 audit
-rw-------. 1 root   root         0  8月 19 12:37 boot.log
-rw-------. 1 root   root     44443  8月 14 13:22 boot.log-20180814
-rw-------. 1 root   root     26116  8月 15 13:41 boot.log-20180815
-rw-------. 1 root   root      8542  8月 19 12:37 boot.log-20180819
-rw-------. 1 root   utmp         0  8月  7 18:28 btmp
drwxr-xr-x. 2 chrony chrony       6  4月 13 01:37 chrony
...


# find /var/log -name audit      //檔名
/var/log/audit


# find /var/log -perm 755      //權限
/var/log/anaconda


# find /var/log -type d      //d:目錄      f:檔案
/var/log/anaconda
/var/log/audit
/var/log/chrony


# find /var/log -ctime -12      //最近12天來,有更動過的檔案

//-ctime n
  File's  status  was  last changed n*24 hours ago. 

-newer file
  File  was modified more recently than file.

 //-cnewer file
  File's  status was last changed more recently than file was modified.
  以某個檔案的更動時間為準,搜尋再該檔案的更新時間後,有    所變動      的檔案。包新產生檔案。

# echo 'new file 1' > kk1File.txt

# find /root -cnewer /root/anaconda-ks.cfg -type f
/root/kk1File.txt




---------- CH7 使用者帳號管理

# groupadd kkGroup
# cat /etc/group
root:x:0:
bin:x:1:
...
kkGroup:x:1000:


# useradd kk1
# passwd kk1
更改使用者 kk1 的密碼。
新 密碼:
不良的密碼:密碼短於 8 個字元
再次輸入新的 密碼:
passwd:所有驗證 token 都已成功更新。
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...
kk1:x:1000:1001::/home/kk1:/bin/bash

帳號名:密碼:帳號號:群組號:註解:家目錄     :登入使用的shell
kk1      :x      :1001    :1001    :可略:/home/kk1:/bin/bash



---------- 帳號暫停使用,使其無法登入,將密碼 x 改成 !

# vi /etc/passwd
...
kk1:!:1000:1000::/home/kk1:/bin/bash




# cat /etc/shadow
root:$6$q4zPmABLR5XyWGsk$xCVIoIHiJbziy.cg8Tv1UGT5dx8/Wv0yLjhONX62xnbGkVaqFEF/mYSyikCjvuOpfeaqPHqD4N7x8Evlozv9M1::0:99999:7:::
...
kk1:$6$QfBNoIQF$1zATleLAroOVRJd.I79sJdih7.GulAMyINU1uK0r6wgOQvo2Ro1BlrPRFuHdLvY94ZrWZz/0bKXF/PUKb/GNs1:17763:0:99999:7:::



---------- 帳號增加至另一個附屬群組:kkGroup      主要群組:kk1

# usermod -G kkGroup kk1
# id kk1      //列出帳號資訊
uid=1000(kk1) gid=1001(kk1) groups=1001(kk1),1000(kkGroup)




gpasswd - administer /etc/group and /etc/gshadow
       -a, --add user      Add the user to the named group.
       -d, --delete user  Remove the user from the named group.

# gpasswd -a kk1 kkGroup
正在將使用者“kk1”加入到“kkGroup”群組中
[root@centos7 ~]# id kk1
uid=1000(kk1) gid=1001(kk1) groups=1001(kk1),1000(kkGroup)


# gpasswd -d kk1 kkGroup
正在將使用者“kk1”從“kkGroup”群組中刪除
[root@centos7 ~]# id kk1
uid=1000(kk1) gid=1001(kk1) groups=1001(kk1)



---------- 刪除 群組、帳號

# groupdel kkGroup      //刪除群組
# cat /etc/group
root:x:0:
...



# userdel -r kk1         //刪除帳號及家目錄
# ls /home
# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
...




---------- 檔案、目錄權限

# ls -l
-rw-------. 1 root root 1319  8月 14 22:10 anaconda-ks.cfg

rw- 擁有者權限
---  群組權限
---  其他人權限

r 讀 : 4      w 寫 : 2      x 執行 : 1

檔案
r:可讀      w:可寫      x:可被執行

目錄
r  :可列出目錄檔案清單 ls
w:目錄中檔案與目錄都可以異動。寫入、建立、刪除、更名cpmvrm
x :可進入該目錄 cd



# ls -l
-rw-r--r--. 1 root root   11  8月 19 14:50 kk1File.txt


---------- 變更檔案權限

# chmod 754 kk1File.txt
# ls -l
-rwxr-xr--. 1 root root   11  8月 19 14:50 kk1File.txt



---------- 變更檔案擁有者

# chown kk1 kk1File.txt
# ls -l
-rwxr-xr--. 1 kk1  root   11  8月 19 14:50 kk1File.txt



---------- 變更檔案所屬群組

# chgrp kkGroup kk1File.txt
# ls -l
-rwxr-xr--. 1 kk1  kkGroup   11  8月 19 14:50 kk1File.txt






---------- CH8系統行程管理 ----------

---------- ps : report a snapshot of the current processes

# ps      //只顯示該使用者在當次登入時的行程資訊
   PID  TTY          TIME         CMD
  1484  pts/0         00:00:00     bash
  1499  pts/0         00:00:00     ps

# ps -f      // -f 顯示更詳細資訊
UID       PID    PPID  C  STIME   TTY          TIME CMD
root       1484   1474   0  16:41      pts/0          00:00:00 -bash
root       1500   1484   0  16:42      pts/0          00:00:00 ps -f


# ps -aux | grep crond      // aux 系統在背景中執行的服務
USER    PID   %CPU   %MEM   VSZ        RSS   TTY    STAT  START   TIME
root        652   0.0         0.0            126280  1668   ?          Ss       16:39      0:00

COMMAND
/usr/sbin/crond -n

...

USER              該行程擁有者
PID                  該行程PID
%CPU             CPU使用率 
%MEM            記憶體使用率
VSZ                 虛擬記憶體使用量(KB)
RSS                 固定占用的記憶體
TTY                 那一個終端機編號 ? : 表示系統服務
STAT               行程目前狀態 s : 睡眠中   R : 執行中
START            行程被啟動的日期
TIME              實際使用CPU時間
COMMAND  行程指令



---------- 背景行程

# sleep 20    //20秒後行程才結束,出現提示字元,才可執行下個工作指令
                       //Ctrl+z 暫停,執行中的指令
^Z
[1]+  Stopped                 sleep 20               

# bg               //將上一個被停止的行程,放入背景中執行
[1]+ sleep 20 &
# ps -f           //雖sleep 20未結束,也可以執行下個工作指令
UID         PID   PPID  C STIME TTY          TIME CMD
root       1473   1464  0 11:41 pts/0    00:00:00 -bash
root       1538   1473  0 11:54 pts/0    00:00:00 sleep 20
root       1539   1473  0 11:54 pts/0    00:00:00 ps -f


# sleep 20 &      //& 將指令丟入背景執行
[1] 1586
[root@centos7 ~]# ps -f
UID         PID   PPID  C STIME TTY          TIME CMD
root       1473   1464  0 11:41 pts/0    00:00:00 -bash
root       1586   1473  0 12:06 pts/0    00:00:00 sleep 20
root       1587   1473  0 12:06 pts/0    00:00:00 ps -f



# sleep 20 &
[1] 1611
# fg        //將背景行程移回前景使用,若要中斷指令執行 Ctrl+c
sleep 20


---------- 刪除行程

# sleep 30 &
[1] 1675
[root@centos7 ~]# ps -f
UID         PID   PPID  C STIME TTY          TIME CMD
root       1473   1464  0 11:41 pts/0    00:00:00 -bash
root       1675   1473  0 12:22 pts/0    00:00:00 sleep 30
root       1676   1473  0 12:22 pts/0    00:00:00 ps -f

# kill 1675      //若行程無法自行結束,加上 -9 選項可以強制結束
# ps -f
UID         PID   PPID  C STIME TTY          TIME CMD
root       1473   1464  0 11:41 pts/0    00:00:00 -bash
root       1677   1473  0 12:22 pts/0    00:00:00 ps -f
[1]+  終止                  sleep 30



---------- 觀察系統資源:系統記憶體、虛擬記憶體swap分割區使用情況

# free
              total          used        free            shared   buff/cache   available
Mem:    1865308   141456    1547072    9728      176780        1537444
Swap:    1048572   0              1048572



---------- CH9系統管理工作 ----------

---------- Firewalld

# firewall-cmd --state      //目前是否執行當中
running


# firewall-cmd --get-zones      //列出所有可以選擇的zone
block dmz drop external home internal public trusted work


# firewall-cmd --get-active-zone   
public                                               //目前防火牆 zone 是 public,公開場所
  interfaces: ens33                           //  網路介面



# firewall-cmd --zone=public --list-all      //zone 的詳細設定
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
...



# firewall-cmd --get-service      //列出可使用的 service
RH-Satellite-6 amanda-client
...


# ls /usr/lib/firewalld/services      //這些service定義的位置
amanda-client.xml        high-availability.xml  nfs.xml                   sane.xml
amanda-k5-client.xml     https.xml              nrpe.xml                  sips.xml
...


//每一個 service 可以包含一個以上的 port 或是 protocol
# cat /usr/lib/firewalld/services/dns.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>DNS</short>
  <description>The Domain Name System (DNS) is used to provide and request host and domain names. Enable this option, if you plan to provide a domain name service (e.g. with bind).</description>
  <port protocol="tcp" port="53"/>
  <port protocol="udp" port="53"/>
</service>










------------------------------------------vsftpd
---------------------直接透過檔案總管 ftp://317@192.168.7.152/40,FileZilla似乎不行

# yum -y install vsftpd
# rpm -qa | grep vsftpd
vsftpd-3.0.2-22.el7.x86_64


# vi /etc/vsftpd/vsftpd.conf
...
anonymous_enable=NO
...


# systemctl start vsftpd
# systemctl enable vsftpd
# systemctl status vsftpd


# firewall-cmd --permanent --zone=public --add-service=ftp
# firewall-cmd --reload
# firewall-cmd --list-all



# useradd 313
# passwd 313


# su -l 313

[313@chinku ~]$mkdir {01..50}      //建立每人資料夾
[313@chinku ~]$ ls


$ su
密碼:
# cd


# ls -al /home/313
...
drwxrwxr-x.  2 313  313     6  9月  6 15:13 01
drwxrwxr-x.  2 313  313     6  9月  6 15:13 02
...



# chmod -w -R /home/313
chmod: /home/313/01: new permissions are r-xrwxr-x, not r-xr-xr-x
chmod: /home/313/02: new permissions are r-xrwxr-x, not r-xr-xr-x



# chattr +a -R /home/317      //+a只能以附加方式寫入




# ls /home/307/*/1.docx      //列出班級每人的作業
------------------------------------------




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




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




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





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





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

2018年3月13日 星期二

centos73練習

參考資教中心106年度12月Linux基礎班研習資料

ISO:CentOS-7-x86_64-DVD-1708
VMwareWorkstation12 Player:
Memory:2GB
Processors:2
Hard Disk:20GB
Network Adapter:Bridged(Automatic)

安裝
手動處理分割
/boot       500M
swap       2048M
/var/log   3000
/              8000M 或不寫自動補上所有可用空間


線上更新
# yum install wget

# wget ftp://ftp.kh.edu.tw/pub/APPL/yum/CentOS7/fix-yum-CentOS7.sh

# ls
fix-yum-CentOS7.sh
# chmod 755 fix-yum-CentOS7.sh

# ./fix-yum-CentOS7.sh


# vi /etc/yum.repos.d/rpmforge.repo
### Name: RPMforge RPM Repository for RHEL 7 - dag
### URL: http://rpmforge.net/
[rpmforge]
name = RHEL $releasever - RPMforge.net - dag
baseurl = http://apt.sw.be/redhat/el7/en/$basearch/rpmforge
mirrorlist = http://mirrorlist.repoforge.org/el7/mirrors-rpmforge
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge
enabled = 1
protect = 0
gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag
gpgcheck = 1
proxy=http://open.kh.edu.tw:3128/
timeout=300


# yum -y update
# yum clean packages




自動化排程,讓作業系統每天自動去檢查是否要更新套件
😍方法1:
# yum install yum-cron

# vi /etc/yum/yum-cron.conf
download_updates = yes
...
apply_updates = yes
...


# systemctl enable yum-cron      //設定成開機啟動
# systemctl start yum-cron
# systemctl -l status yum-cron      //檢查目前狀態,確認是否開機啟動,且執行中



😛方法2:系統的設定檔
# vi /etc/crontab
....
30 07 * * * root yum update -y ; yum clean packages

//分  時  日  月  星期(0:週日 ~ 6:週六)   身分  指令

# systemctl restart crond

# tail /var/log/cron




安裝Samba Server
# yum -y install samba
# rpm -qa | grep samba
samba-common-4.6.2-12.el7_4.noarch
samba-libs-4.6.2-12.el7_4.x86_64
samba-common-libs-4.6.2-12.el7_4.x86_64
samba-common-tools-4.6.2-12.el7_4.x86_64
samba-client-libs-4.6.2-12.el7_4.x86_64
samba-4.6.2-12.el7_4.x86_64

# systemctl enable smb.service
# systemctl start smb.service
# systemctl -l status smb.service



關閉SELINUX,後重開
# vi /etc/sysconfig/selinux
...
SELINUX=disabled
...

# sestatus
SELinux status:                 disabled








新增使用者
# adduser kk3
# passwd kk3
更改使用者 kk3的密碼。
新 密碼:123456
# ls /home




複製檔案
# cp /etc/samba/smb.conf /etc/samba/smb.conf.bk
# ls /etc/samba/



# vi /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        workgroup = WORKGROUP

        security = user
        passdb backend = tdbsam

        max log size = 50

[homes]
        comment = Home Directories
        browseable = No
        writable = YES



//**
workgroup = 工作群組名稱
security = user 透過 samba 伺服器本身的帳號密碼資料庫

netbios name = 現在預設為主機名稱喔! (可不設定,預設使用 hostname 的輸出)
server string = 主機的簡易說明 (可不設定)
display charset = 自己伺服器上面的顯示編碼
unix charset = 在 Linux 伺服器上面所使用的編碼
dos charset = 就是 Windows 用戶端的編碼


雖然說 display charset, dos charset, unix charset 可以指定中文編碼的格式,不過由於目前新版的 Samba 對於編碼的解析已經大有進步, 同時,目前我們的 server/client 大多同時使用 utf8 了,因此上述關於語系的設定可以忽略不理,或者是全部通通設定為 utf8 即可。



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



comment :該目錄用途的簡易說明
valid users :能使用此項目的用戶。
browseable :是否允許被瀏覽查詢到該目錄的存在 (只能看到目錄,不是允許登入的意思)
read only :是否為唯讀
inherit acls :是否放行已經設定權限的 ACL 資訊


那個 valid users 比較特別~怎麼會是 %S 呢?如果你使用 man smb.conf 去查詢就知道!那就代表 [這裡的名字] 的意思~如前所述, [homes] 是特別的名稱,他可以被登入者的帳號所取代,而 %S 則是代表 [] 裡面的名稱之意!所以,當有 dmtsai 這個家目錄存在, 就代表 dmtsai 是允許登入的用戶之意!更多的 %XXX 請參考 man smb.conf 的內容!


**//


# systemctl restart smb.service
# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Loaded services file OK.
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions




開放防火牆
# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --reload
# firewall-cmd --zone=public --list-all



系統使用者加入 samba 使用者
# smbpasswd -a kk3
New SMB password:123456




Client端連線
只有第1次需登入帳號密碼
登入後建立網路磁碟機
後即不需登入帳號密碼
\\163.16.63.191







安裝Apache
# yum -y install httpd
# rpm -qa | grep httpd
httpd-2.4.6-67.el7.centos.6.x86_64
httpd-tools-2.4.6-67.el7.centos.6.x86_64

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

# systemctl status httpd.service

# firewall-cmd  --permanent --zone=public --add-service=http
# firewall-cmd --reload
# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: ssh dhcpv6-client http
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


由Client端瀏覽器測試
http://163.16.63.191/



設定虛擬目錄
# mkdir /home/myweb
# cd /home/myweb
# vi /home/myweb/index.html
this is My Visual Dir...


# vi /etc/httpd/conf/httpd.conf
...
Alias /myweb "/home/myweb"
<Directory "/home/myweb">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>


# systemctl restart httpd.service


關閉SELINUX,後重開
# vi /etc/sysconfig/selinux
...
SELINUX=disabled
...

# sestatus
SELinux status:                 disabled


由Client端瀏覽器測試
http://163.16.63.191/myweb