1. 程式人生 > >su和sudo命令詳解

su和sudo命令詳解

我們知道,在Linux下對很多檔案進行修改都需要有root(管理員)許可權,比如對/ect/profile等檔案的修改。很多情況下,我們在進行開發的時候都是使用普通使用者進行登入的,尤其在進行一些環境變數的配置工作時,常常需要對一些檔案進行修改。那麼我們如何獲取管理員許可權呢?

​ 一般來說,有兩種方法。一是:利用su命令切換到root使用者,在root使用者下對那些檔案進行修改,完成相關配置工作。二是:利用su命令切換到root使用者,修改/etc/sudoers檔案,讓普通使用者具有sudo許可權,然後利用su命令切換回普通使用者,在執行相關命令前加上sudo。下面我會先介紹這兩個命令。

su

Linux su命令用於變更為其他使用者的身份,除 root 外,需要鍵入該使用者的密碼

使用許可權:所有使用者。

語法

su [-fmp] [-c command] [-s shell] [--help] [--version] [-] [USER [ARG]]

選項

選項 說明
-c<指令>或–command=<指令> 執行完指定的指令後,即恢復原來的身份;
-f或——fast 適用於csh與tsch,使shell不用去讀取啟動檔案;
-l或——login 改變身份時,也同時變更工作目錄,以及HOME,SHELL,USER,logname。此外,也會變更PATH變數;
-m,-p或–preserve-environment 變更身份時,不要變更環境變數;
-s\或–shell=\ 指定要執行的shell;
–help 顯示幫助;
–version 顯示版本資訊。

例項

變更帳號為 root 並在執行 ls 指令後退出變回原使用者

su -c ls root

變更帳號為 root 並傳入 -f 引數給新執行的 shell

su root -f

變更帳號為 clsung 並改變工作目錄至 clsung 的家目錄(home dir)

su - clsung

切換使用者

hnlinux@ylg
:~$ whoami //顯示當前使用者 hnlinux hnlinux@wylg:~$ pwd //顯示當前目錄 /home/hnlinux hnlinux@ylg:~$ su root //切換到root使用者 密碼: root@ylg:/home/hnlinux# whoami root root@ylg:/home/hnlinux# pwd /home/hnlinux

切換使用者,改變環境變數

hnlinux@ylg:~$ whoami //顯示當前使用者
hnlinux
hnlinux@ylg:~$ pwd //顯示當前目錄
/home/hnlinux
hnlinux@ylg:~$ su - root //切換到root使用者
密碼: 
root@ylg:/home/hnlinux# whoami 
root
root@ylg:/home/hnlinux# pwd //顯示當前目錄
/root

sudo

Linux sudo命令用來以其他身份來執行命令,預設的身份為root。在/etc/sudoers中設定了可執行sudo指令的使用者。若其未經授權的使用者企圖使用sudo,則會發出警告的郵件給管理員。使用者使用sudo時,必須先輸入密碼,之後有5分鐘的有效期限,超過期限則必須重新輸入密碼。

語法

sudo(選項)(引數)

選項

選項 說明
-b 在後臺執行指令;
-h 顯示幫助;
-H 將HOME環境變數設為新身份的HOME環境變數;
-k 結束密碼的有效期限,也就是下次再執行sudo時便需要輸入密碼;。
-l 列出目前使用者可執行與無法執行的指令;
-p 改變詢問密碼的提示符號;
-s\ 執行指定的shell;
-u<使用者> 以指定的使用者作為新的身份。若不加上此引數,則預設以root作為新的身份;
-v 延長密碼有效期限5分鐘;
-V 顯示版本資訊。

例項

sudo命令使用

$ sudo ls
[sudo] password for hnlinux: 
hnlinux is not in the sudoers file. This incident will be reported.

指定使用者執行命令

# sudo -u userb ls -l

以root許可權執行上一條命令

$ sudo !!

以特定使用者身份進行編輯文字

