zoukankan      html  css  js  c++  java
  • Linux基础学习1

     

    安装问题

    Live CD 是可以直接运行在内存当中的,而不是安装镜像。
    如之前玩过的BT5一样,把BT5-LiveCD 往U盘里一放直接可以从U盘来运行BT5系统不用安装,也不能安装。
     
    安装CentOS时,显示 NET:Registered protocol family 2
    解决方法:
    vmbox设置中系统--->主板--->扩展特性--->选择启用IO APIC
     

    文件类型

    ext2/ext3:是 Linux 适用的文件系统类型。由ext3 文件系统多了日志的记录, 对于系统的复原比较快速,
    因此建议你务必要选择新的 ext3 不要用 ext2 了。
     
    physical volume (LVM): 这是用来弹性调整文件系统容量的一种机制,可以让你的文件系统容量变大或者变小而不改变原有的档案数据内容
     
    software RAID:利用 Linux 操作系统的特性,用软件仿真出磁盘阵列的功能! 这东西很棒!
     
    swap: 就是内存置换空间!由于swap并不会使用到目录树的挂载,所以用swap就不需要制定挂载点『swap 最好为物理内存的 1.5 到 2 倍之间』。 swap 置换空间是很重要的, 因为他可以避免因为物理内存不足而造成的系统效能低落的问题。
     
    vfat:同时被 Linux 不 Windows 所支持的文件系统类型。 如果你的主机硬盘内同时存在Windows 不 Linux 操作系统,为了数据的交换,确实可以建置一个 vfat 的文件系统喔!
     

    图形与文本模式切换

    Linux 预设的情况下会提供六个 Terminal 来让使用者登入, 切换的方式为使用: [Ctrl] + [Alt] + [F1]~[F6]的组合按钮,分别对应tty1--tty6 6个文本操作接口环境。
    回到 X windows :  [Ctrl] + [Alt] + [F7]
                               startx
    startx使用条件:
    你的 tty7 并没有其他的窗口软件正在运作(tty7 必须是空出来的);
    你必须要已经安装了 X Window system,并且 X server 是能够顺利启劢的;
    你最好要有窗口管理员,例如 GNOME/KDE 或者 TWM 等;
    启动 X 所必须要的服务,例如字型服务器(X Font Server, xfs)必须要先启动。
     

    基础指令操作

     显示日期不时间的指令: date

     显示日历的指令:      cal

     简单好用的计算器:       bc
     
    date:   显示日期  2009/08/17格式
               date +%y/%m/%d         PS: ”+“ 后没有空格
     
               显示日期  2009-08-17格式
               date +%F
     
               显示时间  08:17格式
               date +%T
    cal:      这个指令可以接的语法为   cal [month]  [year]
    bc:       预设仅输出整数,如果要输出小数点下位数,那举就必须要执行 scale=number , number 为小数点位数
     
    [Ctrl]-c : 中断目前程序
     
    [Ctrl]-d  :  键盘输入结束
     
    查看版本:
    uname -a        可以查看实际核心版本
    lsb_release -a  可以查看发行版本号
     
    CD:
    . 代表此层目录
    .. 代表上一层目录
    - 代表前一个工作目录
    ~ 代表家目录
     
    pwd:显示当前目录
    pwd 是 Print Working Directoryde 的缩写
     
    PATH:
    增加路径: PATH="$PATH":/root(临时)
     
    如何永久性增改路径
     
    档案内容查阅:
     cat 由第一行开始显示档案内容
     tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
     nl 显示的时候,顺道输出行号!
     more 一页一页癿显示档案内容
     less于more 类似,但是比 more 更好的是,他可以往前翻页!
     head 叧看头几行
     tail 叧看尾巳几行
     od 以二进制的方式读取档案内容!
     
    比较少用 cat ,毕竟当你的档案内容的行数超过 40 行以上,根本来不及在屏幕上看到结果! 所以,用 more 或者是 less 来执行比较好!此外,如果是一般的DOS档案时,就需要特别留意一些奇奇怪怪的符号了, 例如断行不 [tab] 等,要显示出来,就得加入 -A 之类的选项!
     
    一般来讲less比较实用:
     空格键 :向下翻动一页;
     [pagedown]:向下翻动一页;
     [pageup] :向上翻动一页;
     /字符串 :向下搜寻『字符串』的功能;
     ?字符串 :向上搜寻『字符串』的功能;
     n :重复前一个搜寻 (与/ 或 有关!)
     N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
     q :离开 less 这个程序;
     
    head
    head -n  100  /etc/man.c  显示前100行
    head -n -100  /etc/man.c  显示不包括后100行的所有行
     
    tail
    tail -n   100   /etc/man.c  显示后面100行
    tail -n  +100   /etc/man.c  显示100行以后的所有行

    partition

    划分不同的 partition:为什么磁盘分区这么重要!因为 Linux 每个目录被读写的频率不同,妥善的分割将会让我们的Linux 更安全! 通常我们会建议划分下列的磁盘区块:
    o /
    o /boot
    o /usr
    o /home
    o /var
    这样划分有些好处,例如/var 是系统默认的一些数据暂存或者是 cache 数据的储存目录, 像 email 就存在这里面。如果还有使用 proxy 时,因为常常存取,所以有可能会造成磁盘损坏, 而当这部份的磁盘损坏时,由于其他的地方是没问题的,因此资料得以保存,而且在处理时也比较容易!
     
     
    用户与群组信息记录档案
    所有信息记录在  /etc/passwd
    个人密码记录在  /etc/shadow
    群组信息记录在  /etc/group
     

    ls -al 各参数含义

    ls  -al
    drwxr-xr-x 2 root root 4096 Jan 16 21:36 UPower -rw-r--r-- 1 root root 572 Mar 8 2012 usb_modeswitch.conf drwxr-xr-x 2 root root 4096 Feb 11 2012 usb_modeswitch.d drwxr-xr-x 2 root root 4096 Jan 16 22:54 vim lrwxrwxrwx 1 root root 23 Jan 16 21:18 vtrgb -> /etc/alter
    第一个字符:如“-”
    当为[ d ]则是目录
    当为[ - ]则是档案
    若是[ l ]则表示为连结档(link file);
    若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
    若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
     
    第二个:如“rw-r--r--  ”分别对应  owner  group  others 的权限(r 读权限;w 写权限; x 执行权限)
    第三个:如“1” 表示有多少档名连结到此节点(i-node)
                 i-node 为权限与属性的记录文件,“1”表示有  多少不同的档名连接到同一个i-node号。
    第四个:如"root “ 拥有者账号
    第五个:如" root  ”所属群组
    第六个:如" 572 "  文件大小
    第七个:如" Mar  8  2012 "  最近修改的时间
    第八个:如"usb_modeswitch.conf "  档案名称
     
    文件属性与权限变动
     chgrp   :改变档案所属群组
     chown  :改变档案拥有者
     chmod :改变档案的权限, SUID, SGID, SBIT 等等的特权
     
    chgrp -R    想要的群组名  dirname/filename  (-R 进行递归的持续变更)
    chown [-R] 想要的账号名称 档案或目录
    chown [-R] 想要的账号名称:组名 档案或目录(直接改所有者和群组)
     
    r:4 w:2  x:1
    chmod [-R] xyz 档案或目录
    xyz : 就是刚刚提到的数字类型的权限属怅,为 rwx 属性数值的相加。
    -R :递归
    r (read): 可读取此一档案的实际内容,如读取文本文件的文字内容等;
    w (write):可以编辑、新增或者是修改该档案的内容(但不能删除该档案);
    x (eXecute):该档案具有可以被系统执行的权限。
    对与档案的 rwx 来说, 主要都是针对『档案的内容』而言,与档案档名的存在与否没有关系喔!
     
    如果只有写的权限,源文件的内容是无法看到的,但是可以修改的,修改保存之后,源文件的内容被 新内容替换掉。
     
    权限对目录的重要性:
    r (read contents in directory):
    表示具有读取目录结构列表的权限,所以当你具有读取(r)一个目录的权限时,表示你可以查询该目录下的文件名数据。 所以你就可以利用 ls 这个指令将该目录的内容列表显示出来!
    w (modify contents of directory):
    这个可写入的权限对目录来说,是很了不起的! 因为他表示你具有异动该目录结构列表的权限,也就是底下这些权限:
    o 建立新的档案与目录;
    o 删除已经存在的档案与目录(不论该档案的权限为何! )
    o 将已存在的档案或目录进行更名;
    o 搬移该目录内的档案、目录位置。
    x (access directory):
    咦!目录的执行权限有啥用途啊?目录只是记录文件名而已,总不能拿来执行吧?没错!目录不可以被执行, 目录的 x 代表的是用户能否进入该目录成为工作目录的用途! 所谓的工作目录(work directory)就是你目前所在的目录啦!
     
    代码演示:没有执行权限,是无法进入目录
    zhenxiang@ubuntu:~/learn$ ls -l
    ls: 初始化月份字符串出错
    总用量 4
    drw-rw-r-- 2 root root 4096  9月 14 09:31 test
    -rw-rw-r-- 1 root root    0  9月 14 09:29 test.txt
    zhenxiang@ubuntu:~/learn$ cd test/
    bash: cd: test/: 权限不够
     
    SUID     (Set UID)
    限制与功能:
    • SUID 权限仅对二进制程序(binary program)有效;
    • 执行者对于该程序需要具有 x 的可执行权限;
    • 本权限仅在执行该程序的过程中有效 (run-time);
    • 执行者将具有该程序拥有者 (owner) 的权限。
      
    UID 仅可用在 binary program 上, 不能够用在 shell script 上面!这是因为 shell script 只是将很多的 binary 执行档呼叫进来执行而已!所以 SUID 的权限部分,还是得要看 shell script 呼叫进来的程序的设定, 而不是 shell script 本身。当然,SUID 对于目录也是无效的~这点要特别留意。
     
    权限设定:4为 SUID  2为SGID 1为SBIT
     
    SGID (Set GID)
    对于档案来说,SGID有如下功能:
    •  SGID 对二进制程序有用;
    •  程序执行者对与该程序来说,需具备 x 的权限;
    •  执行者在执行的过程中将会获得该程序群组的支持
     
    当 s 标志在档案拥有者的 x 项目为 SUID,那 s 在群组的 x 时则称为 Set GID, SGID !
    [root@www ~]# ll /usr/bin/locate /var/lib/mlocate/mlocate.db
    -rwx--s--x 1 root slocate 23856 Mar 15 2007       /usr/bin/locate
    -rw-r----- 1 root slocate 3175776 Sep 28 04:02  /var/lib/mlocate/mlocate.db
    与 SUID 非常的类似,若我使用 vbird 这个账号去执行 locate 时,vbird对于locate这个执行档案来说是有 执行权限的,而locate有特殊权限SGID,则vbird在执行locate时暂时获得了 locate群组 slocate的支持,所以vbird在执行locate时可以找到 mlocate.db,因为mlocate.db群组是slocate;
     
    对于目录来说,SGID有如下功能:
    • 用户若对与此目录具有 r 与 x 的权限时,该用户能够进入此目录;
    • 用户在此目录下的有效群组(effective group)将会变成该目录的群组;
    用途:
    • 若用户在此目录下具有 w 的权限(可以新建档案),则使用者所建立的新档案,该新档案的群组与此目录的群组相同。
     
    即,目录设有SGID功能,则在此目录下所创建的目录,文档的群组均变成该目录的群组;在项目开发中,所有成员均是一个项目组projecta,将工作目录/var/work 群组改成projecta 且给 该目录SET GID,则所有开发人员在这个工作目录下面所创建的 任何文档目录的群组都是 projecta,这样大家均可以相互读写相互的文档;
     
    Sticky Bit
    SBIT 目前只针对目录有效,对于档案已经没有效果了,SBIT对于目录的作用是:
     当用户对与此目录具有 w, x 权限,亦即具有写入的权限时;
     当用户在该目录下建立档案或目录时,仅有自己与 root 才有权力删除该档案
     
    甲对A目录 有W写的权利,所以甲就对A目录中所有的目录文档具有了“删除,改名,移动”等权利,不过如果A目录下还有乙的档案目录,这时候乙就会有意见;若对A目录SBIT,则A目录下所以档案目录,只能是建立者和root可以进行删除,改名,移动等动作;这样一来甲就不能删除乙的东西了;
     
    SUID 用在档案上,SGID用在档案和目录上,SBIT 用在目录上;
    三者均需要 用户有执行权限噢;如果用户没有执行权限时:
    [root@www tmp]# chmod 7666 test; ls -l test   <==具有空的 SUID/SGID 权限 -
    rwSrwSrwT 1 root root 0 Sep 29 03:06 test     <==就会变成大写的S,T噢,表示空的权限;
    Linux 目录配置的依据--FHS:
    事实上, FHS 针对目录树架构仅定义出三层目录底下应该放置什么数据而已,分别是底下这三个目录的定义:
     / (root, 根目录):与开机系统有关;
    /usr (unix software resource):与软件安装/执行有关;
     /var (variable):与系统运作过程有关。
     
     根目录 (/) 的意义与内容:
    根目录是整个系统最重要的一个目录,因为不但所有的目录都是由根目录衍生出来的, 同时根目录也与开机/还原/系统修复等动作有关。 由与系统开机时需要特定的开机软件、核心档案、开机所需程序、函式库等等档案数据,若系统出现错误时,根目录也必项要包含有能够修复文件系统的程序才行。 因为根目录是这么的重要,所以在 FHS 的要求方面,他希望根目录不要放在非常大的分割槽内。
     
    /usr 的意义与内容:
    依据 FHS 的基本定义, /usr 里面放置的数据属于可分享的与不可变动的(shareable, static), 如果你知道如何透过网络进行分割槽的挂载(例如在服务器篇会谈到的 NFS 服务器),那么/usr 确实可以分享给局域网络内的其他主机来使用喔!
     
    /var 的意义与内容:
    如果/usr 是安装时会占用较大硬盘容量的目录,那举/var 就是在系统运作后才会渐渐占用硬盘容量的目录。 因为/var 目录主要针对常态性变动的档案,包括快取(cache)、登录档(log file)以及某些软件运作所产生的档案, 包括程序档案(lock file, run file),或者例如 MySQL 数据库的档案等等。
     
     
     
    文档时间:
    modification time (mtime):当该档案的『内容数据』变更时,就会更新这个时间!内容数据指的是档案的内容,而不是档案的属性或权限喔!
     
    status time (ctime):当该档案的『状态 (status)』改变时,就会更新这个时间,举例来说,像是权限,属性,内容等等一切被更改了,都会更新这个时间啊。it is the inode/file change time.
     
    access time (atime):当『该档案的内容被取用』时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man.config , 就会更新该档案的atime 了。
     
    ctime
     
    ctime is the inode or file change time. The ctime gets updated when the file attributes are changed, like changing the owner, changing the permission or moving the file to an other filesystem but will also be updated when you modify a file.
     
    mtime
     
    mtime is the file modify time. The mtime gets updated when you modify a file. Whenever you update content of a file or save a file the mtime gets updated.
     
    Most of the times ctime and mtime will be the same, unless only the file attributes are updated. In that case only the ctime gets updated.
     
    atime
     
    atime is the file access time. The atime gets updated when you open a file but also when a file is used for other operations like grep, sort, cat, head, tail and so on.
     
    查看文档atime,mtime,ctime
    ls -la  显示 文档/目录 的atime
    ls -lc  显示 文档/目录 的ctime
    ls -l   显示 文档/目录 的mtime
     
    分别查看atime,ctime,mtime;
    ll --time=atime;ll --time=ctime;ll
     
    修改atime,ctime,mtime:
    [root@www ~]# touch [-acdmt] 档案
    选项不参数:
    -a :仅修订 access time;
    -c :仅修改档案ctime,若该档案不存在则不建立新档案;
    -d :后面可以接欲修订得日期而不用目前得日期,也可以使用 --date="日期或
    时间"
    -m :仅修改 mtime ;
    -t :后面可以接欲修订的时间而不用目前的时间,格式为[YYMMDDhhmm]
     
    问题:单独修改atime ,mtime可以成功,单独改ctime没有报错,单ctime没有改成功,反而把atime,mtime给改了;
    root@ubuntu:/home/zhenxiang/learn# ll;ll --time=atime;ll --time=ctime
    -rw-r--r--  1 root      root         0  9月14 10:24 test
    -rw-r--r--  1 root      root         0  9月14 10:24 test
    -rw-r--r--  1 root      root         0  9月14 10:24 test
     
    root@ubuntu:/home/zhenxiang/learn# touch -mt 1509101212 test ;touch -at 1509091111 test
    root@ubuntu:/home/zhenxiang/learn# ll;ll --time=atime;ll --time=ctime
    -rw-r--r--  1 root      root         0  9月10 12:12 test
    -rw-r--r--  1 root      root         0  9月  9 11:11 test
    -rw-r--r--  1 root      root         0  9月 14 10:27 test
    root@ubuntu:/home/zhenxiang/learn# touch -ct 1509121010 test
    root@ubuntu:/home/zhenxiang/learn# ll;ll --time=atime;ll --time=ctime
    -rw-r--r--  1 root      root         0  9月12 10:10 test
    -rw-r--r--  1 root      root         0  9月12 10:10 test
    -rw-r--r--  1 root      root         0  9月14 10:27 test
     
    修改文档时即修改了mtime,但atime,ctime,均会随之改变;修改mtime,必然会读取文档,所以atime改变可以理解,
    但ctime为什么会改变?综合上个问题,来看看ctime,于他们之间的关系;
     
    在stackoverflow上找到两更改ctime:
     
     
    Inode 的内容指的是什么,大概每个文件在内核都有一个对应inode number,
    Read the manual page for stat(2). This is straight from there:
    struct stat {
               dev_t     st_dev;     /* ID of device containing file */
               ino_t     st_ino;     /* inode number */
               mode_t    st_mode;    /* protection */
               nlink_t   st_nlink;   /* number of hard links */
               uid_t     st_uid;     /* user ID of owner */
               gid_t     st_gid;     /* group ID of owner */
               dev_t     st_rdev;    /* device ID (if special file) */
               off_t     st_size;    /* total size, in bytes */
               blksize_t st_blksize; /* blocksize for file system I/O */
               blkcnt_t  st_blocks;  /* number of 512B blocks allocated */
               time_t    st_atime;   /* time of last access */
               time_t    st_mtime;   /* time of last modification */
               time_t    st_ctime;   /* time of last status change */
           };
     
    touch:
     建立一个空的档案;
    将某个档案日期修订为目前 (mtime 与 atime)
    root@ubuntu:/# touch  testtouch
    root@ubuntu:/# ls -l testtouch
    -rw-r--r-- 1 root root 0  7月18 12:31 testtouch
    root@ubuntu:/# touch -d "2 days ago" testtouch
    root@ubuntu:/# ls -l testtouch
    -rw-r--r-- 1 root root 0  7月16 12:32 testtouch
    root@ubuntu:/# touch -t 1507161212 testtouch  (时间格式与tar包--newer-mtime="150716"相似tar无法设置分秒)
    root@ubuntu:/# ls -l testtouch
    -rw-r--r-- 1 root root 0  7月16 12:12 testtouch
    档案与目录的默认权限与隐藏权限:
    除了基本 r, w, x 权限外,在 Linux 的 Ext2/Ext3 文件系统下,我们还可以设定其他的系统隐藏属性,这部份可使用 chattr 来设定,而以 lsattr 来查看,最重要的属性就是可以设定其不可修改的特性!让连档案的拥有者都不能进行修改!
    [root@www ~]# chattr [+-=][ASacdistu] 档案或目录名称
    选项于参数:
    + :增加某一个特殊参数,其他原本存在参数则不动。
     - :移除某一个特殊参数,其他原本存在参数则不动。
    = :设定一定,且仅有后面接的参数
    a  :设定定 a 后,这个档案将只能增加数据,而不能删除也不能修改数据
    i   :i 可就更厉害了!他可以设一个档案『不能被删除、改名、设定连结也无法写入或新增资料!』
    s  :如果这个档案被删除,他将会被完全的移除出这个硬盘空间,所以如果误删了,完全无法救回的了喔!
    u :与 s 相反的,如果该档案被删除了,则数据内容其实还存在磁盘中,可以使用来救援该档案喔!
     
    [root@www ~]# lsattr [-adR] 档案或目录
    选项不参数:
    -a :将隐藏文件的属性也秀出来;
    -d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;
    -R :连同子目录的数据也一并列出来
     
    档/录预设权限:umask
    root@ubuntu:/# umask
    0022                              //与后三个数相关,第一个数是特殊权限用的;权限分别为7减去数字得权限值。
    root@ubuntu:/# umask -S
    u=rwx,g=rx,o=rx          //实用-S之后清晰可见各组权限
    当建档案是默认没有执行权限,最大值为6与umask的值相减得到最终权值。
    权限设定:umask  0002     直接加上数字即可
    关于预设 umask 的设定可以参考 /etc/bashrc 这个档案的内容
     
    指令与档案的搜寻:
    which (寻找『执行档』 )
    [root@www ~]# which [-a] command
    -a :将所有由 PATH 目录中可以找到的指令均列出,而不止第一个被找到的指令名称
     
    档案档名的搜寻:
    find                   搜寻硬盘     速度慢
    whereis              寻找特定档  速度快
    locate                搜寻 速度快
     
    [root@www ~]# whereis [-bmsu] 档案或目录名
    选项与参数:
    -b :只找 binary 格式的档案
    -m :只找在说明文件 manual 路径下的档案
    -s :只找 source 来源档案
    -u :搜寻不在上述三个项目当中的其他特殊档案
     
    [root@www ~]# locate [-ir] keyword
    选项不参数:
    -i :忽略大小写的差异;
    -r :后面可接正则表示法的显示方式
    locate 寻找的数据是由『 已建立的数据库 /var/lib/mlocate/』 里面的数据所搜寻到的,所以不用直接在去硬盘当中存取数据;Centos 5.x 数据库每天更新一次,
    手动更新数据库: updatedb
     
    find 更为复杂功能更加强大,可按照,时间所属人,等一些特殊条件来找文件。
     
     
    总结
    • 几种文件类型:
      • ext2,ext3,ext4
      • LVM,RAID,SWAP
    • 基础指令:
      • date,cal,bc
      • cat,tac,more,less
      • head
        • head -n  100   /etc/man.c  显示前100行
        • head -n -100  /etc/man.c   显示不包括后100行的所有行
      • tail
        • tail -n    100    /etc/man.c  显示后面100行
        • tail -n  +100   /etc/man.c  显示100行以后的所有行
        • tail -f    /etc/man.c            实时显示
    • 磁盘分区的意义
      •   因为每个目录被读写的频率不同,妥善分割提升安全性
    • 文件权限
      •   如果只有写的权限,源文件的内容无法看到,但是可以修改,修改保存后,源文件的内容被新内容替换掉。
    • 目录权限
      • r:可以使用ls
      • w:
        • 建立新档案与目录
        • 删除已经存在的档案与目录(不论该档案的权限为何)
        • 将已存在的档案或目录更名
      • x:执行。简单点就是能够CD到这个目录。
    • SUID,SGID,SBIT
      • SUID(set uid)
        • 限制与功能
          • SUID权限对二进制程序有效
          • 执行者对于该程序需要具有X的可执行权限
          • 本权限仅在执行该程序的过程中有效(run-time)
          • 执行者将具有该程序拥有者(owner)的权限
        • 简单说就是:执行者在执行过程中获得拥有者的权限,如passwd,拥有者是root,那么普通用户也可以使用passwd来更改自己的密码,就是普通用户在执行passwd运行时,获得了root权限。
      • SGID(set gid)
        • 功能
          • 与SUID一样:仅对二进制,执行者有X,run-time;
        • 项目开发中应用
          • 目录设有SGID功能,则在此目录下所创建的目录,档案的群组均变成该目录的群组。
      • SBIT(Sticky Bit)
        • 只对目录有效,对于档案没效。
        • SBIT对于目录的作用
          • 当用户对此目录具有w,x权限,即具有写入权限时:该用户在该目录下建立档案或目录,只有自己与root才有权利删除档案。
          • 简单说,甲乙都对A目录有读写权限,那么他们两为了防止对方删自己的文件,则在A目录加上SBIT权限,则只能自己与root才能操作
      • SUID与SGID 区分
        • 当S标志在档案拥有者的X项目为SUID;
        • 当S标志在群组的X时则成为SGID
      • SUID 用在档案上,SGID用在档案和目录上,SBIT 用在目录上;均需要用户有执行权限。
      • 权限设定
        • SUID 4,SGID 2,SBIT 1
        • 大写S,T表示空的权限,由于用户没有执行权限。
        • chmod 7777,第一个7就是设置的SUID,SGID,SBIT
    • 目录配置的依据--FHS
      • /(root,根目录),与开机系统有关
      • /usr(Unix software resource),与软件安装/执行有关
      • /var(variable),与系统运行过程有关
    • 文档时间
      • modification time(mtime)
        • 文档内容数据更改,更新该时间。
      • status time(ctime)
        • 权限,属性,内容等一切被更改,更新该时间
        • it  is the inode/file  change time
      • access time (atime)
        • 读取该档案后,会更新该时间。如cat
      • 查看
        • ls -la 显示 atime
        • ls -lc 显示 ctime
        • ls -l  显示 mtime
      • 修改atime,ctime,mtime
        • touch [-acmdt] 档案
      • 更改mtime,因为会读取档案所以atime会改变,因为改变了mtime这个属性,所以ctime也会随之改变。
    • 隐藏权限
      • chattr
        • a,档案只能增加数据,而不能删除也不能修改
        • i,不能删除,改名,设定链接,无法写入或新增
        • s,永久删除
        • u,删除可找回
      • lsattr
      • 可设定其不可修改的特性,让档案的拥有者都不能进行修改。
    • 默认权限
      • umask, 与后三个数相关,第一个是特殊权限用的。权限分别为7减去数字得到;
      • 设定:umask 0022 
      • 默认umask 的设定在 /etc/bashrc
    • 指令与文档搜索
      • 指令搜索
        • which 
      • 文档搜索
        • find                搜寻硬盘,速度慢
        • whereis          搜寻特定档,速度快
        • locate            /var/lib/mlocate 这个数据库文件搜寻 
  • 相关阅读:
    virtualbox mout 错误解决
    Python pip 学习
    tzset()与localtime()
    TSE部署实践
    变量和关系符和JAVA基本类型笔记与常考面试题
    实例:判断客户是否中奖与纸牌互换,计算银行本息
    实例:五位数各位数之和与员工实领工资
    关于变量,JAVA基本数据类型,运算符类型,如何从控制台接收输入的数据
    Java的程序执行过程与编译原理
    CMD控制器常用命令
  • 原文地址:https://www.cnblogs.com/Aiapple/p/4865212.html
Copyright © 2011-2022 走看看