在linux中,有一些關于用戶與用戶組(工作組)或者文件權限有關的命令,在日常操作中經常會用到,我們這里匯總下,以供備忘。一般來說,以下命令常用:
- chmod, change mode,改變文件的權限
- chgrp , change group,改變文件的用戶組
- chown, change owner,改變文件的用戶歸屬
- useradd,添加新用戶
- groupadd,添加新的用戶組
還有以下文件也常常和用戶,用戶組和權限有關:
- /etc/group
- /etc/sudoers
命令
chmod
change mode,用于改變文件或者文件夾的權限,一般來說文件或者文件夾的權限分為三類:
- 對于本用戶而言
- 對于本用戶組而言
- 對于其他所有用戶而言
一般表示為---(本用戶權限),---(本用戶組權限),---(其他用戶權限),比如rwx,---,---就表示這個文件只對本用戶可以訪問(r, read),寫入(w, write)和可執行(x, execute),而同組用戶或者其他用戶都不能訪問(當然除了超級管理員例外,用了root權限的可以執行所有操作)。通過使用命令chgrp可以改變文件的用戶組歸屬,chown可以改變文件的用戶歸屬。通過這些命令的配合可以實現對文件權限的精確控制,隔離操作敏感危險的文件。
在使用過程中,用一個三位數編碼權限。因為rwx,rwx,rwx是一個9位的編碼,我們在某一位有效的情況下設為1,無效也就是-的時候,設為0,以三個為一組解釋為二進制數值后,便是得到從0到7的數字了。比如權限rwx,---,---就是700,r-x,r-x,---就是550,依次類推。具體操作如:
[sudo] chmod authority [options] (file_name) # 命令通式
[sudo] chmod 700 file_A
[sudo] chmod 550 -R folder_A # 對于文件夾來說用-R選項表示遞歸執行所有內部文件
[]表示可選,有些時候需要用root權限才能對某些文件進行操作。
chgrpchange group, 改變文件的用戶組歸屬,比如文件原來是屬于用戶user_A的,在沒有指定用戶組的情況下,默認文件的用戶組歸屬也是user_A。如果想要改變文件的用戶組歸屬,將其改為一個由幾個小伙伴組成的工作組group_1,可以用chgrp命令實現。命令如:
[sudo] chgrp [options] (group_name) (file_name) # 命令通式
[sudo] chgrp group_1 file_A # 對文件進行操作
[sudo] chgrp -R group_1 folder_A # 對文件夾內所有文件進行操作
chown
change owner, 改變文件的用戶歸屬,和chgrp
類似,直接給出例子。
[sudo] chown [options] (user) (file_name) # 命令通式
[sudo] chown user_A file_a
[sudo] chown -R user_A folder_a
useradd
用于添加新的用戶
sudo useradd new_user
sudo passwd new_user # 為新用戶設置密碼
groupadd
添加新的用戶組,其中有個選項-G
是使得某個用戶user_A
添加入已存在的組group_A
中,如:
[sudo] groupadd group_A # 新建立一個組名為group_A
[sudo] groupadd -G group_A user_A
文件
/etc/group該文件管理這和用戶組有關的信息,包括分組細節等。
/etc/sudoers該文件管理著所有的root用戶,通過更改該文件可以設置某些人為root用戶與否
總結
總的來說,掌握以上幾個命令可以對linux文件進行更為細致的權限管理,是日常使用的必需掌握的知識。