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