Linux - 用戶管理與文件權限

Linux - 用戶管理與文件權限

現代操做系統通常屬於多用戶的操做系統,也就是說,同一臺機器能夠爲多個用戶創建帳戶,通常這些用戶都是爲普通用戶,這些普通用戶能同時登陸這臺計算機,計算機對這些用戶分配必定的資源。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

userdel刪除用戶

-f     強制刪除用戶
-r    同事刪除用戶以及家目錄
userdel -r pyyu(用戶名)

sudo 命令

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權限主要依據三種身份來決定:

  • user/owner 文件使用者,文件屬於哪一個用戶
  • group 屬組,文件屬於哪一個組
  • others 既不是user,也再也不group,就是other,其餘人

什麼是權限?

在Linux中,每一個文件都有所屬的全部者,和全部組,而且規定了文件的全部者,全部組以及其餘人對文件的,可讀,可寫,可執行等權限。

對於目錄的權限來講,可讀是讀取目錄文件列表,可寫是表示在目錄內新增,修改,刪除文件。可執行表示能夠進入目錄

Linux權限的解讀

使用一條命令查看權限

ls -l /var/log/ mysqld.log

解讀上圖:

  1. 權限,第一個字母爲文件類型,後續9個字母,每3個一組,是三種身份的權限
  2. 文件連接數
  3. 文件擁有者-屬主
  4. 文件擁有組-屬組
  5. 文件大小
  6. 最後一次被修改的時間日期
  7. 文件名
    先來分析一下文件的類型(圖中第一個 - 部分 )

    -    通常文件
     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
相關文章
相關標籤/搜索