su命令可以解決切換用戶身份的需求,強烈建議在切換用戶身份時添加減號(-)。這個意味著完全切換到新的用戶,即把環境變量信息也變更為新用戶的相應信息。
sudo命令用于給普通用戶提供額外的權限來完成原本root管理員才能完成的任務,格式為“sudo \[參數\] 命令名稱”
**sudo服務的參數及作用**
參數
作用
-h
列出幫助信息
-l
列出當前用戶可執行的命令
-u用戶名或UID值
以指定的用戶身份執行命令
-k
清空密碼的有效時間,下次執行sudo時需再次進行密碼驗證
-b
在后臺執行指定的命令
-p
更改詢問密碼的提示語
總結來說,sudo命令具有如下功能:
- 限制用戶執行指定的命令;
- 記錄用戶執行的每一條命令;
- 配置文件(/etc/sudoers)提供集中的用戶管理、權限與主機等參數;
- 驗證密碼的后5分鐘內(默認值)無須再讓用戶再次驗證密碼
如果擔心直接修改配置文件出現問題,則用**visudo命令**來配置用戶權限。這個命令在配置用戶權限時將禁止多個用戶同時修改sudoers配置文件,還可以對配置文件內的參數進行語法檢查,并在發現參數錯誤時進行報錯。
注:只有root管理員才可以使用visudo命令編輯sudo服務的配置文件。
如:在第99行填信息
誰可以使用 允許使用的主機=(以誰的身份) 可執行命令的列表
visudo
96 ##
97 ## Allow root to run any commands anywhere
98 root ALL=(ALL) ALL
99 linuxprobe ALL=(ALL) ALL
然后切換到普通用戶,就可以sudo -l查看所有可執行的命令。
在實際生產中不允許某個普通用戶擁有整個系統的所有命令最高執行權,因此上面的ALL參數就有些不適合了。
注:讓某用戶使用root管理員身份執行指定的命令,一定要給出該命令的絕對路徑。
可以用whereis查看命令的絕對路徑,比如cat,whereis cat
可以把上面99行改成:
99 linuxprobe ALL=(ALL) /usr/bin/cat
保存后,su – linuxprobe
cat /etc/shadow(結果是沒有權限打開)
sudo cat /etc/shadow (可以看到里面的內容了)
注:上面每次sudo都要驗證下密碼,可以添加NOPASSWD參數,使得用戶執行sudo命令時不再需要密碼驗證。linuxprobe ALL=NOPASSWD : /usr/sbin/poweroff
- 常用的RPM軟件包命令
- 常見的Yum命令
- Linux開機過程
- Systemd初始化進程服務的劣勢:
- system 與 system V init 的區別以及作用
- systemctl管理服務的啟動、重啟、停止、重載、查看狀態等常用命令
- systemctl設置服務開機啟動、不啟動、查看各級別下服務啟動狀態等常用命令
- 主流 Linux 系統選擇 Bash 解釋器作為命令行終端主要有以下 4 項優勢
- 常見執行Linux命令的格式:
- man命令中常用按鍵以及用途
- man命令幫助信息的接個歐以及意義
- 常用系統命令(10)
- 系統狀態檢測命令(8)
- 工作目錄切換命令(3)
- 文本文件編輯命令(9)
- 文件目錄管理命令(7)
- 打包壓縮與搜索命令(3)
- 輸入輸出重定向
- 管道命令符
- 命令行的通配符
- 常用的轉義字符
- 重要的環境變量
- Vim文本編輯器
- 編寫Shell腳本
- 流程控制語句
- 計劃任務服務程序
- 用戶身份與文件權限
- 文件權限與歸屬
- 文件的隱藏屬性
- 文件訪問控制列表
- su命令與sudo服務
- 存儲結構與磁盤劃分
- 使用RAID與LVM磁盤陣列技術
- iptables與firewalld防火墻
- 使用SSH服務管理遠程主機