Linux下的权限管理与相关时间概念

来源:互联网 发布:手表选择 知乎 编辑:程序博客网 时间:2024/06/05 08:02

一、Linux文件类型

1、普通文件(regular file)第一个字符为[ - ]

①纯文本档(ASCII):内容为我们人类可以直接读到的数据,例如数字、字母等等。

②二进制文件(binary):Linux中的可执行文件(除scripts, 文字型批处理文件之外)就是这种格式的。

③数据格式文件(data):有些程序在运作的过程当中会读取某些特定格式的档案,那些特定格式的档案可以被称为数据文件 (datafile)。一般用cat命令看到的都是乱码。

2、目录(directory): 第一个字符为[ d ]

3、连接文件(link):第一个字符为[ l ]

4、设备和设备文件

①块设备文件:即一些存储文件,如硬盘、软盘等,第一个字符为[ b ]

②字符设备文件:即一些串行端口的接口文件,如键盘、鼠标等,第一个字符为[ c ]

5、套接字(sockets):还被称为数据接口文件,这种类型的文件通常被用在网络上的数据连接,第一个字符为

[ s ]

6、管道(FIFO,pipe):FIFO也是一种特殊的文件类型,他主要的目的解决多个程序同时访问一个文件所造成的错误问题,first-in-first-out,第一个字符为[ p ]


二、 Linux权限管理(一件事情允许被谁做?人, 事物属性

1、文件访问者的分类(
a)拥有者:u---User
b)所属组:g---Group
c)其它用户:o---Others 


2、文件访问权限的种类(事物属性

a)基本权限
i.r/4):Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
ii.w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
iii.执行x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
iv.“”表示不具有该项权限

b)、特殊权限
i.suid (s/4)只能应用在可执行文件上,允许任意用户在执行文件时以文件拥有者的身份执行
ii.sgids/2)只能应用在可执行文件上,使任意用户在执行可执行文件时,将以拥有组成员的身份执行
iii.粘着位t/1)只能应用在目录文件上,将使用户在目录中执行删除时,只能删除自己拥有的对象


3、文件权限值的表示方法

a)字符表示方法


b)8进制表示方法



4、文件访问权限的相关设置方法

首先,创建一个文件file,并查看其详细信息



chmod
功能:设置文件的访问权限
格式:chmod   [参数]   权限  文件名

chmod命令权限值的格式:


① 用户表示符+/-=权限字符

+:向权限范围增加权限代号所表示的权限
- :向权限范围取消权限代号所表示的权限
=:向权限范围赋予权限代号所表示的权限

实例截图:



②三位8进制数字



5、操作文件或目录所需权限

(1)新建目录或文件的默认权限

超级用户默认掩码值为0022,普通用户默认为0002

新建文件夹默认权限=0666 - 权限掩码
新建目录默认权限    =0777 - 权限掩码


普通用户:



超级用户:



(2)进入目录需要的权限

首先去掉新建目录和文件的所有权限:



在目录都没有任何权限时进入:


结论:普通用户下,没有权限不能进入该目录;在超级用户下,没有任何任何权限也可以进入目录


普通用户下,分别改变用户读权限、写权限、执行权限进入目录:


结论:普通用户下,必须有可执行权限(x:1)才可进入目录


(3)在目录下创建并显示文件需要的权限

普通用户:



结论:普通用户进入目录需要执行权限(x:1),在目录中创建文件需要写权限和执行权限(w+x:3)


在普通用户下显示文件内容:


结论:普通用户进入目录需要执行权限(x:1),在目录中创建文件并显示文件内容需要写权限和执行权限(w+x:3)


超级用户:


结论:在超级用户下不需要任何权限就可以进入目录创建并显示文件


6、时间相关的命令

(1)date:指定格式显示时间(date +%Y_%m_%d 或 date+%Y:%m:%d)



1、在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中可用的标记列表如下:
BIT科技 仅限学习交流
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区 %a : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)

输出昨天的日期:



2秒后输出:



传说中的 1234567890 秒:


更多实例:



2、在设定时间方面
date -s                                          //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523                       //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01                         //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″    //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″   //这样可以设置全部时间

3、加减
date +%=Y%m%d                               //显示现在天年月日
date +%Y%m%d --date="+1 day"     //显示后一天的日期
date +%Y%m%d --date="-1 day"      //显示前一天的日期
date +%Y%m%d --date="-1 month"  //显示上一月的日期
date +%Y%m%d --date="+1 month" //显示下一月的日期
date +%Y%m%d --date="-1 year"    //显示前一年的日期
date +%Y%m%d --date="+1 year"   //显示下一年的日期


(2)时间戳
时间->时间戳:date +%s
时间戳->时间: date +%Y:%m:%d -d @1425384141
Unix时间戳(英文为Unix epoch, Unix time, POSIXtime 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒。



(3)stat:用于显示文件的状态信息。stat命令的输出信息比ls命令的输出信息要更详细。

Access:文件最近一次的访问时间

Modify:文件内容最近一次的修改时间

Change:文件属性最近一次的修改时间





0 0