第一部分:用户和组
    1.用户类型:
        管理员(root=0)
        普通用户(id>500)
        程序用户(0<id<500)
    2.新建用户:useradd
            #useradd [-c|-d|-m|-M|-s|-g|-G|-u] <username>
                -c 用户的注释
                -d 用户的家目录
                -m 在创建用户的时候生成家目录,默认是建立家目录
                -M 在创建用户的时候不生成家目录
                -s 用户登录的时候使用哪种shell,指定为/sbin/nologin时将不能进行登录
                -g 用户的主组
                -G 用户所属的其它组
                -u 用户的id是多少
            #useradd newuser1   
                生成一个叫做newuser1的用户,主组是newuser1, 家目录自动的在/home目录下创建newuser1用户目录,Shell为默认的/bin/bash,注释为空,主组为newuser1,没有辅助组
            #useradd -c "this is a new user" -d /home/newuser1 -g 123 -G root,bin -m -s /bin/bash newuser1
           
    3.删除用户:userdel
            userdel <username>         只删除用户
            userdel -r <username>      将家目录一并删除

    4.改变用户的设置:usermod     修改用户的一些配置信息
            usermod -d </homedir>        改家目录
            usermod -s </shellpath>        改登录时的shell
            usermod -g <groupname|groupid>    改主组
            usermod -G <groupname|groupid>    改辅助组
            usermod -c <comment>        改注释
            usermod -L <username>        加锁用户,但从root还是可以切换到锁定用户
            usermod -U <username>        解锁用户

    5.设置用户密码:passwd
            passwd <username>    修改username这个用户的密码
            passwd --stdin
            echo "password" | passwd --stdin <username>  --也脚本是常用
            注意事项:
                root用户改普通用户密码的时候,不要先输入老密码
                普通改自己的密码,要输入老密码,不能将用户名设置成密码
   
    6.在不同用户间进行切换:su
            su    切换到root,普通用户->root,一定要密码,切换后所在的目录不变
            su -    切换到root,普通用户->root,一定要密码,切换后回到家目录下
            su <username>  普通用户->任何一个非自身的用户切换,都需要输入密码
            su - <username> 
            exit

    7.新建组:groupadd
            groupadd groupname
            注意:如果所删除的组是某个用户的主组,则不能删除这个组,必须将以这个组为主组的所有用户删除,才能删除这个组
                  如果用户的主组就是自身,那么删除用户的时候,用户和组信息同时删除

    8.删除组:groupdel
            groupdel groupname

    9.设置组密码:gpasswd 定制组的管理员,用户,密码
            gpasswd -a|-M  <username> <groupname> 将用户添加到组groupname中
            gpasswd -d <username> <groupname>  删除组groupname中的某个用户
            gpasswd -M <userlist1,userlist2,userlist3,...> <groupname> 设置组的用户列表
            gpasswd -r <groupname> 删除组的密码
            gpasswd -R <groupname> 严格限制进入这个组的权限,仅组成员能够进入             gpasswd -A <username> <groupname> 将用户username设置成组管理员
            gpasswd <groupname>    设置组的密码
           
    10.组间切换:newgrp
            newgrp groupname
   
    11.设置密码的有效期:chage
            chage -d 0 <username> --第一次登录的强制修改密码   
            chage -E 2012-01-01 <username> --设置密码的有效期
            chage -W numOfDays <username>  --设置密码失效的提醒天数
            chage -m numOfDays <username>  --设置两次密码的最短修改间隔
            chage -M numOfDays <username>  --设置两次密码修改的最大间隔

    12.GUI的配置方法

    13.通过修改配置文件建立用户/组
        13.1 用到的配置文件
            1) /etc/passwd     存放用户信息的文件
               用户名:密码(x):UID:GID(Primary Group):Comments:$HOME:$SHELL
            2) /etc/shadow     用户的密码文件
                帐号:
                加密密码:
                上次修改密码的时间:    该位为0,表示用户下一次登录改密码
                最小的密码年龄:           每两次改密码的时间间隔
                最大的密码年龄:           密码的失效周期
                密码的警告日期:           过期前的警告天数
                ....
                ....
                ....
            3) /etc/group
                组名:密码:GID:userlist(user1,user2,user3,...)    
            4) /etc/gshadow
                组名:密码:管理员和成员
        13.2 建立的方法
            1) 修改/etc/passwd文件新建一个用户
            2) 修改/etc/shadow建立用户的密码
                用grub-md5-crypt这个命令去生成加密的密码字符串
            3) 修改/etc/group建立一个新的组
            4) 修改/etc/gshadow修改组的密码
            5) 建立用户的家目录: mkdir $HOME
            6) 修改家目录的权限: chmod 700 -R $HOME
            7) 修改家目录的属主关系: chown username.groupname -R $HOME
                             chown userid.groupid -R $HOME
            8) 拷贝用户的配置文件:
                cp /etc/skel/.b*    $HOME
            9) 尝试去登录吧
               10) 注意:   passwd等文件中的冒号, /等符号均为英文的相应符号,中文的会报错,这个错误可能看不出来是怎么回事

    14.用户,组相关的几个命令   
            1) users     --打印出系统内当前登录的用户
            2) groups  <usernam>    --打印出用户所在的组
            3) who        --打印出登录用户
            4) w        --打印出登录用户,和他们在做到事情
            5) id        --打印当前用户的uid,gid等信息
            6) last        --打印系统近期登录的信息
            7) lastlog    --打印所有用户的近期最后一次登录信息
            8) su        --切换用户
            9) write   <username>   --向用户username发送信息

