尚观培训Day2

来源:互联网 发布:虚拟软件交易平台 编辑:程序博客网 时间:2024/04/20 04:02

第一、基本命令的使用
    命令的分类:
        内部命令---shell内部代码实现的
        外部命令---单独一个外部程序文件

    帮助手册命令: man -a man  ;  man fstab
    info : info date ; 接受控制命令 l  ?  h  home
    内部命令帮助: help cd  ; help command
    外部命令帮助:mount -h / mount --help

    目录命令:
        cd   绝对路径 相对路径
            cd ~     cd -
       
       
        mkdir
            # mkdir dir1
            # mkdir -p  dir2/subdir3/subsubdir4

   
    文件命令:
        ls 
        ls -l
-rw-r--r--     1         root          root    2062 2007-01-08 avahi-autoipd.action
文件属性和权限    文件的硬链接数    文件的拥有者    文件拥有组

-rw-r--r-- 1 root root 2062         2007-01-08         avahi-autoipd.action
            文件大小    文件的最后修改日期    文件名
        ls -lh
        ls -a  <--把.开头的文件和目录都显示出来
        ls -ld dir2

        -           rw-r--r--
        文件的分类:
            -    普通文件
            d    文件夹
            c    字符设备
            b    块设备
            l    符号链接
            s    socket套接字文件,网络程序在本地生成的特殊连接接口
            p    管道文件
       
        touch
            touch file{2,3,4,5,6}
            touch {a,b,c}file{1,2,3}
        rm
            rm file*
            rm -i 提示是否确定删除
            rm -f 不提示,强行删除
            [root@dns test]# rm * -rf  没提示的情况下删除目录
            [root@dns test]# rmdir dir3  只能删除空目录
        cat
           
        more   less
            more /etc/rc.d/rc.sysinit
            less /etc/rc.d/rc.sysinit
        管道:
            cat /etc/rc.d/rc.sysinit | less
            cat /etc/rc.d/rc.sysinit | more
            cat /etc/rc.d/rc.sysinit | grep "reboot"
        重定向:
             cat /etc/rc.d/rc.sysinit > output.txt  标准正确输出重定向
             echo "hello pts2" > /dev/pts/2
             cat /sldjflskdjflksdjf 2> /tmp/test/error 标准错误输出重定向
             cat /sldjflskdjflksdjf 2> /dev/null
             cat /etc/rc.d/rc.sysinit > /dev/null
            [root@dns test]# ls -l error output.txt  noexist
            ls: noexist: 没有那个文件或目录
            -rw-r--r-- 1 root root    53 10-20 11:30 error
            -rw-r--r-- 1 root root 27183 10-20 11:28 output.txt
            [root@dns test]# ls -l error output.txt  noexist   &>  /dev/null
                        <---全都重定向
            echo "this is line 2" >> output.txt   <---内容追加

        cp
            cp  源文件   目标路径
            cp -a /home/tom/test ./tomfile2   <---  -a尽可能保留文件的原来属性
            cp -r
            cp -ar /home/tom/mail/ ./

        mv    -f


第二、VIM编辑器的使用
    三种模式:
        命令行模式
       
        编辑模式(插入模式、替换模式)

        末行模式

        从命令行模式-->编辑模式 : i  I  a   A   o   O  s  S

            cw  删除光标所在的单词并且进入编辑状态
            dw  删除一个单词
            r   修改光标所在的那个字符

            w   按单词移动光标
            0   回到行首
            $   回到行末
            gg  回到页首
            GG  回到页末

            yy  复制行
            p   粘贴行
            4yy 复制4行   p就粘贴

            dd  删除一行
            u   撤销上一次操作
            U   撤销正行的操作
            ctrl + r

        从命令行模式到末行模式 shift + :
            set nu  === set number  显示行号
            set nonu === set nonumber 取消显示行号
            set autoindent  自动对齐   set noautoindent  取消自动对齐
            :1,$s/if/hello/    替换,把第一行到最后一行的第一个if替换成hello
            :1,$s/word/new/g    全局替换,把一行中所有匹配的都替换
            :2,3s/new/old/g     指定行替换
            :240   快速把光标定位在240行

            q   退出
            q!  强行退出
            w   保存
            wq!  <--强行保存并退出

            split  横分    split /etc/hosts
            vsplit 竖分



第三、用户管理

    系统的分类:
        单用户多任务系统 : 只有一个帐号并且这个帐号就是管理员,但支持多任务,支持多个人使用同一个帐号同时登录系统进行管理
        多用户多任务系统 :   只有一个帐号是管理员,其余的都是普通帐号,根据他的属性进行分类,权限分明


    在多用户的基础上,引出用户的分类:
        1、管理员,具有所有的权限  uid = 0
        2、系统帐号(伪帐号):uid的范围是 1 - 499,这些帐号默认是不允许登录,用来给予某些服务运行时候所用的身份
        3、普通帐号: 一般情况下可以登录
       


1、相关文件
/etc/passwd
/etc/shadow
/etc/login.defs

/etc/group
/etc/gshadow

2、相关命令
    useradd
    usermod
    userdel
    passwd
   
   
    groupadd
    groupdel
    groupmod
    gpasswd

    chfn
    su
    finger
    id


3、详细说明
vim /etc/passwd

root:x:0:0:tanpao,uplooking,124324324,24235454:/root:/bin/bash
root 用户名
x  密码字段
0  用户id  , uid
0  用户组id
tanpao,uplooking,124324324,24235454   帐号的个人信息
/root  用户的家目录
/bin/bash 用户的默认shell
    cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin   《--这个就能达到不让帐号登录的目的
/bin/tcsh
/bin/csh
/bin/ksh
/bin/zsh


/etc/shadow

root:$1$.qEM76lH$8mVJ/RWiKAfR05g2OpuV10:14535:0:99999:7:a:b:c
root 用户名
$1$.qEM76lH$8mVJ/RWiKAfR05g2OpuV10  md5加密后的密码
14535  最后一次修改密码的时间,这个时间是距离1970-01-01 00:00:00到现在的天数
0   密码修改的最低时间间隔, 0不限制 ,假如是2就说明每次修改密码需要间隔2天
99999  密码的有效期,99999代表密码永久生效,假如30,就代表密码30天后过期
7   密码过期前多少前就开始警告你密码准备还有多少天过期
a   密码过期后你还能有多少天能登录系统,假如是2,那么密码过期后2天之内你可以登录系统,
     默认值-1,就是代表,尽管密码过期了,过了很久,你都可以登录,但强制改密码
b   指定帐号过期的日期,这个日期距离1970-01-01 00:00:00到过期那天的天数
c   保留字段



    具体命令使用:
   
    useradd   或者  adduser
    useradd moto 命令自动完成下面的7个大步骤:
        1、在/etc/passwd添加一行信息
moto:x:534:603::/home/moto:/bin/bash
        2、在/etc/shadow添加一行信息
moto:!!:14537:0:99999:7:::
        3、在/etc/group添加组的信息
moto:x:603:
        4、在/etc/gshadow添加组的密码信息
moto:!::
        5、默认在/home建立家目录,名字和用户名一样
            ls -ld /home/moto
        6、把用户的环境变量文件复制到家目录
            cp /etc/skel/.bash* /home/moto
        7、创建用户的邮件文件
            touch /var/mail/moto

useradd -e -d -f -g -G -s

/etc/passwd   
root:x:0:  0  :tanpao,uplooking,124324324,24235454:/root:/bin/bash
           -g                                        -d    -s  
/etc/shadow
root:$1$.qEM76lH$8mVJ/RWiKAfR05g2OpuV10:14535:0:99999:7: a :  b   :c
                            -f  -e

例子:useradd -s /sbin/nologin  -d /rhome/ftpuser1  ftpuser1


usermod 参数和useradd基本一行

chfn moto
finger moto

删除用户:
[root@dns 10]# userdel ftpuser1
[root@dns 10]# ls /rhome/
ftpuser1 
[root@dns 10]# ls /var/mail/ftpuser1

    彻底删除一个用户,包括家目录和邮件
userdel -r username


修改密码:
    passwd



[root@dns 10]# groupadd goodbbs
[root@dns 10]# tail -1 /etc/group
goodbbs:x:604:
组名   : 组密码 : 组id :组成员

[root@dns 10]# gpasswd -a tom goodbbs
正在将用户“tom”加入到“goodbbs”组中
[root@dns 10]# tail -1 /etc/group
goodbbs:x:604:tom
[root@dns 10]# gpasswd -a mary goodbbs
正在将用户“mary”加入到“goodbbs”组中
[root@dns 10]# tail -1 /etc/group
goodbbs:x:604:tom,mary


[root@dns 10]# tail -1 /etc/gshadow
goodbbs:!: :tom,mary
组名:密码:组管理员:组成员
[root@dns 10]# gpasswd -A tom goodbbs
[root@dns 10]# tail -1 /etc/gshadow
goodbbs:!:tom:tom,mary


[root@dns 10]# id jack
uid=532(jack) gid=534(jack) groups=534(jack)

[tom@dns ~]$ gpasswd -a jack goodbbs
正在将用户“jack”加入到“goodbbs”组中    <---永久把某个用户添加到tom具有管理权限的用户组里

[tom@dns ~]$ id jack
uid=532(jack) gid=534(jack) groups=534(jack),604(goodbbs)

临时切换组身份
[nokia@dns ~]$ id
uid=535(nokia) gid=535(nokia) groups=535(nokia),603(moto)
[nokia@dns ~]$ newgrp goodbbs   《---失败的原因是goodbbs没有设定密码
密码:
抱歉。

[root@dns tom]# gpasswd goodbbs
正在修改 goodbbs 组的密码
新密码:
请重新输入新密码:
[root@dns tom]# tail -1 /etc/gshadow
goodbbs:$1$1fiB//mU$pKxkyMWb9zp5tkkIRC1.y1:tom:tom,mary,jack

[nokia@dns ~]$ id
uid=535(nokia) gid=535(nokia) groups=535(nokia),603(moto)
[nokia@dns ~]$ newgrp goodbbs   <---这个只是临时修改组身份,重新登录就会失效
密码:
[nokia@dns ~]$ id
uid=535(nokia) gid=604(goodbbs) groups=535(nokia),603(moto),604(goodbbs)

删除组
groupdel gooddel

改组名:
[root@dns tom]# groupmod -n newmoto moto



用户身份切换:
[root@dns 10]# su - nokia   <---完全切换,不继承上一个用户的环境变量
[nokia@dns ~]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/mysql/bin:/home/nokia/bin
[nokia@dns ~]$ ifconfig
-bash: ifconfig: command not found

[root@dns 10]# su  nokia   <---不完全切换,继承上一个用户的环境变量
[nokia@dns 10]$ echo $PATH
/usr/lib/qt-3.3/bin:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/mysql/bin:/root/bin:/usr/local/mysql/bin


第四、用户权限

d   rwx,        r-x,        r-x          4 root root  4096 10-20 11:46 dir2
    拥有者权限u      拥有组的权限g         其他人权限o

    r  ---> read 读权限
            针对文件夹,具有r权限,就代表具有对这个文件夹进行列表的权限
            针对文件,具有r权限,就代表你能读取这个文件的内容
    w  ---> write 写权限
            针对文件夹,具有w权限,就代表具有他能在该文件夹下创建文件
            针对文件,具有w权限,就代表具有修改该文件内容的权限
    x  ---> execute 执行权限
            针对文件夹,具有x权限,才能切换到该文件夹
            针对文件,具有x去权限,就代表能够运行它,一般这个"它"都是命令或者脚本



-   rw-r--r-- 1            root root   838 10-20 11:39 fstab



setfacl
getfacl


    修改权限的命令:
    chmod

[root@dns test]# touch file1
[root@dns test]# ll
总计 0
-rw-r--r-- 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod u+x file1
[root@dns test]# ll
总计 0
-rwxr--r-- 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod g+x file1
[root@dns test]# ll
总计 0
-rwxr-xr-- 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod u-x,g-x,o+x file1
[root@dns test]# ll
总计 0
-rw-r--r-x 1 root root 0 10-20 17:00 file1


[root@dns test]# ll
总计 0
-rw-r--r-x 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod u=rwx,g=rx,o=--- file1
[root@dns test]# ll
总计 0
-rwxr-x--- 1 root root 0 10-20 17:00 file1

        rwx,        r-x,        r-x
        111,            101,        101
        7            5        5
00  0
01  1
10  2
11  3
100 4
101 5
110 6
111 7
   
[root@dns test]# ll
总计 0
-rwxr-x--- 1 root root 0 10-20 17:00 file1
[root@dns test]# rwx,r-x,r-x
[root@dns test]# chmod 755 file1
[root@dns test]# ll
总计 0
-rwxr-xr-x 1 root root 0 10-20 17:00 file1
[root@dns test]# chmod 431 file1
[root@dns test]# r--,-wx,--x
[root@dns test]# ll
总计 0
-r---wx--x 1 root root 0 10-20 17:00 file1



   
    chown

[root@dns test]# ll
总计 0
-r---wx--x 1 root root 0 10-20 17:00 file1
[root@dns test]# chown tom:mary file1
[root@dns test]# ll
总计 0
-r---wx--x 1 tom mary 0 10-20 17:00 file1
[root@dns test]# chown jack.root file1
[root@dns test]# ll
总计 0
-r---wx--x 1 jack root 0 10-20 17:00 file1



               





           
       

       
















原创粉丝点击