$ sudo -u uggc vi ~www/index.html
//以 uggc 使用者身份編輯  home 目錄下www目錄中的 index.html 檔案

獲取管理員許可權

方法一

一般情況下,Linux下root使用者預設是沒有密碼,要利用su命令切換到root使用者,需要先利用sudo passwd root命令對root使用者設定初始密碼

sudo passwd root #設定初始密碼

在修改完root使用者的密碼之後,我們利用su root命令,輸入root使用者的密碼就可以切換到root使用者下來了。

方法二

在執行命令前加上sudo讓使用者獲得管理員許可權,首先需要在root使用者下,具有管理員許可權對/etc/sudoers檔案進行修改。

我們需要先利用su命令切換到root使用者下,輸入visudo -f /etc/sudoers命令進行編輯

visudo -f  /etc/sudoers

進入檔案之後,找到root ALL=(ALL) ALL這條語句所在的地方,將root替換成你想要具有管理員許可權的使用者名稱(比如:ylg),在這行語句下面輸入ylg ALL=(ALL) ALL,然後進行儲存

root ALL=(ALL) ALL
# 新增
ylg ALL=(ALL) ALL

在給普通使用者管理員許可權之後,以後為了修改檔案就可以直接在命令前加上sudo即可,如

sodu vi /etc/profile

相關推薦

susudo命令

我們知道,在Linux下對很多檔案進行修改都需要有root(管理員)許可權,比如對/ect/profile等檔案的修改。很多情況下,我們在進行開發的時候都是使用普通使用者進行登入的,尤其在進行一些環境變數的配置工作時,常常需要對一些檔案進行修改。那麼我們如何獲取

RMAN的listreport命令

和數 目標 控制文件 備份 database win 參數 有用 方法 一.List命令 RMAN的list命令是一種在數據庫控制文件或恢復目錄中查詢備份的歷史信息的方法。 1.列出對應物 命令:list incarnation 作用:為用戶提供目標數據庫的每個數據庫對應物

susudo命令及限制root遠程登錄

su sudo 限制root遠程登錄 su命令 切換用戶 加-徹底進入用戶,不加-進入不徹底 [root@aminglinux-02 ~]# su aming [aming@aminglinux-02 root]$ whoami aming [aming@aminglinux-02 root]$

susudo命令的區別

exe disk 驗證 參與 left 受限 n) execute 讀取文件 linux su和sudo命令的區別 一. 使用 su 命令臨時切換用戶身份 1、su 的適用條件和威力   su命令就是切換用戶的工具,怎麽理解呢?比如我們以普通用戶beinan登錄的,但要

Linux中topfree命令(轉)

機器 負載 選擇 就會 image 的區別 包括 linux中 占用內存 top:命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表. 該命令可以按CPU使用.內存使用和執行時間對任務進行排序; 而且該命令的很多特性都可以通過交互式命令或者在個

sudo命令

set 指令 alt 成對 就是 管理時間 方式 超級 密碼 1.簡介: sudo是linux系統管理指令,是允許系統管理員讓普通用戶執行一些或者全部的root命令的一個工具,如halt,reboot,su等等。這樣不僅減少了root用戶的登錄 和管理時間,同樣也提高了安全

linux findlocate命令

linux中find命令優點是能實現精確查詢,缺點對系統資源耗費大。 一:檔案查詢命令,按檔名稱查詢. 官方要求檔名需要加雙引號,保證搜尋的完整性。 find 目錄 -iname " init "(不區分大小寫) find 目錄 -name “init

Linux系統中定時任務croncrontab命令與配置規則說明

cron機制         cron可以讓系統在指定的時間,去執行某個指定的工作,我們可以使用crontab指令來管理cron機制 crontab引數         -u:這個引數可以讓我們去編輯其他人的crontab,如果沒有加上這個引數的話就會開啟自己的crontab

Linux 中ps top命令

ps 和 top 命令常用來檢視Linux系統程序相關資訊。 ps命令:可以檢視程序的瞬間資訊。 top命令:可以持續的監視程序的資訊。 場景一:如何檢視Linux系統中存在mysql、nginx、tomcat程序? 方法一:輸入命令:ps -ef|grep

