sudo 限制普通用戶權限

限制用戶sudo所能執行的命令

linux是多用戶多任務的分時操做系統,共享該系統的用戶每每不僅一個。linux

但因爲root帳戶密碼的敏感性和root帳號的無限制權限, 有必要經過useradd建立一些普通用戶, 只讓他們擁有不徹底的權限; 若有必要,再來申請執行一些root權限的指令。
sudo就是來解決這個需求的。
sudo命令的執行流程是: 當前用戶轉換到root, 而後以root身份執行命令, 執行完成後, 直接退回到當前用戶.
須要注意的是: 執行sudo時輸入的密碼, 是當前用戶的密碼, 並不是root密碼.ide

賦予用戶sudo操做的權限
[root@zhang ~]# visudo
#在99行下面添加如下內容
zhang ALL=(ALL) ALL
#若是是命令使用下面的方式:zhang ALL=(ALL) /bin/touch(多個權限用「,」分開,ALL全部權限,NOPASSWD: ALL免密碼)操作系統

注:
通常經常使用sudo命令來臨時得到root權限執行一些特權命令。這很方便,可是也有一個問題: 普通用戶能夠經過sudo命令完成用戶的增刪和密碼的更改,甚至是對root用戶的密碼更改!!!
如:it

xxx@yyy$:sudo passwd root
Input the new UNIX pass word:
這樣就能夠直接越過root直接修改root的密碼。這是很是危險的。class

解決辦法

一、 groupadd admin 建立一個admin用戶組,後邊在設置權限時會用到權限

二、usermod -a -G admin [用戶] 將用戶添加到admin組密碼

三、在這裏能夠經過 /etc/sudoers 文件限制touch

$:sudo visudo
注意,這命令在最後修改sudoers文件中,也要加以限制,不然還能夠經過這個命令恢復。word

在這個文件中修改默認的如下兩行:di

%admin ALL=(ALL) ALL
%sudo ALL=(ALL) ALL
爲如下:

%admin ALL=/usr/sbin/,/sbin/,/usr/bin/,!/usr/bin/passwd,!/usr/sbin/visudo,!/usr/sbin/useradd,!/usr/sbin/userdel%sudo ALL=/usr/sbin/,/sbin/,/usr/bin/,!/usr/bin/passwd,!/usr/sbin/visudo,!/usr/sbin/useradd,!/usr/sbin/userdel

相關文章
相關標籤/搜索