歡迎光臨
每天分享高質量文章

linux用戶、用戶組及權限設置

來源:newlendone

ID:newlendone

查看當前用戶

whoami  #要查看當前登錄用戶的用戶名
who am i  #表示打開當前偽終端的用戶的用戶名

who 命令其它常用引數:
-a 打印能打印的全部
-d 打印死掉的行程
-m 同am i,mom likes
-q 打印當前登錄用戶數及用戶名
-u 打印當前登錄用戶登錄信息
-r 打印運行等級

創建新用戶

adduser newname // 新建用戶newname

useradd和adduser的區別
都能創建用戶,不同點如下:
useradd 只創建用戶,創建完了用 passwd newname 去設置新用戶的密碼。
adduser 會創建用戶,創建目錄,創建密碼(提示你設置),做這一系列的操作。

註意:用useradd添加用戶之後,在預設的情況下,該賬號是暫時被封鎖的, 也就是說,該賬號是無法登錄,須要用passwd命令來給新創建的用戶設置密碼之後才可以使用。

其實 useradd、userdel 這類操作更像是一種命令,執行完了就傳回,而 adduser 更像是一種程式,需要你輸入、確定等一系列操作。

————adduser的詳細引數————

用法:adduser [選項] 登錄
      adduser -D
      adduser -D [選項]

引數:
  -b, –base-dir BASE_DIR 新賬戶的主目錄的基目錄
  -c, –comment COMMENT         新賬戶的 GECOS 欄位
  -d, –home-dir HOME_DIR       新賬戶的主目錄
  -D, –defaults 顯示或更改預設的 useradd 配置
  -e, –expiredate EXPIRE_DATE  新賬戶的過期日期
  -f, –inactive INACTIVE       新賬戶的密碼不活動期
  -g, –gid GROUP 新賬戶主組的名稱或 ID
  -G, –groups GROUPS 新賬戶的附加組串列
  -h, –help                    顯示此幫助信息並推出
  -k, –skel SKEL_DIR 使用此目錄作為骨架目錄
  -K, –key KEY=VALUE           不使用 /etc/login.defs 中的預設值
  -l, –no-log-init 不要將此用戶添加到最近登錄和登錄失敗資料庫
  -m, –create-home 創建用戶的主目錄
  -M, –no-create-home 不創建用戶的主目錄
  -N, –no-user-group 不創建同名的組
  -o, –non-unique 允許使用重覆的 UID 創建用戶
  -p, –password PASSWORD 加密後的新賬戶密碼
  -r, –system                  創建一個系統賬戶
  -R, –root CHROOT_DIR         chroot 到的目錄
  -s, –shell SHELL 新賬戶的登錄 shell
  -u, –uid UID 新賬戶的用戶 ID
  -U, –user-group 創建與用戶同名的組
  -Z, –selinux-user SEUSER 為 SELinux 用戶映射使用指定 SEUSER

刪除用戶

userdel #刪除用戶
引數:
  -f, –force                   force some actions that would fail otherwise
                                e.g. removal of user still logged in
                                or files, even if not owned by the user
  -h, –help                    顯示此幫助信息並推出
  -r, –remove                  刪除主目錄和郵件池
  -R, –root CHROOT_DIR         chroot 到的目錄
  -Z, –selinux-user            為用戶刪除所有的 SELinux 用戶映射

刪除用戶則推薦使用userdel,單單用deluser命令(centos 7是沒有這個命令的,要使用userdel,而debian有),不加引數的話,只會刪除用戶,但是不會刪除在/home目錄中的用戶家目錄。如果你想要連此用戶的家目錄也一併刪除,可以加上 –remove-home 這個引數,如下:

deluser –remove-home newname

修改用戶密碼

passwd newname

修改用戶賬戶

usermod -g siatstudent newname #-g:修改用戶所在群組
usermod -G friends,happy,funny newname #-G:一次將一個用戶添加到多個群組

註意:使用usermod時要小心,因為配合-g或-G引數時,它會把用戶從原先的群組裡剔除,加入到新的群組。如果你不想離開原先的群組,又想加入新的群組,可以在-G引數的基礎上加上-a引數,a是英語append的縮寫,表示“追加”。

usermod -aG happy newname #-a追加用戶到新的用戶組,保留原來的組

usermod詳細引數如下:

引數:
  -c, –comment 註釋            GECOS 欄位的新值
  -d, –home HOME_DIR           用戶的新主目錄
  -e, –expiredate EXPIRE_DATE  設定帳戶過期的日期為 EXPIRE_DATE
  -f, –inactive INACTIVE       過期 INACTIVE 天數後,設定密碼為失效狀態
  -g, –gid GROUP               強制使用 GROUP 為新主組
  -G, –groups GROUPS           新的附加組串列 GROUPS
  -a, –append GROUP            將用戶追加至上邊 -G 中提到的附加組中,
                                並不從其它組中刪除此用戶
  -h, –help                    顯示此幫助信息並推出
  -l, –login LOGIN             新的登錄名稱
  -L, –lock                    鎖定用戶帳號
  -m, –move-home               將家目錄內容移至新位置 (僅於 -d 一起使用)
  -o, –non-unique              允許使用重覆的(非唯一的) UID
  -p, –password PASSWORD       將加密過的密碼 (PASSWORD) 設為新密碼
  -R, –root CHROOT_DIR         chroot 到的目錄
  -s, –shell SHELL             該用戶帳號的新登錄 shell
  -u, –uid UID                 用戶帳號的新 UID
  -U, –unlock                  解鎖用戶帳號
  -Z, –selinux-user  SEUSER       用戶賬戶的新 SELinux 用戶映射

查看用戶所屬群組

groups newname #查看newname所屬群組

創建組

groupadd newname #創建一個名為newname的組

引數:
  -f, –force 如果組已經存在則成功退出
並且如果 GID 已經存在則取消 -g
  -g, –gid GID                 為新組使用 GID
  -h, –help                    顯示此幫助信息並推出
  -K, –key KEY=VALUE           不使用 /etc/login.defs 中的預設值
  -o, –non-unique              允許創建有重覆 GID 的組
  -p, –password PASSWORD       為新組使用此加密過的密碼
  -r, –system                  創建一個系統賬戶
  -R, –root CHROOT_DIR         chroot 到的目錄

修改組

groupmod -n test2group testgroup

刪除組

groupdel test2group

查看檔案所屬的用戶及組

ls -l
#第三串列示檔案或目錄的所有者,第四串列示檔案或目錄的所在群組
groups  #查看當前登陸用戶所在的組
groups testnewuser #查看testnewuser 所在的組
cat /etc/group  #查看所有組

————————–有關用戶及用戶組權限設置時的命令—————————-
chmod命令:修改檔案的訪問權限

用法:chmod [選項]… 樣式[,樣式]… 檔案…
 或:chmod [選項]… 八進制樣式 檔案…
 或:chmod [選項]… –reference=參考檔案 檔案…
Change the mode of each FILE to MODE.
With –reference, change the mode of each FILE to that of RFILE.

  -c, –changes          like verbose but report only when a change is made
  -f, –silent, –quiet  靜默樣式
  -v, –verbose          診斷樣式,顯示完整的執行過程
      –no-preserve-root  do not treat ‘/’ specially (the default)
      –preserve-root    fail to operate recursively on ‘/’
      –reference=RFILE  use RFILE’s mode instead of MODE values
  -R, –recursive       遞迴方式設置
      –help 顯示此幫助信息並退出
      –version 顯示版本信息並退出

說明 : Linux/Unix 的檔案呼叫權限分為三級 : 檔案擁有者、群組、其他。利用 chmod 可以藉以控制檔案如何被他人所呼叫。
引數 :
mode : 權限設定字串,格式如下 : [ugoa…][[+-=][rwxX]…][,…],其中
u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬於同一個群體(group)者,o表示其他以外的人,a 表示這三者皆是。
+ 表示增加權限、- 表示取消權限、= 表示唯一設定權限。
r 表示可讀取,w 表示可寫入,x 表示可執行。

d:是英語directory的縮寫,表示“目錄”。就是說這是一個目錄。
    l:是英語link的縮寫,表示“鏈接”。就是說這是一個鏈接。
    r:是英語read的縮寫,表示“讀”。就是說可以讀這個檔案。
    w:是英語write的縮寫,表示“寫”。就是說可以寫這個檔案,也就是可以修改。
    x:是英語execute的縮寫,表示“執行,運行”。就是說可以運行這個檔案

關於檔案權限的例子講解

ls -l file.txt

傳回-rw-r–r–

傳回引數的說明:

-:第一個短橫表示這是一個普通檔案。如果此處是d,那麼表示目錄;如果是l,那麼表示鏈接,等等。
    rw-:表明瞭檔案的所有者(此處是newname)對檔案有讀,寫的權限,但是沒有運行的權限。也很好理解,因為這是一個普通檔案,預設沒有可執行的屬性。記住:如果有w權限(寫的權限),那麼表明也有刪除此檔案的權限。
    r–:表明檔案所在的群組(此處是newname)的其他用戶(除了newname之外)只可以讀此檔案,但不能寫也不能執行。“可遠觀而不可褻玩焉”。
    r–:表示其他用戶(除去newname這個群組的用戶)只可以讀此檔案,但不能寫也不能執行。