croncrontab命令 crontab 每分鐘、每小時、每天、每週、每月、每年定時執行 crontab每5分鐘執行一次

cron機制        cron可以讓系統在指定的時間,去執行某個指定的工作,我們可以使用crontab指令來管理cron機制crontab引數        -u:這個引數可以讓我們去編輯其他人的crontab,如果沒有加上這個引數的話就會開啟自己的crontab 

Linux基礎知識之chattrlsattr命令

有時候你發現通過root使用者都不能修改某個檔案,大部分原因是曾經用chattr命令鎖定該檔案了。chattr命令的作用很大,其中一些功能是由Linux核心版本來支援的,不過現在生產絕大部分跑的linux系統都是2.6以上核心。通過chattr命令修改屬效能夠提高系統的安全性,但是它並不適合所有的目

linux susudo命令的區別 -【linux學習筆記】

linux su和sudo命令的區別  首先,兩個縮寫,  su : switch user                                 sudo : super user do ! 一. 使用 su 命令臨時切換使用者身份 1、su 的適用

檢視linux下登陸使用者的行為資訊—wwho命令

檢視使用者的作業系統管理員若想知道某一時刻使用者的行為,只需要輸入命令w 即可,在SHELL終端中輸入如下命令: [[email protected] ~]# w 可以看到執行w命令及顯示結果。 命令資訊含義上述顯示的資訊分別表示如下: 第一行顯示系統的彙

linux系統sudo命令

在sudo於1980年前後被寫出之前,一般使用者管理系統的方式是利用su切換為超級使用者。但是使用su的缺點之一在於必須要先告知超級使用者的密碼。sudo使一般使用者不需要知道超級使用者的密碼即可獲得許可權。首先超級使用者將普通使用者的名字、可以執行的特定命令、按照哪種使用者或使用者組的身份執行等資訊,登記

mkdirrmdir命令

mkdir 實現在指定位置建立以指定的名稱命名的資料夾或目錄。要建立資料夾或目錄的使用者必須對所建立的資料夾的父資料夾具有寫許可權。並且,所建立的資料夾(目錄)不能與其父目錄(即父資料夾)中的檔名重名(區分大小寫)。 命令引數: -m:設定許可權<模式>; -p

DOS批處理高階教程(三) : 批處理變數set命令

前言 這裡主要是帶著過一下相關的簡單概念和用法, 是對於有一定的基礎和編寫指令碼經驗的同學而言, 那麼一般下面的用法都是一眼看出作用和原理起到一個複習的作用。對於不熟悉的可以查詢相關命令和百度即可。 第四章 批處理中的變數 批處理中的變數,我

hbase shell基礎常用命令(轉)

hbase提供了一個shell的終端給使用者互動。使用命令hbase shell進入命令介面。通過執行 help可以看到命令的幫助資訊。 以網上的一個學生成績表的例子來演示hbase的用法。 name grad course math art Tom 5 97 87 Jim 4 8

linux Shell ----mkdirtouch命令

一、建立目錄(mkdir命令詳解) amosli@amosli-pc:~/learn$ mkdir dir amosli@amosli-pc:~/learn/dir$ mkdir folder amosli@amosli-pc:~/learn/dir$ ls folder

croncrontab命令

cron機制        cron可以讓系統在指定的時間,去執行某個指定的工作,我們可以使用crontab指令來管理cron機制crontab引數        -u:這個引數可以讓我們去編輯其他人的crontab,如果沒有加上這個引數的話就會開啟自己的crontab   

Linux中topfree命令

top:命令提供了實時的對系統處理器的狀態監視.它將顯示系統中CPU最“敏感”的任務列表. 該命令可以按CPU使用.記憶體使用和執行時間對任務進行排序; 而且該命令的很多特性都可以通過互動式命令或者在個人定製檔案中進行設定.  top - 01:06:48 up