Debian8.1 安裝samba與windows共享文件,在系統重啟后samba服務無法自動啟動


Debian8.1安裝配置完成並成功與window共享文件后,系統重啟后再次訪問時出現如下問題

(圖)的解決方法

手動重啟samba

sudo /etc/init.d/samba start

從window端訪問成功,所以以一本人現在的認知決定手動寫一個腳本開機自動啟動samba服務器。

一,如何添加這一個開機自動運行腳本呢?

1.腳本內容

#!/bin/bash ### BEGIN INIT INFO # Provides: start_samba # Required-Start: $all # Required-Stop: # Default-Start:     2 3 4 5 # Default-Stop:      0 1 6 # Short-Description: Run /etc/init.d/start_samba if it exist ### END INIT INFO sudo  /etc/init.d/samba start

上面那一堆還不知道有什么意義,但是沒有就會有警告,不知道去掉會不會對腳本的執行有沒有影響。

2.腳本寫完成后增加執行權限並復制到啟動目錄下

sudo chmod  +x start_samba

sudo cp  start_samba  /etc/init.d/

3.測試運行發現這個這個腳本在執行時需要手動輸入密碼,所以肯定不能達到目地的。

 

4.開始查找關於sudo的配置的問題總結如下

sudo的特點:

sudo能夠限制指定用戶在指定主機上運行某些命令。

sudo可以提供日志,忠實地記錄每個用戶使用sudo做了些什么,並且能將日志傳到中心主機或者日志服務器。

sudo為系統管理員提供配置文件,允許系統管理員集中地管理用戶的使用權限和使用的主機。它默認的存放位置是/etc/sudoers。

sudo使用時間戳文件來完成類似“檢票”的系統。當用戶執行sudo並且輸入密碼后,用戶獲得了一張默認存活期為5分鍾的“入場券”,默認值可以在編譯的時候改變)。超時以后,用戶必須重新輸入密碼。

sudo其它常用的一些常用參數:

sudo  -h      Help列出使用方法,退出。

sudo  -V        Version顯示版本信息,並退出。

sudo  -l       List列出當前用戶可以執行的命令。只有在sudoers里的用戶才能使用該選項。

sudo     -u        username#uidUser以指定用戶的身份執行命令。后面的用戶是除root以外的,可以是用戶名,也可以是#uid。

sudo  -k       Kill清除“入場卷”上的時間,下次再使用sudo時要再輸入密碼。

sudo  -K      Surekill與-k類似,但是它還要撕毀“入場卷”,也就是刪除時間戳文件。

sudo  -b      commandBackground在后台執行指定的命令。 

配置sudo

通過編輯/etc/sudoers文件,而且只有超級用戶才可以修改它,還須使用visudo編輯。之所以使用visudo有兩個原因,一是它能夠防止

兩個用戶同時修改它;二是它也能進行有限的語法檢查。所以,即使只有你一個超級用戶,你也最好用visudo來檢查一下語法。

其配置文件內容部分如下:

# User privilege specification root ALL=(ALL:ALL) ALL fa ALL=(ALL:ALL) ALL # Allow members of group sudo to execute any command %sudo    ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d

其中三個ALL的含義:第一個是指網絡中的主機;第二個括號中的兩個分別是指 sudo -u命令時可以以誰的身份去執行(兩個選一個)例子中的ALL就是

 可以以任何用戶身份去執行;第三個時可以執行的指令名 。其中第二個括弧中的兩個選項可以在sudoers 文件中設置一個為默認

Defaults:user runas_default=user1

例如:

讓用戶user可以通過sudo執行任何root可執行的命令

user   ALL=(ALL:ALL)ALL

也可以指定user使用sudo 可執行的命令

user localhost=/sbin/ifconfig,/bin/ls

再執行其他的不屬於上面限定的命令就會被sudo限制。

 

好了言歸正傳讓腳本中啟動samba服務的命令執行時不再需要輸入密碼,只要在sudoers文件中加入下面這一行就可以了。

user NanoPi2=NOPASSWD:/etc/init.d/samba

 然后上面哪個腳本就可以不用輸入管理員密碼執行了

2,如何設置開機自動運行呢?

把腳本復制到/etc/init.d/下再執行下面命令

sudo updata-rc.d   start_samba  defaults   99

其中的數字是啟動順序,數字越大啟動越靠后啟動,如果是網絡應用建議數字設置大一點。

相反如果要刪除這個啟動項只要執行下面命令

sudo updata-rc.d  -f  start_samba   remove

參考博文:  http://www.jb51.net/article/48390.htm

              https://www.magentonotes.com/ubuntu-config-autostart-shell-script.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM