码迷,mamicode.com
首页 > 其他好文 > 详细

用户及权限管理

时间:2015-12-20 02:06:58      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:linux 用户与权限

一.Linux用户与组,在Linux系统中可以有多个用户与多个任务,Linux是多用户多任务的系统,不同用户间互不干扰。

  在Linux系统中每个用户都有唯一的UID,每次用户登录系统都会在/etc/passwd下进行比对在登录系统时,只有正确输入了用户名和密码,才能进入系统和自己的主目录。
1.用户的分类
在Linux中用户可分为三类:
   管理用户:在系统中有至高无上的权利,可执行任意的操作,可访问任意资源。
   系统用户:这类用户不可以登录系统,是系统自身拥有的,为了系统进程能顺利运行。
   普通用户:可以登录系统,只可以访问自己目录下的资源。


 2.组的分类
  在Linux中组可以分为三类:
     1、管理员组和普通用户组。
     2、基本组和附加组:一个用户可以属于多个组,比如Kim基本组为A,同时又可以属于B,C,就是一对多。
     3、私有组和公共组:私有组就是一个组里只有一个用户。


 3.用户ID与组ID
     在Linux中每个用户和组都有自己的ID,用户ID=UID,组ID=GID。在Linux6中管理用户的ID是0,系统用户的ID是1-499,登录用户的ID是500-60000。在Linux7中,系统用户ID是1-999,登录用户ID是1000-60000,管理用户还是0.


4.用户与组的信息保存的文件路径:
   用户信息保存在/etc/passwd
   组信息保存在/etc/group
   用户密码保存在/etc/shadow
   组的密码保存在/etc/gshadow
     /etc/passwd每个字段的意义:
     用户:影子密码:UID:GID:注释信息:用户的家目录:用户所用的shell
     /etc/group
     组名:组密码:组ID:以本组为附加组的用户
     /etc/shadow
     用户:加密的密码:最近一次修改密码的时间:最短使用期限:最长使用期限:警告期限:过期期限:保留字段
     /etc/gshadow
     组名:组密码:组管理者:组成员

5.组管理命令:
   groupadd,groupmod,groupdel

   1、groupadd的用法:
      groupadd -g group  指定组的ID
               -r group  创建系统组

   2、groupmod的用法:
      groupmod -g group  更改组ID
               -n group  修改组名

   3、groupdel的用法
      groupdel  group    删除组

   4、gpasswd的用法      创建组密码    

              -a user: 将user添加至指定组中

              -d user:  删除用户user的以当前组为组的附加组

             -A user1,user2,...:设置有管理权限的用户列表

    其中newgrp命令是临时切换到一个加密组中,如果用户本不属于此组,则需要组密码












6.用户管理命令:
  useradd,usermod,userdel,passwd

  1、useradd的用法:
     useradd -u 指定用户ID
     useradd -g group  username 指定用户的基本组
     useradd -G group  username 指定用户的附加组
     useradd -c        username      指定用户的注释信息
     useradd -d                            指定用户的家目录
     useradd -s                             指定用户的shell类型
     useradd -r                             创建系统用户



  2、usermod的用法
     usermod -u 指定用户ID
     usermod -g group  username 修改用户的基本组
     usermod -G group  username 修改用户的附加组
     usermod -c             username 修改用户的注释信息
     usermod -d                             修改用户的家目录
     usermod -s                              修改用户的shell类型
     usermod -r                               创艰系统用户
     usermod -e                               指明用户账号过期日期YYYY-MM-DD
     usermod -f                                设定非活动期限
     usermod -L             username        锁定用户
     usermod -U            username        解锁用户
     usermod -I              username        更改其登录名

    注意:usermod不允许修改正在上线的用户的信息,只有确认要被修改的用户不在线才能修改。


  7、相关的配置文件/etc/login.defs,/etc/login.defs,/etc/skel
    

   /etc/login.defs:用来定义创建一个用户时的默认设置,比如指定用户的UID和GID的范围,用户的过期 时间、是否需要创建用户主目录等等。

内容如下:


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_MAX            60000

#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN              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 overridden with the -m flag on
# useradd command line.
#
CREATE_HOME    yes

# The permission mask is initialized to this value. If not specified,
# the permission mask will be initialized to 022.
UMASK           077

# This enables userdel to remove user groups if no members exist.
#
USERGROUPS_ENAB yes

# Use SHA512 to encrypt password.
ENCRYPT_METHOD SHA512


 


    /etc/login.defs文件
     当我们通过useradd命令不加任何参数创建一个用户后,用户默认的主目录一般位于/home下,默认使用的shell是/bin/bash。

     GROUP=100  
     HOME=/home        表示将新建用户的主目录放在/home目录下。
     INACTIVE=-1       表示是否启用帐号过期禁用,-1表示不启用。
     EXPIRE=           表示帐号过期日期,不设置表示不启用。
     SHELL=/bin/bash   指定了新建用户的默认shell类型。
     SKEL=/etc/skel    指定用户主目录默认文件的来源,也就是说新建用户主目录下的文件都是从这个目录下复制而来的。

     /etc/skel目录下的内容:

 .  ..  .bash_logout  .bash_profile  .bashrc  .gnome2  .mozilla(都为隐藏文件,要用  ls-a  命令列出所有)

     家目录(/home)下的userhome,是复制此文件生成的。这个文件中包括.bash_profile, .bashrc, .bash_logout。




     Useradd命令加“-D”参数后,可以修改配置文件/etc/default/useradd,使用的一般格式为:
     useradd -D [-g group] [-b base] [-s shell] [-f inactive] [-e expire ]
     每个选项详细含义:
   
            -g   表示新建用户的起始组名或者GID,组名必须为已经存在的用户组名称,GID也必须是已经存在的用户组GID。
    
            -b   指定新建用户主目录的上级目录,也就是所有新建用户都会在此目录下创建自己的主目录。
 
            -s   指定新建用户默认使用的shell。
          
            -f   指定用户帐号过期多长时间后就永久停用。
 
            -e   指定用户帐号的过期时间。


  3、userdel的用法
     userdel    username              删除该用户        
     userdel -r username              连同家目录一起删除

  4、passwd

     passwd             username     修改密码

                   -k 保持未过期身份验证令牌
                   -l 关闭账号密码。效果相当于usermod -L,只有root才有权使用此项。
                   -u 恢复账号密码。效果相当于usermod -U,同样只有root才有权使用。
                   -g 修改组密码。gpasswd的等效命令。
                   -f 更改由finger命令访问的用户信息。
                  -d 关闭使用者的密码认证功能, 使用者在登入时将可以不用输入密码, 只有具备 root 权限的使用者方可使用.
                -S 显示指定使用者的密码认证种类, 只有具备 root 权限的使用者方可使用.
 




 二、权限管理

       在Linux中,为了资源的安全与系统的安全就有了权限,不同的用户对不同的文件有不同的权限。

       文件不     
         

      
       - rw- r-- r--    1 root root     0 Dec  8 10:24 .autofsck
       

    1、权限简单认识:
    权限一般由10位组成;- rwx rwx rwx
       第一列表示文件的类型:
       -:表示是普通文件
       d:表示是目录
       l:表示是链接
       c:表示是字符设备(线性访问)
       b:表示是块设备(随机访问)


       r:即read表示只读
       w: 即write表示可写
       x: 即execute表示可执行
          可读:表示我们能阅读

          可写:表示我们可以增加修改内容

          可执行:表示这是个程序

        前三位表示是属主的权限
        中三位表示是属组的权限
        后三位表示其他用户的权限


        第二列    1: 表示文件的链接数,
        第三列 root:表示属主 文件拥有者
        第四列 root:表示属组
        第五列    0:表示大小
        第六列 8 10:24:最近一次修改的时间
        第七列 .autofsck:表示隐藏文件


 2、权限对文件的意义:

       r:可读取文件的内容。

       w:可以编辑,新增或者修改文件内容。

       x:该文件具有可执行的权限。

     2.权限对目录的意义:

       r:可以使用ls命令查看目录下的文件列表。

       w:表示具有更改该目录结构列表的权限。

       x:可以使用ls 命令查看目录下的文件列表,以及可以用cd转换到此目录下。


   3.修改权限
   u=属主
   g=属组
   o=其他用户
    chmod   u=rwx g+r o-r      文件名
   u 表示属主,即文件或目录的所有者。
g 表示属组,即文件或目录所属的用户组。
o 表示其他(others)用户 。
a 表示所有(all)用户。
操作符号:
+表示添加某个权限。
-表示取消某个权限。
=表示赋予给定的权限,同时取消文档以前的所有权限。



   数字改权限:chmod 777 文件名 第一个 7 代表属主的权限   第二个 7 代表属组的权限   第三个 7 代表其他用户的权限
    --- 000 0

      --x 001 1

      -w- 010 2

      -wx 011 3

      r-- 100 4

      r-x 101 5

      rw- 110 6

      rwx 111 7
      从上面可知道r=4 w=2 x=1
   r=4
   w=2
   x=1

   改变权限
   chmod 777 /tmp/vitest
   drwxrwxrwx 2 root root 4096 Dec  8 16:39 /tmp/vitest

 
   改变属主
   chown既可以修改属主又可以修改属组
   chown username  文件
   chown op /tmp/vitest/
   drwxrwxrwx 2 op root 4096 Dec  8 16:39 /tmp/vitest/
   chown -R username/group   目录 : 进行递归式的权限更改,也就是将目录下的所有文件、子目录都更新成为指定的用户组权限。



   改变属组
   chgrp group   文件
   chgrp as /tmp/vitest/
   drwxrwxrwx 2 op as 4096 Dec  8 16:39 /tmp/vitest/

    文件或目录创建时的遮罩码:umask
    umask默认是0002或者是0022
    创建文件时的权利:666-umask
    文件不可以拥有x权限,666-umask有x权限时,系统会自动减一或加一。
    目录:777-umask
    查看umask码:在命令行直接输入
    修改umask码:umask 0002

用户及权限管理

标签:linux 用户与权限

原文地址:http://vclownv.blog.51cto.com/10273334/1726335

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!