<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    十二:群策群力但又各管東西,多用戶和權限

    電腦,通常只有本人一個用戶,就算是在多用戶的環境下,比如你的爸爸媽媽需要使用電腦,一般也是使用你的賬戶來使用,而且也是你來教他們使用(開玩笑:0)。個人電腦在多用戶的情景下使用,并不多見,Windows中的Guest賬戶到底有什么用處真的是個謎,但是Linux通常作為服務器的操作系統,一般來說會有多個管理員合作管理,那么賬戶和賬戶關系,賬戶的權限就顯得非常的重要了。
    對于權限,在之前我們已經有過接觸,查看目錄的時候,我們使用長格式查看目錄信息,會打印出文件的權限信息

    一個用戶可以擁有多個文件,一個用戶可以屬于多個用戶組,用戶和用戶組的信息可以分別查看/etc/passwd和/etc/group文件。/etc/shadow文件保存著用戶的密碼信息,當然了,是加過密的。
    圖上的藍色框里代表的是文件模式,也就是權限信息,只有文件的所有者和超級用戶才能更改文件模式。

    chmod:更改文件模式
    chmod支持兩種修改文件模式的方式

    第一種:數字權限表示
    文件模式分成了三組,每組都有讀權限,寫權限,執行權限,每一組的權限如果用二進制的數字表示,可以寫為111,1代表有該權限,0代表沒有,權限設置為111-110-110則意味著文件擁有者擁有讀,寫和執行三個權限,而用戶組成員和其他人只擁有對文件讀和寫的權限。但是用二進制來設定很麻煩,所以,實際使用數字設置權限的時候,使用八進制,比如設置一個文件的權限為只有擁有者可以讀寫,那么二進制寫作110 000 000,在使用chmod命令的時候寫作chmod 600。
    示例,修改一個文件的權限

    *使用數字修改權限的時候注意不要缺少位數,如果缺少,那么執行“chmod 60 文件名”會發生什么?他會認為文件擁有者對該文件沒有任何權限,所在用戶組有讀和寫的權限,其他人沒有權限,這太可笑了;要是執行“chmod 6 文件名”會發生什么?他會認為文件擁有者和所屬用戶組對該文件沒有任何權限,其他人反而有讀和寫的權限,笑哭…

    第二種:字符權限表示
    相比數字權限表示,字符權限表示更直觀一些,控制的更細膩一些。
    示例:
    chmod [u|g|o|a][+|-|=][r|w|x] 文件
    u:所有者
    g:所屬用戶組
    o:其他人
    a:以上全部
    +/-/=:代表添加,撤銷和重設
    r/w/x:分別代表讀權限,寫權限和執行權限


    umask:默認文件模式
    umask命令用來設置文件的掩碼,剛聽起來可能比較生澀,說白一點就是設置或者查看默認的文件模式。

    顯示為0002,什么意思呢?好,我們先新建一個文件test

    我們看到,新建文件test的文件模式為rw- rw- r–

    我們修改一下umask的值,再新建一個文件試試

    umask顯示的值是文件模式的掩碼,是一個八進制的數字。先撇開掩碼的第一位,初始后三位是002,變成二進制數就是000 000 010,這個掩碼對應的權限就是rw- rw- r–,之后我們修改掩碼,變為000 000 000,這時候掩碼對應的權限就是rw- rw- rw-,是不是已經能看出倪端了?對,當我們將二進制格式的掩碼某一位設置為0,實際上是打開了該位置的權限(但是執行權限無法開啟,這也是處于安全考慮,新建的文件沒有執行權限)

    那么第一個八進制的0是什么含義?
    除了常用的讀權限,寫權限和執行權限,還有一些特別的權限。

    1:setuid位,他在掩碼的第一位,如果開啟,那么文件權限的掩碼應該是4000。setuid有什么作用呢?如果某個文件開啟了setuid位,那么該文件執行的時候,該文件具有文件所有者的權限,比如你是一個一般用戶,你執行了一個root用戶的文件,并且該文件設置了setuid位,那么文件執行的時候是擁有root權限的,所以對于setuid位的設置要慎重。
    如何開啟setuid位呢
    chmod u+s 文件,表示開啟setuid

    2:和setuid位類似,他在掩碼的第二位,開啟的話,掩碼的設置是2000。setgid表示操作一個文件的時候,操作文件的用戶組會由當前組變為文件所在組的權限。對于文件所屬組不是文件創造者所在組的情況,可能會帶來權限的變化。
    開啟setgid
    chmod g+s 文件,開啟setgid位

    3:sticky位,掩碼中的第三位,開啟時,掩碼設置是1000,這個權限位通常用來限制訪問,如果它開啟,那么它能阻止用戶刪除或重命名文件,除非用戶是這個文件所有者,或是超級用戶。
    開啟sticky位
    chmod +t 文件

    如何確定某個文件是否開啟了setuid位,segid位呢?當某個文件開啟了某個特殊權限位,那么在對應的權限分組中,該組的執行權限會顯示s。
    比如某個文件開啟了setuid位,那么他的權限是rws r– r–;開啟了setgid位,則是rw- rws r–;sticky位則在其他人組中體現,rw- rw- rwt

    su/sudo 身份的切換
    除非是root用戶,否則一般用戶在很多情況下都會有對系統進行操作的限制。如果一個一般用戶進行某個操作,比如執行某個文件,但是他沒有這個文件的執行權限,那么該怎么辦呢?最簡單粗暴的方式就是注銷,使用root用戶登錄進行操作。雖然可行,但是不可取,畢竟太不方便了。

    su:使用替代用戶執行命令
    這個命令不太好記,全稱是run a command with substitute user and group ID,看起來是substitute user的縮寫。作用就是使用替代用戶來執行操作。
    示例:切換一個用戶,如果不指定用戶,那么默認切換到root
    su [用戶]

    直接使用su之后,系統提示我們輸入密碼,注意,這里輸入的是root用戶的密碼,而不是當前用戶的密碼。之后,我們會發現shell提示符酉“$”變成了“#”

    有一個常用選項是”-l”(他有一個別名是“-”),添加“-l”會出現一個需要登錄的shell,加載替代用戶的shell環境。我們看到,添加“-l”之后登錄,初始目錄定位到了root用戶的家目錄

    其實有時候我們并不需要切換用戶,只是需要使用個別用戶的權限來做一些操作罷了,還有一個常用選項是“-c”,執行一個命令。比如一個一般用戶希望查看一下root用戶的家目錄

    只執行單個命令,而不是啟動一個新的可交互的 shell,使用“-c”選項,命令將傳遞到一個新的shell中執行,所以命令參數需要單引號引起作為一個參數。

    sudo:使用替代用戶去執行操作,但是提供靈活的配置
    sudo和su類似,都是以另一個身份去執行某些操作,但是sudo允許管理員進行靈活的配置,比如某些操作只允許特定用戶來執行,在經過配置之后,特定用戶不需要管理員的密碼,只需要輸入自己的密碼就可以使用管理員權限來執行特定操作。通常情況下,sudo并不會啟動一個新的shell,也不會加載其他用戶的shell環境。
    除了切換當前的用戶,獲取root權限等,我們還需要更改文件的所有者,所屬組

    chown:更改文件的所有者和所屬組
    這個命令可以同時修改兩個所屬關系,也可以單獨修改。
    命令格式:chown [OPTION]… [OWNER][:[GROUP]] FILE…,這是文檔的原話,我們添點料
    最簡單的使用:chown alvindu327 a.txt,把a.txt文件的所有者從原所有者變為alvindu327


    然后,說一下比較全面的用法
    1,同時變更所屬用戶和所屬組。chown alvindu327: a.txt,剛才的命令我們可以看到,a.txt的所屬組依然屬于root,在所屬用戶之后添加“:”,意為著將文件原所屬組變更為新用戶登陸時的所屬組


    2,單獨變更所屬用戶和所屬組。
    chown alvindu327:demonuser a.txt,將a.txt的所屬用戶變為alvindu327,所屬組變更為demonuser

    3,只變更所屬組
    chown :onlygrp a.txt,將a.txt的所屬組變更為onlygrp,所屬者不變
    接下來還剩下不少命令需要了解,比如新建用戶,新建組,修改密碼等等,但是一一列舉出來沒什么意思,為什么不用apropos去模糊查詢一下呢,新建用戶,或許會是adduser吧,要不createuser?猜測和搜索也是很好的學習方式。

    喔,最后幾乎忘了一個重要的內容,雖然常用權限有讀,寫,和執行,看起來很簡單,但是你真正明白他們的含義嗎?

    對于文件而言
    • 讀權限:表示可以查看這個文件的內容(可以使用cat,less,more等命令進行查看)
    • 寫權限:表示可以修改這個文件的內容(可以使用編輯器修改這個文件)
    • 執行權限:表示該文件(可能是命令,或者腳本)可以執行
    對于目錄而言(雖然目錄也是文件,但是這里做一個區分)
    • 讀權限:表示可以列出目錄內的內容(使用ls可以查看文件的內容)
    • 寫權限:表示可以在目錄中創建,刪除文件(touch文件,mkdir目錄,或者rm文件)
    • 執行權限:表示可以進入到這個目錄中
    對于常用讀寫執行權限,我本來也和很多人一樣,認為很簡單,但是其中真的有幾個誤區需要掃盲:

    *我對一個文件有寫權限,我就可以刪除這個文件嗎?答案是否定的,寫權限僅僅是修改文件的內容而已,如果你需要刪除這個文件,你需要擁有對這個文件所在目錄的寫權限才行。

    *我對一個目錄有讀權限,我就可以查看這個目錄的內容嗎(雖然聽起來沒什么不對)?答案是否定的,對一個目錄有讀權限,僅僅是讓你能看到這個目錄的存在,而查看目錄的內容,你需要目錄的執行權限,所以,目錄的讀權限和執行權限一般都是同時存在的,倘若一個目錄只有讀權限,那就是耍流氓,知道有,看不了;倘若只有執行權限,那就是特供情報,雖然“沒有”,但是能查看…

    posted on 2015-07-12 10:49 都較瘦 閱讀(109) 評論(0)  編輯  收藏 所屬分類: Linux

    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    導航

    統計

    公告

    博客定位:囿于目前的水平,博客定位在記錄自己的學習心得和隨手的練習

    常用鏈接

    留言簿

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: WWW免费视频在线观看播放| 思思久久99热免费精品6| 免费国产污网站在线观看15| 国产亚洲成av片在线观看| 一级一级一级毛片免费毛片| 亚洲成a人无码av波多野按摩| 日韩欧美亚洲国产精品字幕久久久 | 亚洲美女中文字幕| 1000部啪啪毛片免费看| 亚洲另类视频在线观看| 天天摸夜夜摸成人免费视频 | 四虎影视久久久免费观看| 亚洲真人日本在线| 日韩免费高清播放器| 久久精品亚洲中文字幕无码网站| 国产一级高清免费观看| 亚洲黄色免费网站| 免费看黄视频网站| 精品日韩亚洲AV无码| 国产卡一卡二卡三免费入口| 亚洲欧美黑人猛交群| 久久精品夜色噜噜亚洲A∨| 无码人妻一区二区三区免费n鬼沢 无码人妻一区二区三区免费看 | 免费看小12萝裸体视频国产| 一级毛片视频免费观看| 亚洲精品自产拍在线观看动漫| 和日本免费不卡在线v| 美女视频黄视大全视频免费的| 久久亚洲精品视频| 中文字幕无码免费久久99| 日本黄页网址在线看免费不卡| 国产成A人亚洲精V品无码| 成人啪精品视频免费网站| 一个人看www免费高清字幕| 亚洲精品中文字幕麻豆| 永久久久免费浮力影院| 久久久久免费精品国产| 亚洲AV无码一区二区三区牲色| 亚洲人成网7777777国产| 黑人粗长大战亚洲女2021国产精品成人免费视频 | 人成免费在线视频|