目錄python
現代操做系統通常屬於多用戶的操做系統,也就是說,同一臺機器能夠爲多個用戶創建帳戶,通常這些用戶都是爲普通用戶,這些普通用戶能同時登陸這臺計算機,計算機對這些用戶分配必定的資源。mysql
普通用戶在所分配到的資源內進行各自的操做,相互之間不受影響。可是這些普通用戶的權限是有限制的,且用戶太多的話,管理就不便,從而引入root用戶。linux
此用戶是惟一的,且擁有系統的全部權限。root用戶所在的組稱爲root組。「組」是具備類似權限的多個用戶的集合。sql
root用戶 : 默認在Unix/linux操做系統中擁有最高的管理權限。能夠理解爲qq羣的羣主.shell
普通用戶: 是管理員或者具有管理權限的用戶所建立的,只能讀、看,不能增、刪、改。數據庫
root爲何叫root?vim
在Linux系統中,用戶也有本身的UID身份帳號且惟一安全
系統管理員UID爲0ui
系統用戶UID爲1~999 Linux安裝的服務程序都會建立獨有的用戶負責運行。操作系統
普通用戶UID從1000開始:由管理員建立用戶組
用戶組GID:
爲了方便管理屬於同一組的用戶,Linux 系統中還引入了用戶組的概念。經過使用用 戶組號碼(GID,Group IDentification),咱們能夠把多個用戶加入到同一個組中,從而方 便爲組中的用戶統一規劃權限或指定任務。
假設有一個公司中有多個部門,每一個部門中又 有不少員工。若是隻想讓員工訪問本部門內的資源,則能夠針對部門而非具體的員工來設 置權限。
例如,能夠經過對技術部門設置權限,使得只有技術部門的員工能夠訪問公司的 數據庫信息等。
[root@s16ds ~]# id root uid=0(root) gid=0(root) groups=0(root) 用戶的存放文件: /etc/passwd /etc/shadow 存放用戶密碼的文件
#添加用戶 useradd oldboy(用戶名) #設置密碼 passwd oldboy(用戶名) root用戶能夠修改其餘全部人的密碼,且不須要驗證
su命令能夠切換用戶身份的需求, #先看下當前用戶(我是誰) whoami #切換用戶 su - oldboy #退出用戶登陸 logout ctrl + d su命令中間的-號很重要,意味着徹底切換到新的用戶,即環境變量信息也變動爲新用戶的信息 Tip: 1.超級用戶root切換普通用戶無需密碼,例如「羣主」想踢誰就踢誰 2.普通用戶切換root,須要輸入密碼 3.普通用戶權限較小,只能基本查看信息 4.$符號是普通用戶命令提示符,#是超級管理員的提示符
groupadd命令
group命令用於建立用戶組,爲了更加高效的指派系統中各個用戶的權限,在工做中經常添加幾個用戶到一個組裏面,這樣能夠針對一類用戶安排權限。 groupadd it_dep
-f 強制刪除用戶 -r 同事刪除用戶以及家目錄 userdel -r pyyu(用戶名)
sudo命令用來以其餘身份來執行命令,預設的身份爲root。在/etc/sudoers中設置了可執行sudo指令的用戶。若其未經受權的用戶企圖使用sudo,則會發出警告的郵件給管理員。用戶使用sudo時,必須先輸入密碼,以後有5分鐘的有效期限,超過時限則必須從新輸入密碼。
sudo 【選項】【參數】 -b:在後臺執行指令; -h:顯示幫助; -H:將HOME環境變量設爲新身份的HOME環境變量; -k:結束密碼的有效期限,也就是下次再執行sudo時便須要輸入密碼;。 -l:列出目前用戶可執行與沒法執行的指令; -p:改變詢問密碼的提示符號; -s<shell>:執行指定的shell; -u<用戶>:以指定的用戶做爲新的身份。若不加上此參數,則預設以root做爲新的身份; -v:延長密碼有效期限5分鐘; -V :顯示版本信息。
sudo命令在何時用?
怎麼辦?權限不夠,這時候須要sudo ls /root 以root身份去運行,chaoge權利小,root總能夠了吧!!
這是因爲配置sudo必須編輯/etc/sudoers文件,而且只有root才能修改,我們能夠經過visudo命令直接編輯sudoers文件,使用這個命令還能夠檢查語法,比直接編輯 vim /etc/sudoers更安全
visudo 編輯sudoers文件 寫入 ## Allow root to run any commands anywhere root ALL=(ALL) ALL chaoge ALL=(ALL) ALL #容許chaoge在任何地方,執行任何命令 此時切換chaoge用戶 #su命令用於切換當前用戶身份到其餘用戶身份,變動時須輸入所要變動的用戶賬號與密碼。 su - chaoge 已經可使用sudo ls /root 命令
Linux權限的目的是(保護帳戶的資料)
Linux權限主要依據三種身份來決定:
什麼是權限?
在Linux中,每一個文件都有所屬的全部者,和全部組,而且規定了文件的全部者,全部組以及其餘人對文件的,可讀,可寫,可執行等權限。 對於目錄的權限來講,可讀是讀取目錄文件列表,可寫是表示在目錄內新增,修改,刪除文件。可執行表示能夠進入目錄
使用一條命令查看權限
ls -l /var/log/ mysqld.log
解讀上圖:
文件名
先來分析一下文件的類型(圖中第一個 - 部分 )
- 通常文件 d 文件夾 l 軟鏈接(快捷方式) b 塊設備,存儲媒體文件爲主 c 表明鍵盤,鼠標等設備
權限部分
r read可讀,能夠用cat等命令查看 w write寫入,能夠編輯或者刪除這個文件 x executable 能夠執行
r 能夠對此目錄執行ls列出全部文件 w 能夠在這個目錄建立文件 x 能夠cd進入這個目錄,或者查看詳細信息
權限與數字轉化
ls -l /var/log/mysqld.log -rw-r--r-- 1 mysql mysql 6735642 8月 11 14:19 /var/log/mysqld.log 這個就表明mysqld.log文件屬主是mysql,屬組是mysql,只有mysql用戶能夠讀取編寫這個文件,其餘人只能讀此文件。
id指令查看用戶所屬羣主 [root@oldboy_python ~ 16:34:52]#id root uid=0(root) gid=0(root) 組=0(root)
咱們已知三種身份權限(屬主-user,屬組-group,其餘人-others),每種身份都有rwx的三種權限,系統還提供了數字計算權限。
r read 4 w write 2 x execute 1
每種身份最低是0分,最高是r+w+x 7分
所以三種身份,最高權限是777,最低是000
-rw-rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt 所以可知pyyu.txt的權限是 屬主是6 r+w(4+2) 屬組是6 r+w(4+2) 其餘人是4 r(4)
chmod
chmod [身份] [參數] [文件] u(user) +(添加) g(group) -(減去) o(other) =(賦值) a(all)
例如:
當前權限 -rw-rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt 方法1 減去屬主的寫權限 chmod u-w pyyu.txt 查看權限 -r--rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt 方法2 屬主添加可讀可寫可執行權限 chmod 700 pyyu.txt 屬主可讀可寫可執行 屬組可讀可執行 其餘人可讀可執行 chmod 755 pyyu.txt
修改文件名,修改文件更改日期
mv pyyu.txt chaoge.txt #觸摸,修改時間 touch chaoge.txt
普通用戶只能修改本身的文件名,時間與權限(注意)
所以修改其餘用戶權限,只能用最nb的root用戶
切換root用戶
[pyyu@oldboy_python root]$ su -
當前/tmp/pyyu.txt文件以存在,且信息是 -rw-rw-r-- 1 pyyu pyyu 0 8月 11 16:41 pyyu.txt
修改屬主爲root -> chown
[root@oldboy_python /tmp 16:43:12]#chown root pyyu.txt
查看信息
[root@oldboy_python /tmp 16:43:42]#ll pyyu.txt -rw-rw-r-- 1 root pyyu 0 8月 11 16:41 pyyu.txt
修改屬組 -> chgrp
[root@oldboy_python /tmp 16:43:42]#ll pyyu.txt -rw-rw-r-- 1 root pyyu 0 8月 11 16:41 pyyu.txt [root@oldboy_python /tmp 16:44:59]#chgrp root pyyu.txt [root@oldboy_python /tmp 16:45:51]#ll pyyu.txt -rw-rw-r-- 1 root root 0 8月 11 16:41 pyyu.txt