一、用户和用户组

    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