文件系统&&用户管理(一)

来源:互联网 发布:sky黑历史知乎 编辑:程序博客网 时间:2024/06/04 18:42

1.Linux的基本原则:

1、由目的单一的小程序组成;组合小程序完成复杂任务;2、一切皆文件;3、尽量避免捕获用户接口;4、配置文件保存为纯文本格式;

2.命令形式

命令格式:
命令  选项  参数选项:短选项: -    多个选项可以组合:-a -b = -ab长选项: --    参数:命令的作用对象

3.命令举例:ls

ls  -l:长格式     文件类型:        -:普通文件 (f)        d: 目录文件        b: 块设备文件 (block)        c: 字符设备文件 (character)        l: 符号链接文件(symbolic link file)        p: 命令管道文件(pipe)        s: 套接字文件(socket)    文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--    文件硬链接的次数    文件的属主(owner)    文件的属组(group)    文件大小(size),单位是字节    时间戳(timestamp):最近一次被修改的时间        访问:access        修改:modify,文件内容发生了改变        改变:change,metadata,元数据-h:做单位转换-a: 显示以.开头的隐藏文件    . 表示当前目录    .. 表示父目录-A-d: 自身属性-i: index node, inode-r: 逆序显示-R: 递归(recursive)显示

4.文件系统

rootfs: 根文件系统   //boot : 系统启动相关的文件,如内核、initrd,以及grub(bootloader)/dev: 设备文件设备文件:    块设备:随机访问,数据块    字符设备:线性访问,按字符为单位    设备号:主设备号(major)和次设备号(minor)/etc:配置文件/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME/root:管理员的家目录;/lib:库文件静态库,  .a动态库, .dll, .so (shared object)/lib/modules:内核模块文件/media:挂载点目录,移动设备/mnt:挂载点目录,额外的临时文件系统/opt:可选目录,第三方程序的安装目录/proc:伪文件系统,内核映射文件/sys:伪文件系统,跟硬件设备相关的属性映射文件/tmp:临时文件, /var/tmp/var:可变化的文件/bin: 可执行文件, 用户命令/sbin:管理命令

5.文件管理

5.1目录管理:

ls查看目录下内容cd切换目录pwd查看当前位置mkdir(make directory)创建目录    #mkdir 目录名(自己指定)    #mkdir  -p  创建多级子目录    #mkdir 目录1 目录2 .. 创建多个同级目录rmdir删除目录,默认是能删除空目录tree   层次化查看

5.2文件管理:

touch创建文件    #touch  文件名(自己定义)    #touch  文件1  文件2 .. 同时创建多个文件stat、file  查看文件属性、查看文件类型    rm删除(删除目录的时候,要加r)  rm=remove    #rm  文件名    #rm -r 目录名   默认会发生交互    #rm -rf [文件名 目录名] -f(force)表示强制删除cp 复制     #cp    原文件  目标文件(可以事先不存在)      #cp -p 原文件  目标文件  -p 保留原文件属性    #cp -b 原文件  目标文件  -b 创建一个备份文件mv移除    #mv    原文件  目标文件  剪切+复制过程    可以针对目录

5.3查看目录、查看文件

查看目录:       #ls   目录名    #ls -R 递归查看    #ls -d 查看目录本身属性查看文件:cat tac tail head more less    ***用/etc/passwd文件来练习    #cat 文件名  默认是正序查看    #tac 文件名  倒序查看    #head -n 文件名 查看文件前n行    #tail -n 文件名 查看文件末n行    #more 文件名   可以翻页查看,默认只能向下    #less 文件名   可以翻页,也可以回看,按q退出

6.用户管理:

用户是用来操作系统中不同功能的身份.linux是多用户多任务的操作系统

Linux系统中用户的分类
1)超级用户: root uid=0
2)系统用户:不需要登录系统,服务于应用程序,维护系统的运行
bin nobody uid=1-499
3)普通用户:可以登录的用户 uid>=500
UID:用户标识

1.添加用户:

    useradd  用户名(自己定义用户名)    创建用户的时候,如果没有其它指定,会创建一个与用户名同名的家目录 /home/用户名    同时也会创建一个同名的组    创建的时候可以指定u、g、c等选项        -u    指定用户的uid  用户的ID号        -g    指定用户的gid  组的ID号        -G    指定附属组,可以有多个, 但是这些附属组必须是系统内已经存在的        -c     指定描述,后边直接跟你想要的字符串        -d     指定家目录        -M     不建立家目录        -s     指定shell        -e     指定用户过期时间, 日期        -f     指定用户过期时间, 天数用户创建完成后    1、会在/etc/passwd添加一行         例:Loyal:x:501:501:hello:/home/Loyal:/bin/bash      用户名 密码 UID GID 描述信息 家目录     登录shell    (注意:/bin/bash 标示可登录用户;/sbin/nologin 标示不可登陆用户)    2、会在/etc/group添加一行    3、会在/etc/shadow  添加一行查看用户的ID:    #id  用户名  (显示uid,gid ,组)查看当前用户的名字:    #whoami

2.删除用户:

userdel  用户名   默认不会删除家目录(-r选项 会连同创建的家目录一同删除)

3、给用户设置密码

    passwd:       超级用户:既可以修改自己的密码,又可以修改别人的密码,并且不需要提供当前密码       普通用户:只能修改自己的密码,要求严格,并且需要提供当前密码       普通用户修改自己的密码,需要当前密码,而且长度最少6位,而且不能是字典单词
/etc/shadow:存放用户密码信息的文件
# head -1 /etc/shadowroot:$6$9AOmQbxm$3X1qbP0srKNql7jCXpmwhyNxGTHmIbT65zF.:16276:0:99999:7:::用户名:加密后的密码:....    $6$:加密算法是sha512    $1$:加密算法是md5

4、修改用户信息:不常用

    usermod:       //modify:修改        -G:修改用户的附属组,不管用户原来的附属组如何,直接覆盖        -g:修改用户的主要组        -a:一般和-G联合使用,追加附属组        -u:修改用户的uid        -d:修改用户的家目录        -s:修改用户的shell

7、组 group

用户和组的关系:组中可以没有用户、也可以有一个或者多个用户。用户只有一个主要组,可以同时属于多个组,但是除了主组以外的其他组称为附属组。
组的分类:从用户的角度分的,分为:    主组:primary group、initial group、first group,用户的默认组,也就是gid所标识的组    附属组:secondary group、supplementary group1、添加组  groupadd    # groupadd g1        -g:添加组时,指定gid是多少    # groupadd -g 800 g2    # tail -2 /etc/group        g1:x:603:        g2:x:800:        组名:密码:gid:组里成员2、修改组: groupmod    # groupmod -g 888 g2    # grep g2 /etc/group        g2:x:888:    修改组的名字 :  -n 新名字         # groupmod -g 588 -n group1 g1        # grep gr /etc/group            group1:x:588:3、删除组:groupdel    注意:不能够删除用户的主要组,能够删除用户的附属组    # groupdel group1    # grep group1 /etc/group   //没有任何输出,表示文件中没有含有group1关键字的行4、组管理  gpasswd    管理/etc/group和/etc/gshadow文件的,每一个组可以有管理员,成员和密码    给组加密码:可以让知道组密码的人,临时的切换到该组中,能够使用该组的资源。    1)指定组的管理员列表        # groupadd groups        # useradd u1        # gpasswd -A u1 groups    //u1用户就是groups组的管理员了    2)向组中添加成员        # su - u1        $ gpasswd -a sha groups            Adding user sha to group groups        # tail /etc/group            groups:x:889:sha    3)给组设置密码        # gpasswd groups            Changing the password for group groups            New Password:             Re-enter new password:      4)切换组        # su - niulang        $ id            uid=500(niulang) gid=500(niulang) groups=500(niulang)         $ newgrp groups   //临时切换组            Password:         $ id            uid=500(niulang) gid=889(groups) groups=500(niulang),889(groups)     5)将用户从组中删除        # gpasswd -d sha groups            Removing user sha from group groups

/etc/passwd:保存用户信息的文件
/etc/shadow:保存用户密码相关信息的文件
/etc/group:保存组信息的文件
/etc/gshadow:保存组密码相关信息的文件

1、/etc/passwd:

# head -1 /etc/passwd    root:x:0:0:root:/root:/bin/bash  用户名:密码:UID:GID:描述信息:家目录:登录shell

2、/etc/shadow

   # man 5 shadowzhangsan:!!:16276:0:99999:7:::   1)用户名   2)加密后的密码   3)上一次密码修改时间(单位是天,是距离1970年1月1日多少天)   4)密码最小生存周期  单位:天  0表示随时可以修改密码;2表示两天内不能修改   5)密码最大生存周期  单位:天,密码使用的最长时间   6)密码到期前几天开始警告    7)密码过期之后到账户失效之前的时间限制        密码过期之后还可以用几天   8)账户过期时间   9)保留列
查看用户的密码相关的时间
[root@localhost ~]# chage -l rootLast password change                    : Jan 08, 2017Password expires                    : neverPassword inactive                   : neverAccount expires                     : neverMinimum number of days between password change      : 0Maximum number of days between password change      : 99999Number of days of warning before password expires   : 7

3、/etc/group

 # head -1 /etc/group    root:x:0:    组名:密码:GID:用户列表

4、/etc/gshadow

# head -1 /etc/gshadow    root:::    组名: 加密后的密码:组管理员:组成员
1 0