第二部分:文件的权限

    1.权限的表示方法
        drwxrwxrwx         
        -rwxrwxrwx      
    2.chmod命令改变文件的权限
        chmod a|u|g|o +|- r|w|x|t|s <filename>
        chmod 1666|2444|4777    <filename>
    3.chown命令改变文件的属组关系
        chown username.groupname <filename>   
        chown userid.groupid   <file>
        chown -R username.groupid <dirname>
    4.setuid, setgid, sticky
        setuid:     使可执行文件的发起用户临时获得该文件所有者的权限
        setgid:        使该路径下的任何文件继承该路径的组关系,不论这个文件是谁创建的
        stciky:        使公共路径下的文件只能被自身创建者所删除
    5.umask
        umask  = 一般用户来说是002,对超级用户来说022
        建立一个文件夹:权限=777-umask
        建立一个文件:    权限=666-umask
        修改umask:
            umask 022
            vi /etc/bashrc

第三部分:文件的基本操作
    1.cat    打印文件内容在标准输出
        cat file
        cat -n file    打印出行号
    2.more
        more file     分页看文件内容,Enter换版面
    3.less
        less file    分页看文件内容,可退回,可以搜索
    4.head
        head file    打印文件头10行       
        head -1 file     打印文件头1行
    5.tail
        tail file    打印文件后10行
        tail -3 file    打印文件后3行
    6.grep
        grep root /etc/passwd   --从/etc/passwd文件中匹配root关键字
        grep -i root passwd    --i让grep忽略大小写
        grep -n -i root passwd  --n打印输出行号
        grep -v root passwd     --将非root关键字的行打印出来
        grep '^$' passwd        --将空行打印出来
        grep -n '^bin' passwd   --打印出以bin开头的行,并显示行号         grep -n 'nologin$' passwd --打印处以nologin结尾的行


第四部分:rpm和yum安装
    1.rpm:  包的信息:包名-版本号-cpu类型
        1.1安装
            rpm -ivh /<path>/package_name-version-cpu_type.rpm
                -i 安装
                -v 详细信息
                -h 打印出来滚动条
            rpm -i --test /<path>/....   检验包能否安装,但不安装
            rpm -ivh --nodeps --force /<path>/.... 强制安装,不管依赖关系
        1.2查询
            已经安装的包
                rpm -qf /bin/ls    查看安装的二进制文件的包名-版本号-CPU
                     #whereis ls   搜索$PATH和¥MANPATH
                     #which   ls   搜索$PATH
                     #rpm -qf /<abs-path>
                rpm -qa        将所有安装的包列出
                rpm -qa |grep keyword
                rpm -qd package_name    说明文件
                rpm -ql package_name    所有东西
                rpm -qc package_name    配置文档
                rpm -qi package_name    版本信息

            未安装的包
                rpm -pqd package_name-version-CPU.rpm    说明文件
                rpm -pql package_name...    所有东西
                rpm -pqc package_name...    配置文档
                rpm -pqi package_name...    版本信息
        1.3卸载
            rpm -e 包名
        1.4升级
            rpm -Uvh /<path>/package_name-version-cpu_type.rpm
                如果已经安装过这个包,则升级
                如果没有安装过这个包,则直接安装
    2.yum
        2.1yum源的制作方法
        [remoteUplooking]
        name=demo of YUM
        baseurl=ftp://192.168.0.254/pub/rhel6/dvd/
        或者 baseurl=file:///var/ftp/pub/rhel6/dvd/
        或者 baseurl=http://192.168.0.254/.............
        enable=1
        gpgcheck=1
        gpgkey=ftp://192.168.0.254/pub/rhel6/dvd/RPM-GPG-KEY-redhat-release
   
        保存在/etc/yum.repos.d/filename.repo

        2.2yum常用的命令
            查看:yum list    yum list |grep package_name
            安装:yum install package_name       yum -y install package_name
            卸载:yum remove package_name
            查看组:yum grouplist |grep grouppackage_name
            安装组:yum groupinstall grouppackage_name
            移除组:yum groupremove grouppackage_name
            清空缓存:yum clean all