sudu在linux的命令,Linux的sudo命令
sudo命令允許您以另一個用戶身份運行程序,默認情況下是root用戶。如果你在命令行的權限上花了很多時間,sudo就是你經常使用的命令之一
使用sudo而不是以root身份登錄會更安全,因為您可以在不知道root密碼的情況下為單個用戶授予有限的權限,在本教程中,我們將解釋如何使用sudo命令。
安裝Sudo
sudo包預裝在大多數Linux發行版上。
要檢查系統上是否安裝了sudo軟件包,請打開控制臺,鍵入sudo并按Enter。如果您安裝了sudo,系統將顯示一條簡短的幫助消息,否則您將看到類似的內容sudo command not found。
如果未安裝sudo,您可以使用發行版的軟件包管理器輕松安裝它。
在Ubuntu和Debian上安裝Sudoapt install sudo
在CentOS和Fedora上安裝Sudoyum install sudo
將用戶添加到Sudoers
默認情況下,大多數Linux發行版授予sudo訪問權限就像將用戶添加到文件中定義的sudo組一樣簡單。該組的成員將能夠以root身份運行任何命令。組的名稱可能因發行版而異。
在基于RedHat的發行版(如CentOS和Fedora)上,sudo組的名稱是wheel。要將用戶添加到組運行:usermod -aG wheel username
在Debian,Ubuntu及其衍生品上,該組的成員sudo被授予sudo訪問權限:usermod -aG sudo username
出于安全原因,默認情況下禁用Ubuntu中的root用戶帳戶,并鼓勵用戶使用sudo執行系統管理任務。由Ubuntu安裝程序創建的初始用戶已經是sudo組的成員,因此如果您正在運行Ubuntu,則您登錄的用戶可能已被授予sudo權限。
如果要允許特定用戶僅將某些程序作為sudo運行,而不是將用戶添加到sudo組,請將用戶添加到該sudoers文件中。
例如,要允許用戶myfreax僅以sudo 身份運行mkdir命令,請鍵入:sudo visudo
并附加以下行:myfreax ALL=/bin/mkdir
在大多數系統上,該visudo命令/etc/sudoers使用vim文本編輯器打開文件。如果您沒有使用vim的經驗
您還可以允許用戶在不驗證自身的情況下運行sudo命令:myfreax ALL=(ALL) NOPASSWD: ALL
如何使用Sudo
該sudo命令的語法如下:sudo OPTION.. COMMAND
該sudo命令有許多控制其行為的選項,但通常sudo以最基本的形式使用,沒有任何選項。
要使用sudo,只需在命令前加上sudo:sudo command
Sudo將讀取/etc/sudoers文件并檢查調用用戶是否被授予sudo。在第一次在會話中使用sudo時,系統將提示您輸入用戶密碼,命令將以root身份執行。
例如,要列出/root您將使用的目錄中的所有文件:sudo ls /root[sudo] password for myfreax:
. .. .bashrc.cache.config .local .profile
密碼超時
默認情況下,sudo會在sudo不活動五分鐘后再次要求您輸入密碼。您可以通過編輯sudoers文件來更改默認超時。打開文件visudo:sudo visudo
通過添加下面的行來設置默認超時,其中10是以分鐘為單位指定的超時:Defaults timestamp_timeout=10
如果要僅為特定用戶更改時間戳,請添加以下行,其中user_name是相關用戶。Defaults:user_name timestamp_timeout=10
以Root以外的用戶身份運行命令
一直以來人們對有一種錯誤的看法,認為sudo僅用于向普通用戶提供root權限。實際上,您可以使用sudo以任何用戶身份運行命令。
-u選項允許您以指定用戶身份運行命令。
在以下示例中,我們使用sudo以whoami“myfreax”用戶身份運行命令:sudo -u myfreax whoami
whoami命令將打印運行該命令的用戶的名稱:myfreax
如何使用Sudo重定向
如果您嘗試將命令的輸出重定向到您的用戶沒有寫權限的文件,您將收到“權限被拒絕”錯誤。sudo echo "myfreax" > /root/file.txtbash: /root/file.txt: Permission denied
發生這種情況是因為>輸出的重定向“myfreax”是在您登錄的用戶下執行的,而不是由sudo指定的用戶。重定向在sudo調用命令之前發生。
一種解決方案是使用sudo sh -c以下方法以root身份調用新shell :sudo sh -c 'echo "test" > /root/file.txt'
另一種選擇是將輸出作為普通用戶傳遞給tee命令,如下所示:echo "test" | sudo tee /root/file.txt
如果您有任何疑問,請隨時發表評論。
總結
以上是生活随笔為你收集整理的sudu在linux的命令,Linux的sudo命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux swi 内核sp,Linux
- 下一篇: linux下qt多个程序打包,解决Ubu