linux設置su和sudo為不需要密碼


一 設置sudo為不需要密碼

 

有時候我們只需要執行一條root權限的命令也要su到root,是不是有些不方便?這時可以用sudo代替。默認新建的用戶不在sudo組,需要編輯/etc/sudoers文件將用戶加入,該文件只能使用visudo命令,

1) 首先需要切換到root, su - (注意有- ,這和su是不同的,在用命令"su"的時候只是切換到root,但沒有把root的環境變量傳過去,還是當前用乎的環境變量,用"su -"命令將環境變量也一起帶過去,就象和root登錄一樣)

2) 然后 visudo 或者 vi /etc/sudoers, visudo 這個和vi的用法一樣,由於可能會有人不太熟悉vi,所以簡要說一下步驟

移動光標,到一行root ALL=(ALL)   ALL的下一行,按a,進入append模式,輸入
your_user_name ALL=(ALL)   ALL

然后按Esc,再輸入:w保存文件,再:q退出

這樣就把自己加入了sudo組,可以使用sudo命令了。

3) 默認5分鍾后剛才輸入的sodo密碼過期,下次sudo需要重新輸入密碼,如果覺得在sudo的時候輸入密碼麻煩,把剛才的輸入換成如下內容即可:
your_user_name ALL=(ALL) NOPASSWD: ALL

至於安全問題,對於一般個人用戶,我覺得這樣也可以的。

4)如果你想設置只有某些命令可以sudo的話,your_user_name   ALL= (root) NOPASSWD: /sbin/mount, (root) NOPASSWD: /bin/umount, (root) NOPASSWD: /mnt/mount, (root) NOPASSWD: /bin/rm, (root) NOPASSWD: /usr/bin/make, (root) NOPASSWD: /bin/ln, (root) NOPASSWD: /bin/sh, (root) NOPASSWD: /bin/mv, (root) NOPASSWD: /bin/chown, (root) NOPASSWD: /bin/chgrp, (root) NOPASSWD: /bin/cp, (root) NOPASSWD: /bin/chmod

 

注意: 有的時候你的將用戶設了nopasswd,但是不起作用,原因是被后面的group的設置覆蓋了,需要把group的設置也改為nopasswd。

joe ALL=(ALL) NOPASSWD: ALL

%admin ALL=(ALL) NOPASSWD: ALL

 

參考: 

http://blog.163.com/love-love-l/blog/static/21078304201071232234518/

 

 

二 設置su為不需要密碼
如果需要對某用戶su命令也不需要輸入密碼,則需要修改下列的:

1)切換到root權限;
2)創建group為wheel,命令為groupadd wheel;
3)將用戶加入wheel group中,命令為usermod -G wheel joe;
4)修改su的配置文件/etc/pam.d/su,增加下列項:
 auth       required   pam_wheel.so group=wheel 
# Uncomment this if you want wheel members to be able to
# su without a password.
 auth       sufficient pam_wheel.so trust use_uid

至此你可以使用例如如下的命令且不需要輸入密碼:su joe -c command。
 
三 ubuntu 啟用root
sudo -i
sudo passwd root

disable by below:
sudo passwd -dl root

 

1. 當用戶執行sudo時,Linux系統會去尋找/etc/sudoers文件,並且這是主動的,判斷用戶是否有執行sudo命令的權限
2. 如果用戶有執行sudo的權限,讓用戶輸入自己的密碼來確認,這里比使用root的密碼強多了,贊一下
3. 如果密碼輸入正確,開始執行sudo后面跟的shell命令
4. 如果要切換的身份相同, 和su命令一樣,也不用輸入密碼

hadoop ALL=(root)NOPASSWD:ALL

這樣也行

hadoop ALL=(ALL) ALL

這里面不是說不需要輸入密碼,而是不再需要用su命令切換到root賬戶再去執行root賬號才能執行的操作。例如在/opt下新建一個文件夾test。原來的操作是su切換到root,輸入root密碼,執行操作結束后exit返回到當前賬戶。而現在只需要sudo mkdir /opt/test,再輸入自己的密碼就可以搞定,類似於Ubuntu中安裝系統時創建的那個賬戶(具有執行sudo命令的特權),因為第一次執行sudo特權命令的時候輸入的密碼有生命周期,所以很短時間內再次使用是不需要再輸入密碼的。
參考:

 

http://cosminswiki.com/index.php/How_to_let_users_su_without_password
http://ag-up.com/?p=457
 
 


免責聲明!

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



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