Linux命令-用戶、用戶組、權限


參考資料:

http://www.linuxidc.com/Linux/2014-07/104445.htm    Linux入門教程:如何手動創建一個Linux用戶

http://www.linuxidc.com/Linux/2012-05/60754.htm      Linux用戶管理命令

前言:

  所有用戶名會在/etc/passwd文件中保存

 

cat /etc/passwd 可以查看所有用戶的信息,比如剛才創建的linuxidc用戶


  linuxidc:x:1002:1002:linuxidc,101,186525810**,186525810**:/home/linuxidc:/bin/bash  

基本格式:
  用戶名:口令:用戶標識號:組標識號:注釋性描述:主目錄:登錄Shell,中間用:隔開

注意:

1.口令 這里用x 表示

真正的密碼放在了/etc/shadow文件,這是shadow文件里面linuxidc的密碼:

linuxidc:$6$v7uh0ctV$borVraMjOPhMjYV8YCVcmwylKb84djRm5yVWNbKYHxrcFLLqlSsx.hbcW.Ouk2A05CyChx7zZlRV3wZMuH0hE0:15480:0:99999:7:::  
已經被加密了,所以比較安全。

2.組標識號對應/etc/group中一行

linuxidc:x:1002:

group文件格式參考:

    /etc/group 文件文件的格式和 /etc/passwd 文件格式類似,它也是一個純文本文件,定義了每個組中的用戶。每行的格式是:

    group_name:passwd:GID:user_list

    它們的含義如下:

password:組口令。此域中的口令是加密的。如果此域為空,表明該組不需要口令。

 

  /home/username  ==>用戶主目錄。一個用戶會在/home/目錄下存在一個用戶名為文件名的文件夾

  /etc/group (用戶組)

  /etc/shadow (密鑰文件)(為每個用戶的密碼使用不同加密方式)

使用命令創建用用戶就是會在

1、passwd文件創建含用戶名的相關配置

2、為用戶生成主目錄,主目錄中當然也存在一些必要文件

3、為用戶指定用戶組(使用adduser會自動創建username組並將username用戶加入到username組中)

4、就是設置密碼還有指定登錄的shell版本

-------如果沒有指定shell版本,在登陸時候不會顯示前綴,只會以$開頭(對於強迫症影響很大)

正常版本  用戶名@服務器名:

 

創建/刪除用戶的方式

adduser: 會自動為創建的用戶指定主目錄、系統shell版本,會在創建時輸入用戶密碼。(屬於傻瓜式操作,輸入用戶名密碼系統會自動為你創建用戶,用戶組等)

useradd:需要使用參數選項指定上述基本設置,如果不使用任何參數,則創建的用戶無密碼、無主目錄、沒有指定shell版本。

useradd創建用戶

常用參數:  -d  指定用戶主目錄,一般在/home/目錄下創建主目錄

       -m 為用戶創建主目錄,需要和-d一起使用

       -s 指定登陸時的shell版本

一般切換為root用戶,再創建用戶
useradd abc  創建用戶
passwd abc 為用戶設置密碼

 上面只創建用戶和設置密碼,useradd abc 會自動會為用戶創建主目錄。

接下來看帶參數創建用戶

useradd -md /home/abc -s /bin/bash abc 指定主目錄,指定shell版本
passwd abc
userdel abc //刪除用戶 這只是簡單刪除命令

userdel刪除用戶

 

userdel: 
功能:刪除用戶 
選項: 
-r:刪除用戶的同時、home目錄的用戶文件一並刪除 

-f: 強制刪除用戶  ,這個不會刪除用戶的家目錄,但家目錄的所有者只會顯示為數字id,而不是用戶名(這個會導致系統不一致,

  這個選項不會斷開 該用戶已有的 SSH 鏈接。因此,即使用戶已經不存在,

  但實際上仍是登錄狀態,並且是活躍用戶。但是當用戶登出后不可再登錄,因為用戶已經被刪除。)

刪除用戶之前不需要將用戶從用戶組中移除出去
For example
刪除tom用戶並將其家目錄一並刪除:
# userdel -r tom

有些時候用戶已登錄,會提示刪除不了

 userdel: user ceshi is currently used by process 8335
有多種方法可以解決
調用  
ps ax|grep 
用戶名  查看用戶所運行的進程
然后調用kill 進程號,關閉所有進程后在刪除就沒問題了
 
 

