Linux用戶管理與權限

一、用戶和用戶組

    Linux最優秀的地方之一,就在於它的多用戶、多任務環境。而爲了讓各個用戶具有較保密的文件數據,因此用戶和文件的權限管理就變得很重要了。Linux一般將文件可
 
 存取訪問的身份分爲3個類別,分別是owner、group、others。且三種身份各有read、write、execute等權限。
 
    文件所有者,是爲了考慮每個人的隱私權以及每個人喜好的工作環境而提出的概念。 
 
 用戶,我們明白Linux是真正意義上的多用戶操作系統,所以我們能在Linux系統中建若干用戶(user)。比如我們的同事想用我的計算機,但我不想讓他用我的用戶名登     
         錄,因爲我的用戶名下有不想讓別人 看到的資料和信息(也就是隱私內容)這時我就可以給他建一個新的用戶名,讓他用我所開的用戶名去折騰,     

         這從計算機安全角度來說是符合操作規則的;
  
         當然用戶(user)的概念理解還不僅僅於此,在Linux系統中還有一些用戶是用來完成特定任務的,比如nobody和ftp等,我們訪問LinuxSir.Org的網頁程序,就是
  
   nobody用戶;我們匿名訪問ftp時,會用到用戶ftp或nobody ;如果您想了解Linux系統的一些帳號,請查看 /etc/passwd ;     
  
 用戶組,用戶組(group)就是具有相同特徵的用戶(user)的集合體;比如有時我們要讓多個用戶具有相同的權限,比如查看、修改某一文件或執行某個命令,這時我們
 
        需要用戶組,我們把用戶都定義到同一用戶組,我們通過修改文件或目錄的權限,讓用戶組具有一定的操作權限,這樣用戶組下的用戶對該文件或目錄都具有相同
    
     的權限,這是我們通過定義組和修改文件的權限來實現的;
 
二、用戶(user)和用戶組(group)相關的配置文件、命令或目錄

    1,用戶(user)和用戶組(group)相關的配置文件;
 
    與用戶(user)相關的配置文件
   
        /etc/passwd  注:用戶(user)的配置文件
    
     /etc/shadow  注:用戶(user)影子口令文件
    
    與用戶組(group)相關的配置文件
   
        /etc/group 注:用戶組(group)的配置文件
    
     /etc/gshadow 注:用戶組(group)的影子文件
    
 2、管理用戶和用戶組的相關工具或命令;
 
       管理用戶的工具或命令
   
           useradd  添加用戶
    
           adduser  添加用戶
    
           passwd   爲用戶設置密碼
    
           usermod  修改用戶命令,可以usermod來修改登錄名、用戶的家目錄等等。
    
           pwck  校驗用戶配置文件/etc/passwd和/etc/shadow文件內容是否合法或完整 
    
        finger   查看用戶信息工具
    
     chown    改變文件所有者
    
     chmod    改變文件的權限
    
     chgrp    改變文件所屬用戶組
    
     id       查看用戶的UID、GID及所歸屬的用戶組
    
     chfn     更改用戶信息工具
    
     su       用戶切換工具
    
     sudo     通過另一個用戶執行命令( execute a commmand as another user )
    
     visudo   編輯/etc/sudoers的命令
    
    管理用戶組的工具或命令
   
           groupadd 添加用戶組
    
           groupdel 刪除用戶組
    
           groupmod 修改用戶組信息
    
           groups   顯示用戶所屬的用戶組    
    
     newgrp   新建用戶組
    
  注:添加一個用戶:
  
           # useradd USERNAME
    
                     -u UID
     
                     -g GID
     
                     -c "string"註釋信息
     
                     -d PATH 指定路徑
     
                     -s SHELL指定shell
     
                     -G group1,group2...指定附加組
     
                     -M 不創建家目錄
     
                     -m  必須創建家目錄
     
                     -D  指定設備
     
                       -b 指定塊設備
       
                       -s 指定字符設備
       
        注:建立一個用戶:
  
            1. /etc/passwd
   
            2. /etc/shadow
   
            3. /etc/group
   
            4. /home/USERNAME
   
                   /etc/passwd
      
                    username:x:UID:GID:comment:HOMEDIR:SHELL
      
                   /etc/shadown
      
       username:密碼加密後結果:從1970-1-1到密碼修改時間的天數:最近一次更改密碼的日期:密碼最短保留天數:密碼多久需要進行更改:密碼過期
      
       前警告日期:密碼失效日期,非活動時間:賬號失效日::預留段
      
                   student:$1$PPAfA5Zs$B8Q7.8JCD69ueI.xGin320:15354:0:99999:7:::       
    
 添加密碼:
     # passwd  USERNAME
          passwd  [-k]  [-l] [-u [-f]] [-d] [-n mindays] [-x maxdays] [-w warn-
                   days] [-i inactivedays] [-S] [--stdin] [username]
 
三、/etc/skel 目錄;

/etc/skel目錄一般是存放用戶啓動文件的目錄,這個目錄是由root權限控制,當我們添加用戶時,這個目錄下的文件自動複製到新添加的用戶的家目錄下;/etc/skel

 目錄下的文件都是隱藏文件,也就是類似.file格式的;我們可通過修改、添加、刪除/etc/skel目錄下的文件,來爲用戶提供一個統一、標準的、默認的用戶環境;

