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

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)

    分享創造快樂