總結:file.txt 這個檔案是一個普通檔案,不是一個目錄,也不是鏈接檔案,它的所有者newname可以讀寫它,但不能執行;其他的用戶只能讀。

用字母來分配權限:chmod的相對用法

u:user的縮寫,是英語“用戶”的意思。表示所有者。
g:group的縮寫,是英語“群組”的意思。表示群組用戶。
o:other的縮寫,是英語“其他”的意思。表示其他用戶。
a:all的縮寫,是英語“所有”的意思。表示所有用戶。

+:加號,表示添加權限。
-:減號,表示去除權限。
=:等號,表示分配權限。

舉例說明:

#檔案file.txt的所有者增加讀和運行的權限。
chmod u+rx file.txt
#檔案file.txt的群組其他用戶增加讀的權限。
chmod g+r file.txt 
#檔案file.txt的其他用戶移除讀的權限。
chmod o-r file.txt 
#檔案file.txt的群組其他用戶增加讀的權限,其他用戶移除讀的權限。
chmod g+r o-r file.txt 
#檔案file.txt的群組其他用戶和其他用戶均移除讀的權限。
chmod go-r file.txt 
#檔案file.txt的所有用戶增加運行的權限。
chmod +x file.txt 
#檔案file.txt的所有者分配讀,寫和執行的權限;群組其他用戶分配讀的權限,不能寫或執行;其他用戶沒有任何權限。
chmod u=rwx,g=r,o=- file.txt
#遞迴執行賦權,設置newname檔案夾權限
chmod -R 700 /home/newname

——————————————————————
chown命令:用於改變檔案的所有者

示例:
改變檔案的用戶(用ls -l可以快速查看原用戶和組),後接新的所有者的用戶名,再接檔案名:

chown newname file.txt

chown命令也可以改變檔案的群組,如下:

chown newname:friends file.txt #將file.txt檔案的用戶改為newname,所屬用戶組修改為friends

chown root /u          #將 /u 的屬主更改為”root”
  chown root:staff /u #和上面類似,但同時也將其屬組更改為”staff”
  chown -hR root /u #將 /u 及其子目錄下所有檔案的屬主更改為”root”

chown命令使用詳細說明

用法:chown [選項]… [所有者][:[組]] 檔案…
 或:chown [選項]… –reference=參考檔案 檔案…
Change the owner and/or group of each FILE to OWNER and/or GROUP.
With –reference, change the owner and group of each FILE to those of RFILE.

  -c, –changes          like verbose but report only when a change is made
  -f, –silent, –quiet  suppress most error messages
  -v, –verbose          output a diagnostic for every file processed
      –dereference      affect the referent of each symbolic link (this is
                         the default), rather than the symbolic link itself
  -h, –no-dereference   affect symbolic links instead of any referenced file
                         (useful only on systems that can change the
                         ownership of a symlink)
      –from=當前所有者:當前所屬組
                         只當每個檔案的所有者和組符合選項所指定時才更改所
有者和組。其中一個可以省略,這時已省略的屬性就不
需要符合原有的屬性。
      –no-preserve-root  do not treat ‘/’ specially (the default)
      –preserve-root    fail to operate recursively on ‘/’
      –reference=RFILE  use RFILE’s owner and group rather than
                         specifying OWNER:GROUP values
  -R, –recursive        operate on files and directories recursively

The following options modify how a hierarchy is traversed when the -R
option is also specified.  If more than one is specified, only the final
one takes effect.

  -H                     if a command line argument is a symbolic link
                         to a directory, traverse it
  -L                     traverse every symbolic link to a directory
                         encountered
  -P                     do not traverse any symbolic links (default)

      –help 顯示此幫助信息並退出
      –version 顯示版本信息並退出

Owner is unchanged if missing.  Group is unchanged if missing, but changed
to login group if implied by a ‘:’ following a symbolic OWNER.
OWNER and GROUP may be numeric as well as symbolic.

《Linux雲計算及運維架構師高薪實戰班》2018年08月27日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~

    *宣告:推送內容及圖片來源於網絡,部分內容會有所改動,版權歸原作者所有,如來源信息有誤或侵犯權益,請聯繫我們刪除或授權事宜。

    – END –


    更多Linux好文請點擊【閱讀原文】

    ↓↓↓

    赞(0)

    分享創造快樂