歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

詳解Linux系統中su和sudo命令的用法

su
NAME(名稱)
       su - 運行替換用戶和組標識的shell

SYNOPSIS(總覽)
       su [OPTION]... [-] [USER [ARG]...]

DESCRIPTION(描述)
       修改有效用戶標識和組標識為USER的.

       -, -l, --login
              使得shell為可登錄的shell

       -c, --commmand=COMMAND
              傳遞單個COMMAND給-c的shell.

       -f, --fast
              傳遞-f給shell(針對csh或tcsh)

       -m, --preserve-environment
              不重置環境變量

       -p     與-m同

       -s, --shell=SHELL
              如果/etc/shells允許,運行SHELL.

       --help 顯示幫助並退出

       --version
              輸出版本信息並退出

       單一的-意味著-l.如果沒有給定USER,則假定為root.
例:

復制代碼代碼如下:
[root@Blackghost ~] su zhangying #切換用戶,原用戶環境變量
[root@Blackghost ~] su - zhangying #切換用戶,新用戶環境變量
[zhangying@Blackghost ~] su -c ls root #切換用戶執行命令,執行後返回原用戶


sudo
用戶也可以通過su切換到root用戶運行命令。然而與su的啟動一個root shell允許用戶運行之後的所有的命令不同,sudo可以針對單個命令授予臨時權限。sudo僅在需要時授予用戶權限,減少了用戶因為錯誤執行命令損壞系統的可能性。sudo也可以用來以其他用戶身份執行命令。此外,sudo可以記錄用戶執行的命令,以及失敗的特權獲取。

選項:

  -a type       使用指定的 BSD 認證類型
  -b            在後台運行命令
  -C fd         關閉所有 >= fd 的文件描述符
  -E            在執行命令時保留用戶環境
  -e            編輯文件而非執行命令
  -g group      以指定的用戶組執行命令
  -H            將 HOME 變量設為目標用戶的主目錄。
  -h            顯示幫助消息並退出
  -i [command]  以目標用戶身份運行一個登錄 shell
  -K            完全移除時間戳文件
  -k            無效的時間戳文件
  -l[l] command 列出用戶能執行的命令
  -n            非交互模式,將不提示用戶
  -P            保留組向量,而非設置為目標的組向量
  -p prompt     使用指定的密碼提示
  -S            從標准輸入讀取密碼
  -s [command]  以目標用戶身份運行 shell
  -U user       在列表時,列出指定用戶的權限
  -u user       以指定用戶身份運行命令(或編輯文件)
  -V            顯示版本信息並退出
  -v            更新用戶的時間戳而不執行命令
  --            停止處理命令行參數
例:

復制代碼代碼如下:
[root@Blackghost ~] sudo -u tank ls #以tank用戶,來執行ls命令
[zhangying@Blackghost ~] sudo touch test #以root賬戶來建一個文件test,為空默認是root用戶

Copyright © Linux教程網 All Rights Reserved