Linux系統是一個多用戶多任務的操做系統.php
用戶的帳號一方面能夠幫助系統管理員對使用系統的用戶進行跟蹤,並控制他們對系統資源的訪問;另外一方面也能夠幫助用戶組織文件,併爲用戶提供安全性保護。linux
每一個用戶帳號都擁有一個惟一的用戶名和各自的密碼。shell
用戶在登陸時鍵入正確的用戶名和密碼後,就可以進入系統和本身的主目錄。ubuntu
要想實現用戶帳號的管理:vim
注意三個文件:centos
命令 | 做用 | 說明 |
---|---|---|
useradd -m -g 組 新建用戶名 | 添加新用戶 | -m 自動創建用戶家目錄 -g 指定用戶所在的組,不然會創建一個和同名的組 |
passwd 用戶名 |
設置用戶密碼 | 若是是普通用戶,直接用 passwd 能夠修改本身的帳戶密碼 |
userdel -r 用戶名 | 刪除用戶 | -r 選項會自動刪除用戶家目錄 |
cat /etc/passwd | grep 用戶名 |
確認用戶信息 | 新建用戶後,用戶信息會保存在 /etc/passwd 文件中 |
useradd 選項 用戶名
複製代碼
經常使用選項:數組
示例:建立用戶zhangsan,不帶任何選項安全
useradd zhangsan
複製代碼
驗證是否成功:bash
驗證/etc/passwd的最後一行,查看是否有zhangsan的信息app
Last login: Sat Jun 8 22:28:50 2019 from 49.92.240.220
root@toby:~# useradd zhangsan
root@toby:~# useradd zhangsan
useradd: user 'zhangsan' already exists
root@toby:~# tail -1 /etc/passwd
zhangsan:x:1000:1000::/home/zhangsan:
root@toby:~#
複製代碼
驗證是否存在家目錄(在Centos下建立好用戶以後隨之產生一個同名家目錄);
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-timesync:x:100:102:systemd Time Synchronization,,,:/run/systemd:/bin/false
systemd-network:x:101:103:systemd Network Management,,,:/run/systemd/netif:/bin/false
systemd-resolve:x:102:104:systemd Resolver,,,:/run/systemd/resolve:/bin/false
systemd-bus-proxy:x:103:105:systemd Bus Proxy,,,:/run/systemd:/bin/false
syslog:x:104:108::/home/syslog:/bin/false
_apt:x:105:65534::/nonexistent:/bin/false
messagebus:x:106:110::/var/run/dbus:/bin/false
uuidd:x:107:111::/run/uuidd:/bin/false
ntp:x:108:114::/home/ntp:/bin/false
複製代碼
上圖中依次順序爲
用戶名:密碼:用戶ID:用戶組ID:註釋:家目錄:解釋器shell
注意:
在不添加選項的時候,執行useradd以後會執行一系列的操做
示例:添加選項,建立用戶lisi,讓lisi屬於501主組,自選靚號666,而且要求不能登陸到系統,能夠寫註釋爲「user lisi」。
root@toby:/home# useradd -g 1000 -u 666 -s /sbin/nologin -c "user lisi" lisi
root@toby:/home# tail -1 /etc/passwd
lisi:x:666:1000:user lisi:/home/lisi:/sbin/nologin
root@toby:/home#
複製代碼
注意:
linux123行的含義:
在linux123的組裏(組id是500)有一個組內用戶lisi(lisi的附加組就是500,附加組的名字是linux123)。
若是須要爲一個用戶指定多個附加組,只須要將多個附件組的id經過英文逗號「,」分割便可。
【主組只能有1個,附加組能夠多個,也能夠沒有附加組
【主組必須有】
【文檔的屬組指的是主組】
複製代碼
usermod
能夠用來設置 用戶 的 主組 / 附加組 和 登陸 Shell,命令格式以下:etc/passwd
的第 4 列 GID
對應的組etc/group
中最後一列表示該組的用戶列表,用於指定 用戶的附加權限提示:設置了用戶的附加組以後,須要從新登陸才能生效!
usermod 選項 用戶名
# 修改用戶的主組(passwd 中的 GID)
usermod -g 組 用戶名
# 修改用戶的附加組
usermod -G 組 用戶名
# 修改用戶登陸 Shell
usermod -s /bin/bash 用戶名
複製代碼
Usermod:user modify,用戶修改
經常使用選項:
選項 | 含義 |
---|---|
-g | 表示指定用戶的用戶主組,選項的值能夠是用戶組的id,也能夠是組名 |
-G | 表示指定用戶的用戶附加組,選項的值能夠是用戶組的id,也能夠是組名 |
-u | uid,用戶的id(用戶的標識符),系統默認會從500以後按順序分配uid,若是不想使用系統分配的,能夠經過該選項自定義 |
-l | 修改用戶名 |
-c<備註> | 修改用戶賬號的備註文字 |
-d<登入目錄> | 修改用戶登入時的目錄 |
-s | 修改用戶登入後所使用的shell |
示例:修改zhangsan用戶主組爲500,附加組改成501
usermod -g 500 -G 501 zhangsan
複製代碼
示例:修改zhangsan用戶用戶名,改成wangerma
usermod -l wangerma zhangsan 這裏的豎槓是 英文字母 l
複製代碼
注意:默認使用
useradd
添加的用戶是沒有權限使用sudo
以root
身份執行命令的,可使用如下命令,將用戶添加到sudo
附加組中
usermod -G sudo 用戶名
複製代碼
Linux不容許沒有密碼的用戶登陸到系統,所以前面建立的用戶目前都處於鎖定狀態,須要設置密碼以後才能登陸計算機。
passwd [用戶名] 【若是不指定用戶名則修改本身的密碼】
複製代碼
示例:設置wangerma用戶的密碼
passwd wangerma
複製代碼
注意:
這裏能夠先寫要修改的用戶, 中間插入選項和值
設置密碼以後shadow文件中的體現:可以看出lisi用戶沒有密碼的。
sshd:*:17616:0:99999:7:::
zhangsan:$6$Z7HX/.94$F78gf4VkGCSPADb/aA4lFhWwOYXyLuG.LWHjX7D.d4684d/oXIouzwoE0TvIX.JkjlgV4KLdisjvm1hf19vEJ/:18056:0:99999:7:::
lisi:!:18055:0:99999:7:::
複製代碼
在設置用戶密碼以後能夠登陸賬號,例如此處須要登陸zhangsan
提示
/etc/passwd
是用於保存用戶信息的文件/usr/bin/passwd
是用於修改用戶密碼的程序
which
命令能夠查看執行命令所在位置,例如:
which ls
# 輸出
# /bin/ls
which useradd
# 輸出
# /usr/sbin/useradd
複製代碼
Linux
中,絕大多數可執行文件都是保存在 /bin
、/sbin
、/usr/bin
、/usr/sbin
/bin
(binary
)是二進制執行文件目錄,主要用於具體應用/sbin
(system binary
)是系統管理員專用的二進制代碼存放目錄,主要用於系統管理/usr/bin
(user commands for applications
)後期安裝的一些軟件/usr/sbin
(super user commands for applications
)超級用戶的一些管理程序提示:
cd
這個終端命令是內置在系統內核中的,沒有獨立的文件,所以用which
沒法找到cd
命令的位置
序號 | 命令 | 做用 | 說明 |
---|---|---|---|
01 | su - 用戶名 | 切換用戶,而且切換目錄 | - 能夠切換到用戶家目錄,不然保持位置不變 |
02 | exit | 退出當前登陸帳戶 |
su
不接用戶名,能夠切換到 root
,可是不推薦使用,由於不安全exit
快捷鍵爲 control+d
示意圖以下:su [用戶名](switch user)
複製代碼
若是用戶名不指定則表示切換到root用戶
root@toby:~# su zhangsan
zhangsan@toby:/root$
zhangsan@toby:/root$ su
Password:
root@toby:~#
複製代碼
切換用戶須要注意的事項:
用戶刪除
userdel 選項 用戶名
複製代碼
經常使用選項:
示例:刪除zhangsan用戶
root@toby:~# userdel -r zhangsan
userdel: user zhangsan is currently used by process 22089
root@toby:~# ps -ef | grep 22089
zhangsan 22089 22088 0 20:51 pts/0 00:00:00 bash
root 22092 22089 0 20:51 pts/0 00:00:00 su
root 22115 22093 0 20:57 pts/0 00:00:00 grep --color=auto 22089
root@toby:~# su zhangsan
# 這裏使用control+d 會自動退出
zhangsan@toby:/root$ exit
複製代碼
解決辦法:
簡單粗暴,
kill
對應用戶的所有進程
提示:
全部跟用戶操做的命令(除passwd外,只能修改本身的密碼,即不指定用戶名)只有root超級管理員有權限執行。
備註:
也能夠在登陸須要刪除的用戶以後,按下快捷鍵
ctrl+d
進行對當前用戶的註銷,隨後退回到上一個用戶(root)此時就能夠對須要刪除的用戶進行刪除操做。
每一個用戶都有一個用戶組,系統能夠對一個用戶組中的全部用戶進行集中管理。不一樣Linux 系統對用戶組的規定有所不一樣,如Linux下的用戶屬於與它同名的用戶組,這個用戶組在建立用戶時同時建立。
用戶組的管理涉及用戶組的添加、刪除和修改。組的增長、刪除和修改實際上就是對 /etc/group 文件的更新。
root@toby:~# cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:
floppy:x:25:
tape:x:26:
sudo:x:27:
audio:x:29:
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
systemd-journal:x:101:
systemd-timesync:x:102:
systemd-network:x:103:
systemd-resolve:x:104:
systemd-bus-proxy:x:105:
input:x:106:
crontab:x:107:
syslog:x:108:
netdev:x:109:
messagebus:x:110:
uuidd:x:111:
mlocate:x:112:
ssh:x:113:
ntp:x:114:
lpadmin:x:115:
stapdev:x:116:
stapusr:x:117:
stapsys:x:118:
root@toby:~#
複製代碼
上面內容的文件結構:
用戶組名:密碼:用戶組ID:組內用戶名
密碼:X表示佔位符,雖然用戶組能夠設置密碼,可是絕大部分的狀況下不設置密碼; 組內用戶名:表示附加組是該組的用戶名稱;
groupadd 選項 用戶組名
複製代碼
經常使用選項:
示例:使用groupadd指令建立一個新的用戶組,命名爲admins
#groupadd admins
root@toby:~# cat /etc/group
...
admins:x:1001:
root@toby:~#
複製代碼
groupmod 選項 用戶組名
複製代碼
經常使用選項:
案例:修改admins用戶組,將組ID改爲520,將名稱改成admin123
root@toby:~# groupmod -g 520 -n admingroup admins
root@toby:~# cat /etc/group
...
admingroup:x:520:
root@toby:~#
複製代碼
groupdel 用戶組名
複製代碼
案例:刪除admingroup組
groupdel admingroup
複製代碼
注意:
當若是須要刪除一個組,可是這個組是某個用戶的主組時,則不容許刪除(附加組是能夠的);若是確實須要刪除,則先從組內移出全部用戶。
提示:
針對用戶和用戶組的管理指令,除了passwd指令以外,其餘指令通常狀況下只有root用戶能夠執行。
在Linux中分別有讀、寫、執行權限:
讀權限:
寫權限:
執行權限:通常都是對於文件來講,特別腳本文件。
Root用戶(超級用戶)
Owner身份(文檔全部者,默認爲文檔的建立者)
Group身份(與文件全部者同組的用戶)
Others身份(其餘人,相對於全部者與同組用戶)
要設置權限,就須要知道文件的一些基本屬性和權限的分配規則。在Linux
中,ls
命令經常使用來查看文檔的屬性,用於顯示文件的文件名和相關屬性。
#ls -l 路徑 【ls -l 等價於 ll】
複製代碼
root@toby:~# ll /
total 92
drwxr-xr-x 22 root root 4096 Jun 3 16:38 ./
drwxr-xr-x 22 root root 4096 Jun 3 16:38 ../
drwxr-xr-x 2 root root 4096 Apr 8 2018 bin/
drwxr-xr-x 3 root root 4096 Apr 8 2018 boot/
drwxr-xr-x 19 root root 3740 Jun 3 16:38 dev/
drwxr-xr-x 88 root root 4096 Jun 9 21:23 etc/
drwxr-xr-x 2 root root 4096 Apr 13 2016 home/
lrwxrwxrwx 1 root root 33 Mar 26 2018 initrd.img -> boot/initrd.img-4.4.0-117-generic
lrwxrwxrwx 1 root root 33 Mar 26 2018 initrd.img.old -> boot/initrd.img-4.4.0-116-generic
drwxr-xr-x 20 root root 4096 Mar 26 2018 lib/
drwxr-xr-x 2 root root 4096 Mar 26 2018 lib64/
drwx------ 2 root root 16384 Mar 26 2018 lost+found/
drwxr-xr-x 4 root root 4096 Mar 26 2018 media/
drwxr-xr-x 2 root root 4096 Aug 1 2017 mnt/
drwxr-xr-x 2 root root 4096 Aug 1 2017 opt/
dr-xr-xr-x 96 root root 0 Jun 3 16:38 proc/
drwx------ 7 root root 4096 Jun 8 23:08 root/
drwxr-xr-x 19 root root 640 Jun 9 21:06 run/
drwxr-xr-x 2 root root 12288 Apr 8 2018 sbin/
drwxr-xr-x 2 root root 4096 Aug 1 2017 srv/
dr-xr-xr-x 13 root root 0 Jun 3 16:50 sys/
drwxrwxrwt 7 root root 4096 Jun 9 22:17 tmp/
drwxr-xr-x 10 root root 4096 Mar 26 2018 usr/
drwxr-xr-x 11 root root 4096 Mar 26 2018 var/
lrwxrwxrwx 1 root root 30 Mar 26 2018 vmlinuz -> boot/vmlinuz-4.4.0-117-generic
lrwxrwxrwx 1 root root 30 Mar 26 2018 vmlinuz.old -> boot/vmlinuz-4.4.0-116-generic
root@toby:~#
複製代碼
上圖標紅的部分就是Linux的文檔權限屬性信息。
Linux中存在用戶(owner)、用戶組(group)和其餘人(others)概念,各自有不一樣的權限,對於一個文檔來講,其權限具體分配以下:
十位字符表示含義:
「d表示文件夾」、「-表示文件」
、「l表示軟鏈接」、「s表示套接字」、「c表示字符設備」、「b表示塊狀設備」等等;全部者
的權限狀況,第2位表示讀權限的狀況,取值有r、-;第3位表示寫權限的狀況,w表示可寫,-表示不可寫,第4位表示執行權限的狀況,取值有x、-。同在一個組的用戶
的權限狀況,第5位表示讀權限的狀況,取值有r、-;第6位表示寫權限的狀況,w表示可寫,-表示不可寫,第7位表示執行權限的狀況,取值有x、-。其餘用戶
的權限狀況,第8位表示讀權限的狀況,取值有r、-
;第9位表示寫權限的狀況,w表示可寫,-表示不可寫,第10位表示執行權限的狀況,取值有x、-
。注意:
除了權限位上的
rwx
以及-
以外,還有一些特殊的權限代碼「s」、「t」
,這些不在本次考慮範圍內。(黏貼位,特殊權限位)
權限分配中,均是rwx
的三個參數組合,且位置順序不會變化。沒有對應權限就用 –
代替。
chmod [選項] 權限模式 文檔路徑
複製代碼
經常使用選項:
權限模式:
文檔:
注意點:
若是想要給文檔設置權限,操做者要麼是root用戶,要麼就是文檔的全部者。
給誰設置:
什麼權限-權限字符:
如何設置-權限分配方式:
設置多個身份的權限時候,每一個身份之間須要經過英文逗號分開。
例如:
須要給/root/anaconda-ks.cfg文件(-rw-------.)設置權限,要求全部者擁有所有的權限,同組用戶擁有讀和寫權限,其餘用戶只讀權限。
答案:
#chmod u+x,g+rw,o+r /root/anaconda-ks.cfg
或者:
#chmod u=rwx,g=rw,o=r /root/anaconda-ks.cfg
複製代碼
提示:
當文檔擁有執行權限(任意部分),則其顏色在終端中是綠色。
#chmod ug=rwx 形式,若是有兩部分權限同樣則能夠合在一塊兒寫的
等價於:
#chmod u=rwx,g=rwx
複製代碼
例如:若是anaconda-ks.cfg文件什麼權限都沒有,可使用root用戶設置全部的人都有執行權限,則能夠寫成
什麼權限都沒有應該是:----------
目標的效果:---x--x--x
#chmod a=x anaconda-ks.cfg
#chmod a+x anaconda-ks.cfg
#chmod u+x,g+x,o+x anaconda-ks.cfg
#chmod ugo=x anaconda-ks.cfg
#chmod ugo+x anaconda-ks.cfg
#chmod +x anaconda-ks.cfg
複製代碼
案例:
設置文件「~/php/php.txt」權限,要求全部者所有權限,同組用戶擁有讀權限、寫權限,其餘人擁有讀權限
#chmod u=rwx,g=rw,o=r ~/php/php.txt
更改要求:
全部者所有權限,同組用戶擁有讀權限、寫權限,其餘人擁有讀權限、寫權限
#chmod o+w ~/php/php.txt
複製代碼
練習:
1. 設置文件夾/tmp/php的權限(若是文件夾不存在,自行建立),要求權限爲遞歸權限,而且全部者有所有權限,同組用戶有讀執行權限,其餘用戶只讀權限;
#mkdir /tmp/php
#chmod -R u=rwx,g=rx,o=r /tmp/php
2. 設置文件/tmp/php/class.sh權限,文件若是不存在則自行建立,要求權限爲全部者所有權限,同組用戶讀和執行權限,其餘用戶沒有權限;
#touch /tmp/php/class.sh
#chmod u=rwx,g=rx,o=--- /tmp/php/class.sh
3. 使用普通用戶在/tmp/php目錄下建立test目錄,設置目錄權限爲全部者擁有所有權限,同組用戶只讀,其餘用戶只讀;(建立不了test用戶)
複製代碼
常常會在一些技術性的網頁上看到相似於#chmod 777 a.txt 這樣的一個權限,這種形式稱之爲數字形式權限(777)。
權限 | 表明字母 | 數字值 |
---|---|---|
讀 | r | 4 |
寫 | w | 2 |
執行 | x | 1 |
沒有任何權限
-
:0
注意:
組合權限數字的時候遵循,最短路徑要求,而且最多隻能出現一次。
例如:
須要給anaconda-ks.cfg設置權限,權限要求全部者擁有所有權限,同組用戶擁有讀執行權限,其餘用戶只讀。
分析:
全部者(第1位):所有權限 = 讀 + 寫 + 執行 = 4 + 2 + 1 = 7
同組用戶(第2位):讀執行 = 讀 + 執行 = 4 + 1 = 5
其餘用戶(第3位):讀 = 4
組合: 754
最終得出的結果是754
#chmod 754 anaconda-ks.cfg
複製代碼
例題:
用超級管理員設置文檔的權限命令是#chmod -R 731 aaa,請問這個命令有沒有什麼不合理的地方?
全部者 = 7 = 4 + 2 + 1 = 讀 + 寫 + 執行
同組用戶 = 3 = 2 + 1 = 寫 + 執行
其餘用戶 = 1 = 執行
問題在權限731中3表示寫+執行權限,可是寫又沒必要鬚鬚要能打開以後才能夠寫,所以必須須要具有讀權限,所以權限不合理。之後建議各位在設置權限的時候不要設置這種「奇葩權限」。
複製代碼
注意:
在寫權限的時候千萬不要設置相似於上面的這種
奇葩權限
。若是一個權限數字中但凡出現2與3的數字,則該權限有不合理的狀況。
是否能夠刪除文件屬於文件夾的權限
擴展:
在Linux系統中,建立文檔的權限有一個默認值,以當前的系統爲例,其建立文件夾以後的默認權限是755,建立文件以後的權限是644。
之因此會這樣是受到了系統中umask(掩碼)的值的影響,其是用於指定文檔建立好以後的權限,umask默認爲022。
計算方式:
對於文件:文件的權限 = 666 – umask掩碼
對於文件夾:文件夾的權限 = 777 - umask掩碼
複製代碼
爲何文件是
666
不是777
呢? 由於文件包含了可執行文件. linux系統處於安全的考慮. 默認建立的文件是不給執行的權限x
的.
這兩項信息在文檔建立的時候會使用建立者的信息(用戶名、用戶所屬的主組名稱)。
之因此須要設置這個:若是有時候去刪除某個用戶,則該用戶對應的文檔的屬主和屬組信息就須要去修改(相似離職以前的工做交接)。
更改文檔的所屬用戶(change owner)
chown [-R] 新的username 文檔路徑
複製代碼
注意:
修改全部者的人必須是root或者全部者本身,其餘人無權修改全部者。
更改文檔的所屬用戶組(change group)
chgrp [-R] groupname 文檔的路徑
複製代碼
案例:將剛纔oo目錄的全部用戶組名改成admin
#chgrp -R admin /oo
複製代碼
思考? 如何經過一個命令實現既能夠更改所屬的用戶,也能夠修改所屬的用戶組呢?
答:能夠實現的,經過chown命令
語法:#chown [-R] username:groupname 文檔路徑
複製代碼
問題? reboot、shutdown、init、halt,在普通用戶身份上都是操做不了,可是有些特殊的狀況下又須要有執行權限。又不可能讓root用戶把本身的密碼告訴普通用戶,這個問題該怎麼解決?
該問題是能夠被解決的,可使用sudo(switch user do)命令來進行權限設置。Sudo可讓管理員(root)事先定義某些特殊命令誰能夠執行。
複製代碼
默認sudo中是沒有除root以外用戶的規則,要想使用則先配置sudo。
Sudo配置文件:/etc/sudoers 該文件默認只讀,不容許修改,所以不能直接修改。
sudo
文件請使用visudo
,打開以後其使用方法和vim一致上圖的98行說明:
案例:使用admin這個用戶,賦予其添加用戶權限。
注意:在寫sudo規則的時候不建議寫直接形式的命令,而是寫命令的完整路徑。
路徑可使用which(whereis亦可)命令來查看
語法:#which 指令名稱
Whereis會找出一些非可執行文件,建議使用which
複製代碼
root@toby:~# which useradd
/usr/sbin/useradd
root@toby:~# whereis useradd
useradd: /usr/sbin/useradd /usr/share/man/man8/useradd.8.gz
root@toby:~#
複製代碼
因此whereis
指令返回的內容比較多, 咱們使用which
指令便可
若是須要更多的命令, 後面的用,
分隔便可
在添加好對應的規則以後就能夠切換用戶,切換到普通用戶admin,再去執行:
此時要想使用剛纔的規則,則以如下命令進行:
sudo 須要執行的指令(就是放權的指令名稱)
複製代碼
此時輸入的密碼是當前執行sudo指令的用戶的密碼,而非root密碼。
在輸入sudo指令以後須要輸入當前的用戶密碼進行確認的操做(不是root用戶密碼),輸入以後在接下來5分鐘內再次執行sudo指令不須要密碼。
補充:
在普通用戶下怎麼查看本身具備哪些特殊權限呢?
sudo -l 表示list
複製代碼
最後:sudo不是任何Linux分支都有的命令,常見centos與ubuntu都存在sudo命令。