內容選單標籤

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;