[root@localhost beinan]# ls -la /etc/skel/

總用量 92

drwxr-xr-x    3 root root  4096  8月 11 23:32 .

drwxr-xr-x  115 root root 12288 10月 14 13:44 ..

-rw-r--r--    1 root root    24  5月 11 00:15 .bash_logout

-rw-r--r--    1 root root   191  5月 11 00:15 .bash_profile

-rw-r--r--    1 root root   124  5月 11 00:15 .bashrc

-rw-r--r--    1 root root  5619 2005-03-08  .canna

-rw-r--r--    1 root root   438  5月 18 15:23 .emacs

-rw-r--r--    1 root root   120  5月 23 05:18 .gtkrc

drwxr-xr-x    3 root root  4096  8月 11 23:16 .kde

-rw-r--r--    1 root root   658 2005-01-17  .zshrc

/etc/skel 目錄下的文件,一般是我們用useradd 和adduser 命令添加用戶(user)時,系統自動複製到新添加用戶(user)的家目錄下;如果我們通過修改

/etc/passwd 來添加用戶時,我們可以自己創建用戶的家目錄,然後把/etc/skel 下的文件複製到用戶的家目錄下,然後要用chown 來改變新用戶家目錄的屬主;

四、/etc/login.defs 配置文件;

/etc/login.defs 文件是當創建用戶時的一些規劃,比如創建用戶時,是否需要家目錄,UID和GID的範圍;用戶的期限等等,這個文件是可以通過root來定義的;

比如Fedora 的 /etc/logins.defs 文件內容;

# *REQUIRED*

#   Directory where mailboxes reside, _or_ name of file, relative to the

#   home directory.  If you _do_ define both, MAIL_DIR takes precedence.

#   QMAIL_DIR is for Qmail

#

#QMAIL_DIR      Maildir

MAIL_DIR        /var/spool/mail  注:創建用戶時,要在目錄/var/spool/mail中創建一個用戶mail文件;

#MAIL_FILE      .mail

# Password aging controls:

#

#       PASS_MAX_DAYS   Maximum number of days a password may be used.

#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.

#       PASS_MIN_LEN    Minimum acceptable password length.

#       PASS_WARN_AGE   Number of days warning given before a password expires.

#

PASS_MAX_DAYS   99999   注:用戶的密碼不過期最多的天數;

PASS_MIN_DAYS   0       注:密碼修改之間最小的天數;

PASS_MIN_LEN    5       注:密碼最小長度;

PASS_WARN_AGE   7       注:

#

# Min/max values for automatic uid selection in useradd

#

UID_MIN                   500  注:最小UID爲500 ,也就是說添加用戶時,UID 是從500開始的;

UID_MAX                 60000   注:最大UID爲60000;

#

# Min/max values for automatic gid selection in groupadd

#

GID_MIN                   500   注:GID 是從500開始;

GID_MAX                 60000

#

# If defined, this command is run when removing a user.

# It should remove any at/cron/print jobs etc. owned by

# the user to be removed (passed as the first argument).

#

#USERDEL_CMD    /usr/sbin/userdel_local

#

# If useradd should create home directories for users by default

# On RH systems, we do. This option is ORed with the -m flag on

# useradd command line.

#

CREATE_HOME     yes   注:是否創用戶家目錄,要求創建;

五、/etc/default/useradd 文件;

通過useradd 添加用戶時的規則文件;

# useradd defaults file

GROUP=100

HOME=/home  注:把用戶的家目錄建在/home中;

INACTIVE=-1  注:是否啓用帳號過期停權,-1表示不啓用;

EXPIRE=   注:帳號終止日期,不設置表示不啓用;

SHELL=/bin/bash  注:所用SHELL的類型;

SKEL=/etc/skel   注: 默認添加用戶的目錄默認文件存放位置;也就是說,當我們用adduser添加用戶時,用戶家目錄下的文件,都是從這個目錄中複製過去的;
 
六、Linux文件權限
    
權限:r:讀

      w:寫
  
      x:執行
  
 rwx,文件;
 
目錄權限:

   r:ls
  
   w: 建立或刪除文件
  
   x: cd切換到此目錄,或者ls -l文件

---   000    0

--x   001    1

-w-   010    2

-wx   011    3

r--   100    4

r-x   101    5

rw-   110    6

rwx   111    7

例如: 640

rw-r-----  root redhat a.txt

chmod  
 
1..chmod 644 file1       chmod -l 修改登錄名

     rw-r--r--
 
2..u屬主

   g屬組
  
   o其它
  
   a所有
  
   ug=rw
  
   u=rw,g=r
  
3..+/-

   u+x
  
   g-x
  
   o+r
  
   +x

-R 遞歸修改

--reference=xx     以xx爲模板參照

chown/chgrp

chown USERNAME FILE1,FILE2,...

-R


例如:
添加slackware用戶,slackware用戶組     UID5000,GID5000

1,/etc/group

slackware:x:5000:

2,/etc/passwd

slackware:x:5000:5000:Test User:/home/slackware:/bin/bash

3,/etc/shadow

slackware:$1$12345678$0ME5N6oDyoEAwUp7b5UDM/:15355:...

4,

# cp -r /etc/skel /home/slackware

# chown -R slackware:slackware /home/slackware

# chmod -R go= /home/slackware

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章