將用戶加入/移除到用戶組

使用usermod命令

usermod -a -G root abc   將用戶abc加入到root用戶組中,這樣abc用戶就具有的該組的用戶所具有的權限
usermod -g root abc   將abc的主要用戶組改為root用戶組
gpasswd -d user group 將一個用戶從某個組中刪除,這個時候需要保證 group 不是 user 的主組。

注意:

usermod -G groupname username(這個會把用戶從其他組中去掉)

usermod -a  -G groupname username(加參數a不會移除用戶以加入的用戶組)

從組中刪除用戶

編輯/etc/group 找到GROUP1那一行,刪除 A
或者用命令
gpasswd -d A GROUP

創建/刪除用戶組

也可以在新建用戶時候新建用戶組

useradd -g 新用戶組名 用戶名   //使用-g參數來創建用戶組

直接創建/刪除用戶組

groupadd 用戶組名  //增加用戶組
groupdel 用戶組名    //刪除用戶組

 權限:

-rw-rw-r-- 1 zwh zwh  1910 Jan  4 03:09 client.py

1-3位數字代表文件所有者的權限,4-6位數字代表同組用戶的權限,7-9數字代表其他用戶的權限。 

權限:r, w, x   對應 讀、寫、可執行

r對應數字4,w對應2,x對應1

通過4、2、1的組合,得到以下幾種權限:0(沒有權限);4(讀取權限);5(4+1 | 讀取+執行);6(4+2 | 讀取+寫入);7(4+2+1 | 讀取+寫入+執行)

rwx:可讀可學可執行
 r--:只讀
 r-x:讀和執行
 ---:無權限

八進制表示:(可忽略。。) 
      0 000 ---:無權限
      1 001 --x: 執行
      2 010 -w-: 寫
      3 011 -wx: 寫和執行
      4 100 r--: 只讀
      5 101 r-x: 讀和執行
      6 110 rw-: 讀寫
      7 111 rwx: 讀寫執行

給文件設置權限 chmod 權限 文件名

chmod也可以用數字來表示權限如 chmod 777 file
語法為:chmod abc file
其中a,b,c各為一個數字,分別表示User、Group、及Other的權限。
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=7。
范例:
chmod a=rwx file

chmod 777 file
效果相同
chmod ug=rwx,o=x file

chmod 771 file
效果相同
若用chmod 4755 filename可使此程序具有root的權限

 

chmod命令詳細用法


總結 

用戶管理命令:useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage

  • finger: 查看用戶帳號信息
  • usermod:修改用戶帳號屬性
  • chsh: 修改用戶的默認shell
  • chfn:修改注釋信息
  • passwd:密碼管理

組管理命令:groupadd, groupdel, groupmod, gpasswd

  • gpasswd:為組設定密碼

權限管理:chown, chgrp, chmod, umask

  • chown: 改變文件屬主
  • chgrp:改變文件屬組
  • chmod: 修改文件的權限

useradd命令參數說明

Usage: useradd [options] LOGIN
       useradd -D
       useradd -D [options]

Options:
  -b, --base-dir BASE_DIR       base directory for the home directory of the
                                new account
  -c, --comment COMMENT         GECOS field of the new account
  -d, --home-dir HOME_DIR       home directory of the new account
  -D, --defaults                print or change default useradd configuration
  -e, --expiredate EXPIRE_DATE  expiration date of the new account
  -f, --inactive INACTIVE       password inactivity period of the new account
  -g, --gid GROUP               name or ID of the primary group of the new
                                account
  -G, --groups GROUPS           list of supplementary groups of the new
                                account
  -h, --help                    display this help message and exit
  -k, --skel SKEL_DIR           use this alternative skeleton directory
  -K, --key KEY=VALUE           override /etc/login.defs defaults
  -l, --no-log-init             do not add the user to the lastlog and
                                faillog databases
  -m, --create-home             create the user's home directory
  -M, --no-create-home          do not create the user's home directory
  -N, --no-user-group           do not create a group with the same name as
                                the user
  -o, --non-unique              allow to create users with duplicate
                                (non-unique) UID
  -p, --password PASSWORD       encrypted password of the new account
  -r, --system                  create a system account
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --shell SHELL             login shell of the new account
  -u, --uid UID                 user ID of the new account
  -U, --user-group              create a group with the same name as the user
  -Z, --selinux-user SEUSER     use a specific SEUSER for the SELinux user mapping

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM