一.用户的权限

  1.对于文件来说:

       r:可读,可以使用类似cat等命令查看文件内容

       w:可写,可以编辑或删除此文件

       x: 可执行,eXacutable,可以命令提示符下当作命令提交给内核运行

  2.对于目录来说:

       r: 可以对此目录执行ls以列出内部的所有文件

       w: 可以在此目录创建文件

       x: 可以使用cd切换进此目录,也可以使用ls -l查看内部文件的详细信息,目录一般都要有执行权限

  3.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: 读写执行


     755:rwxr-xr-x

     rw-r-----: 640

     660:rw-rw----

     rwxrwxr-x:775

     三位一组 用三个二进制位来表示一个八进制位,755表示文件或目录的所有者权限为rwx,用户所属组的权限为r-x,other用户的权限为r-x

  4.用户和组:

     1.用户登录计算机时系统会在数据库中查找用户名所对应的记录,获取用户的id号,然后根据这个id号来标识一个用户.用户的详细信息在/etc/passwd文件.用户的密码保存在/etc/shadow文件中

     2.组的详细信息在/etc/group文件中.组密码在/etc/gshadow文件中

     疑问:组是不用登录的那么为什么组需要有密码

     3.在Linux系统中有三类用户

      a.管理员 uid号永远为0,用户名为root 不可更改

      b.普通用户 uid号 1-65535

      c.系统用户和一般用户是属于普通用户下

      e.系统用户---运行后台应用程序的 该类别用户不能登录系统 只是用来运行服务的uid号1-499

      f.一般用户--uid号从500-65535

      g.用户组类别:

          管理员组

          普通组

         系统组

         一般组

      h.用户组类别:

     私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个与用户名同名的组

     基本组:用户的默认组

     附加组,额外组:默认组以外的其它组

      i.疑问:

          什么是安全上下文,权限模型,属主和属组怎么和权限位关联起来的

   5./etc/passwd---有七个字段

      1.用whatis passwd ---查看有几个章节的man文档

      2.用man 5 passwd ---查看文件的格式信息

       a.用户名

       b.password---密码占位符

       c.uid---用户的id号

       d.gid---用户基本组id

       e.comment---注释详细

       f.home--用户的家目录

       j.shell---用户的默认shell

    在/etc/shells 里面的shell是系统中的安全shell

    6./etc/shadow--有八个字段

       a.account--登录名

       b.password--加密后的密码

        加密的格式:

              对称加密:加密和解密使用同一个密码

         公钥加密:每个密码都成对儿出现,一个为私钥(secret key),一个为公钥(public key)

         单向加密,散列加密:提取数据特征码,常用于数据完整性校验

    1、雪崩效应

    2、定长输出

     MD5:Message Digest, 128位定长输出

     SHA1:Secure Hash Algorithm, 160位定长输出

        c.从1970年到上一次修改密码经过的天数

        d.密码最短使用期限

        e.密码最长使用期限

        f.密码警告时间

        g.非活动时间--宽限期一登录就要修改密码否则就不能使用

        h.密码过期时间

   7.which useradd --查看命令对应的文件路径

   8.用户管理:

  useradd, userdel, usermod, passwd, chsh, chfn, finger, id, chage

        a.useradd  [options]  USERNAME 

            -u UID

          -g GID(基本组,组必须事先存在)

          -G GID,...  (附加组,组必须事先存在)

          -c "COMMENT"

          -d /path/to/directory--指定用户家目录

          -s SHELL

          -m -k

          -M 不为用户创建家目录

          -r: 添加系统用户 不能登录系统并且不存在家目录

         b.userdel---删除用户 

            不加参数默认不会删除home下的家目录

            -r:删除用户同时删除用户的家目录

         c.finger--检索用户相关账号信息

         d.usermod--修改用户账号属性信息

            -u UID 

          -g GID:修改基本组gid

          -a -G GID:不使用-a选项,会覆盖此前的附加组;

          -c  :注释信息

          -d -m:修改家目录,有-m 则会将原来家目录下的文件移动到新的家目录下

          -s  :指定默认shell

          -l  :修改用户的登录名

          -L:锁定帐号

          -U:解锁帐号

          e.chsh--修改用户的默认shell

          g.chfn--修改用户注释信息,为finger命令显示的内容信息

          h.passwd--修改用户密码

                --stdin : 从标准读入密码

                -l : 锁定用户

                -u : 解锁

                -d : 删除用户密码

    9.在/etc/default/useradd文件中可以设定useradd的默认属性值

    10.组管理:

        groupadd, groupmod, groupdel, gpasswd

        a.groupadd---添加组

                -g : 指定gid

                -r : 添加一个系统组

        b.groupmod---修改用户组

                -g : 修改组id

                -n : 修改组名

        c.groupdel---删除用户组

        d.gpasswd groupname---给组加密码

           在需要切换到另外的组事,需要用组密码

        newgrp groupname ---临时切换到一个新组里面,使用exit 退出  

        

    11.权限管理:

        chmod, chown, chgrp

    12.在/etc/login.defs文件中可以设定用户添加时的信息

    13.id命令--查看用户的属性信息

        -u:查看uid

   -g: 查看gid

   -G: 查看附加组gid

   -n: 查看组名

    14.pwck--检查用户帐号完整性

    15.chage--改变用户密码过期时间

        -d: 最近一次的修改时间

   -E: 过期时间

   -I:非活动时间

   -m: 最短使用期限

   -M: 最长使用期限

   -W: 警告时间

练习:

1、创建一个用户mandriva,其ID号为2002,基本组为distro(组ID为3003),附加组为linux;

# groupadd -u 3003 distro

# groupadd linux

# useradd -u 2002 -g distro -G linux

2、创建一个用户fedora,其全名为Fedora Community,默认shell为tcsh;

# useradd -c "Fedora Community" -s /bin/tcsh

3、修改mandriva的ID号为4004,基本组为linux,附加组为distro和fedora;

# usermod -u 4004 -g linux -G distro,fedora

4、给fedora加密码,并设定其密码最短使用期限为2天,最长为50天;

# passwd -n 2 -x 50 fedora

5、将mandriva的默认shell改为/bin/bash; 

# usermod -s /bin/bash mandriva

6、添加系统用户hbase,且不允许其登录系统;

# useradd -r -s /bin/nologin hbase