作為ubuntu等桌面系統,默認登錄的帳號是沒有root權限的,為了提升權限來執行任務,我們一般用到sudo+命令來執行,但是不難發現我們一般都要輸入密碼。那么有沒有什么方法可以讓我們執行sudo的時候不輸入密碼呢?當然有咯。那就是對sudoers文件進行修改。
進入終端,執行
sudo vi sudoers
在#User privilege specification下面會羅列一些規則,我們現在需要做的是對我們的用戶進行一些操作。假如我們的用戶名為test,那么在文件的最后一行添加:
test ALL=(ALL) NOPASSWD: ALL
然后保存退出,執行
sudo usermod -aG test test
重啟下看看nenew帳號執行sudo還需要密碼么?這里我們需要了解順序這個問題,在ubuntu的wiki上有比較詳細的介紹。
%admin ALL=(ALL) ALL
這行只是讓admin組的用戶擁有可以像任何帳號一樣執行命令的能力,但是還是需要有密碼的,因此我們需要把我們的nenew用戶加入到admin組中,所以有sudo usermod -aG admin nenew ,然后是對其進行NOPASSWD定義,這行一定要在%admin ALL=(ALL) ALL 這行后面,才會生效。
http://blog.csdn.net/lonelysky/article/details/55100701
以一個例子來講ubuntu12.04下腳本文件內執行sudo 命令自動輸入密碼
原文連接http://blog.sina.com.cn/s/blog_951ca19b0101be96.html
在上一篇的文章中(發文時間為2012-10-30 16:09),掛載U盤腳本文件和卸載U盤腳本文件中都用到sudo命令,因此需要用戶手動的輸入密碼,這樣很麻煩,如果能在腳本文件中自動輸入密碼就會更加方便。PS:此篇文章中的內容參考了上一篇文章中的內容。
1.文件U是掛載U盤的可執行腳本文件,代碼為
#掛載U_盤
#!/bin/sh
sudo mount -t vfat /dev/sdb1 U_Pan
在終端中輸入命令U(前提是進入了文件U所在的目錄,以下同此),此時會提示[sudo] password for usr_name: (usr_name為你的用戶名),此時需要手動輸入密碼,比較麻煩。
2.若在腳本文件中自動輸入密碼,需要安裝expect,本人也是開始學習ubuntu不久,也不清楚ubuntu12.04是否在裝系統的時候自動安裝了expect且也不知道expect是什么意思,我就用命令安裝了expect(安裝需要的時間不長,建議新手們也都安裝一下),安裝命令為sudo apt-get install expect
3.可執行腳本文件u的功能也是掛載U盤,它的優點是在終端中輸入命令u后不需要手動輸入密碼,這樣掛載U盤的操作只需要輸入命令u一步即可,不需要輸入命令U和輸入密碼兩步完成。下面解釋一下文件u里每行代碼的作用。u中代碼如下
#!/usr/bin/expect
spawn sudo mount -t vfat /dev/sdb1 U_Pan
send "password\r"
interact
第一行是固定格式,
第二行是要執行的命令,將要執行的命令放在spawn之后,
第三行是向終端發送密碼,password是用戶密碼,
第四行是交互,執行此可執行腳本文件后,向終端發送執行的過程。
自此,在可執行腳本文件中自動輸入密碼的工作就完成了。
http://blog.csdn.net/wang_xya/article/details/38975611