原文網址:Linux權限系列--給普通用戶添加某個命令的sudo權限_IT利刃出鞘的博客-CSDN博客
簡介
說明
本文介紹Linux系統如何給普通用戶添加某個命令的sudo權限。
使用場景
普通開發者可能需要sudo的命令:
apt-get(經常要安裝軟件)
service
make install(經常要編譯安裝)
普通開發者不能有sudo權限的命令:
passwd(不能修改其他用戶密碼)
vi sudo/chown/chmod/chgrp(不能修改sudo,不能修改其他用戶文件的訪問權限)
ls/vim (不能查看和編輯其他用戶目錄和文件)
本文的目標
給普通用戶(knife這個用戶)添加如下幾個命令的sudo權限:
- shutdown
- reboot
- halt
步驟
切換到root用戶下
在命令行輸入:su,回車,然后輸入密碼(即你的登錄密碼,且密碼默認不可見)。
給/etc/sudoers增加寫權限
sudoers文件默認是只讀的,對root來說也是,因此需先添加sudoers文件的寫權限,執行下面命令:
chmod u+w /etc/sudoers
編輯sudoers文件
執行下面命令:
vi /etc/sudoers
在文件最后添加配置(這里knife是你的用戶名):
knife ALL=(ALL:ALL) NOPASSWD: /sbin/shutdown,/sbin/reboot,/sbin/halt
注意:必須放在文件最后,這樣才能保證有效,否則可能被其他的組的配置給影響。?
如下:
撤銷sudoers文件寫權限
chmod u-w /etc/sudoers
測試
切換到knife用戶
su knife
執行shutdown命令?
sudo shutdown
結果:
sudoers的權限含義
用戶的權限
# 允許用戶myUser使用sudo執行命令(需要輸入密碼)。
myUser ALL=(ALL:ALL) ALL
# 允許用戶youuser使用sudo執行命令,并且在執行的時候不輸入密碼。
myUser ALL=(ALL:ALL) NOPASSWD: ALL
?組的權限
# 允許用戶組myUser里面的用戶使用sudo執行sudo命令(需要輸入密碼)。
%myUser ALL=(ALL) ALL?
# 允許用戶組myUser里面的用戶使用sudo執行命令,并且在執行的時候不輸入密碼。
%myUser ALL=(ALL) NOPASSWD: ALL
示例
root ? ?ALL=(ALL:ALL) ALL
上面的配置表示: root 用戶可以在 任意機器 上以 任意用戶 和 任意用戶組 的 任意組合 執行 任意命令。
- root:用戶 (%admin 表示 用戶組)
- ALL=:所有 host (sudoers 配置可能被用到多臺機器上)
- ALL::任意 用戶
- :ALL:任意 用戶組
- ALL:任意 命令
其他網址
linux給普通用戶添加sudo權限 - 簡書