Linux 档案 & 权限

权限管理

1. Owner, Group, Others

  root ( 管理员 ) 是万能的天神, 拥有对档案的权限 .

2. /etc/passwd , /etc/shadow , /etc/group ( 存储 个人信息 , 密码 , 组信息 )

3. ls 查看档案 权限内容 


  档案的权限 :

    第一个字符 :  d 表示目录

                            - 表示档案

                            l 表示连接档

                            b 借口设备   ( 例如 /dev/sda )

                            c 串行接口 ( 鼠标 键盘 例如 /dev/mouse0 )

    连接数 : 每个档案都会将他的权限与属性记录到文件系统的 inode 中 , 因此每个档名都会连接到一个inode中, 这个属性就是记录有多少个不同档名连接到一个inode.

                   档名跟目录有关。

 ( 档案的权限等属性和档案的内容是分开存储的 )  

Inode是linux/unix操作系统中的一种数据结构,包含了各文件相关的一些重要信息.在创建文件系统时,就会同时创建大量的inode,一般inode表会占用文件系统磁盘空间的1%.

与Inode相关的还有一个概念就是inumber。这两个概念很相关,但不一样。Inode是指的数据结构,而inumber是索引编号,实际上就是inode的标识编号,也可以做inode编号。Inumber只是文件相关信息中的一项信息而已.

我们对一个文件进行操作,如vi编辑,系统是在inode表中找到inode编号(inumber),才允许我们打开该inode。当文件的inode分派给一个用户时,另一个用户要操作这个文件时,就要等该inode释放了才可以操作。

     档名  :  如果前边有个 . 表示是隐藏文件 .

4. 绝对路径, 相对路径 ./ ( 当前目录 )  ../ (上一层目录)  

相对路径的作用:

程序开发时,将一些内容放到程序文件夹中,例如图片,利用相对路径寻找,因为每个人可能存放程序的文件夹在不同位置.(hwms系统)

目录比较长时,而又在离的比较近的目录时,使用相对目录就更快速

绝对路径的作用:

有时写一些shell script时,使用绝对路径更好一些 .

cd . 当前目录   cd .. 上层目录   cd ~ 家目录   cd - 上一次的工作目录

5. chgrp , chown , chmod ( 修改档案权限的命令 )

  chgrp : 改变组别 , chgrp -R ( 表示递归 ) root( 组名 ) abc ( 文件名 )

  chown : 改变档案拥有者 , chown -R(表示递归 ) abc:abc( 拥有者和组名一起修改) abc( 文件名 )

                 chown -R .abc( 只修改组名 ) abc(文件名 )         --> 注意此处第一个 abc之前有个点 , 作用就是隔开拥有者, 换句话说如果没有这个点, 那么修改的将是拥有者,而不是组

  chmode : 改变档案的权限 ,

                    数字 chmod -R 777 abc.txt  ( r : 4 w : 2 x : 1 , 3个7 分别按照顺序对应 拥有者 , 组内 , other 的权限 )

                    字母 chmod u=rwe,go=rx abc.txt ( 其中u表示拥有者, g表示群组, o表示other , a表示所有, + 表示增加, -表示除去)

                             chmod a+x abc.txt      chmod a-x abc.txt          chmod u+x abc.txt              chmod -R u+x abc ( 文件夹 )

其中权限代表含义:

  档案 : r ( 可以读取档案的实际内容 ) w ( 可以编辑档案, 但是不能删除档案 ) , x ( 该档案具有可以被系统执行的权利 )

  目录 : r ( 可以读取该目录下的内容, 例如 ls aaa ) w ( 可以新增档案, 删除档案, 更名, 移动档案 ) , x ( 可以将该目录作为工作目录(就是到该目录下,再进行工作) )

存在的扩展名 (注意) .sh ( 脚本文件 ) .z .tar .tz .tar.gz .zip .tgz ( 压缩文件 ) .html .php ( 网页相关档案 )

档案与目录管理

cd , pwd , mkdir , rmdir 

$PATH

当我们执行一个指令的时候, 举例来说 ls, 系统会依照PATH中的设定每个PATH定义的目录下搜索文件名为ls 的可执行文件, 如果在PATH定义的目录中有多个ls的可执行文件,那么, 先搜索到的同名指令先被执行.

echo $PATH 查看PATH变量 ( 注意必须是 $PATH, 因为PATH是个变量 )

pwd [-P]

-P : 显示出现的确实路径,而非使用链接( link )路径 ( 这里的链接只的不是实体链接)

mkdir [-mp] 目录名称

-m : 配置目录的权限,不需要参考 umask , 例如 mkdri -m 711 test2

-p : 递归建立   例如 mkdir -p test1/test2/test3/test4 

rmdir [-p] 目录名称

-p : 递归删除空的文件夹 例如 : rmdir -p test1/test2/test3 必须要求这些文件夹都是“空”的

cp , mv , rm

cp 功能很强大, 复制档案时要注意权限, 目标文件和源文件的档案权限不同. 复制时必须搞清楚 是否需要完整保留原来档案信息? 来源档案是否为连接档案 ?

      来源档案是否为特殊档案 FIFO,等等 来源档案是否为目录

-a : 相当于pdr  ( 就是复制的完全一样 )

-d : 若来源文件尾链接文件的属性( link file), 则复制链接文件属性而非档案本身。

-f : 强制

-i : 覆盖之前先询问

-l : 进行硬式连接( hard link )的连接档建立,而非复制档案本身。

-p : 联通档案的属性一起复制过去,而非使用默认属性

-r : 递归复制

 

rm  移出档案和目录 -f -i -r ( 强制, 提示, 递归 )

 

mv [-fiu] 源文件,目的地

-f : 强制

-i : 提示覆盖

-u : 如果源文件比原来文件新,则直接覆盖

 

basename , dirname  (感觉用处很小)

  basename /var/tmp/aaa.txt ( 取得最后文档名, 此处结果为 aaa.txt )

  dirname /var/tmp/aaa.txt ( 取得目录名 , 此处结果为 /var/tmp )

touch ( 更改档案时间 )

  modification time( mtime ) ( 修改档案的时间 )

  status time ( ctime ) ( 权限等属性被修改时 )

  access time ( atime) ( 读取时间 )

  ls -l --time=atime /etc

  ls-l --time=ctime /etc
注意没有 ls -l --time=mtime, 因为mtime是默认的不需要指定

 

默认情况下:ls显示的是该档案的 mtime,也就是这个档案内容的上次更改的时间。

touch [-acdmt] 档案

-a 仅修改 access time

-c 仅修改档案的时间,若该档案不存在则不建立新档案

-d 后面可以接欲修改的日期而不用目前的日期,也可以使用 --date="日期或事件" 全部时间都修改

-m 仅修改mtime

-t 后面可以接欲修订的事件而不用目前的时间,格式为[YYMMDDhhmm]

例如: 建立一个空档案,aa

touch aa

touch -d "2 days ago" aa ( 所有时间修改到2天前 )

touch -t 1211011315 aa ( 修改了 access time , modify time , 但是并没有修改 status time )

touch -c aa ( 将3个时间全部修改 , 但是如果 aa 档案不存在,则不会建立 aa 这个档案 )

touch -a -d "2 days ago" aa  // 修改日期, 仅修改 access 日期

touch -a -t 1304101010 aa   // 修改时间和日期, 仅修改 access

 

head 只看头几行   head -2 a.txt

tail 只看尾巴几行   tail -2 a.txt

 

 umask(档案预设权限 )

   创建档案或目录时, 预设权限 umask -S , umask ( 此处命令显示出的数值, 后三位对应权限, 注意此处为缺失的权限 )

   例如 umask 为022 , 则创建档案和目录时

   档案 ( -rw-rw-rw-) - ( -----w--w-) ==> -rw-r--r--

   目录 ( drwxrwxrwx) - ( d----w--w-) ==> drwxr-xr-x

档案的隐藏属性  chattr

 chattr [+-=] [ASacdistu] 档案或目录名称

 a : 当设定 a 后,这个档案将只能增加数据,不能删除也不能修改数据,只有root 才能设定这个属性

 i : 这个 i 可以让档案不能被删除,改名,设定链接,也无法写入或新增资料,对于系统安全性帮助相当大,只有 root 才能设定此属性。

 

  chattr +i abc.txt        chattr -i abc.txt 解除 , 解除后就可以删除

 

 lsattr [-adR] 档案或者目录

-a 显示隐藏档案

-d 仅列出目录本身的属性,而非目录内的档案

-R 递归

 

档案的特殊权限(SUID, SGID, SBIT)

  SUID : 只对二进制文件有效, 执行者对该文件要有x的可执行权限, 本权限只在执行该程序时有效, 执行者拥有该档案拥有者的权限 ( U 就是 拥护者 owner )

               就是执行者在执行时可以转变身份变成档案的拥有者( 拥有者一样的权限, 例如一个用户不对此档案有相应权限,但是由于SUID在执行时也可以执行  )

  SGID : 只对二进制有效, 执行者具备X权限, 执行者在执行时,转变成组内用户,拥有组内权限  ( G 就是 group )

  SBIT : 只针对目录有效, 当用户对目录具有W,X 权限时, 当用户在此目录下创建目录或者档案时, 只有此用户和 root 具有删除的权限 .

  设置特殊权限 : 4 SUID , 2 SGID , 1 SBIT

      chmod 4777 abc.txt ( 4 就是设置 SUID , 后边3个7 是设置普通权限 )

      chmod u=rwxs, go=x abc.txt ,  chmod u+s abc.txt        跟之前的chmod一样, 有数字设置和字母设置

      chmod u+s ( SUID ) chmod g+s (SGID ) chmod o+t ( SBID ) 另一种设置方法

  备注 : 感觉好象是 有些时候用户权限不够,但是还要使用一些权限,就先借用一下, SBIT是用来限制权限的

file 观察文件类型 ( 档案或文件夹 )

 file aa

 

su 切换用户

 

搜索命令相关的

which 查看命令完整路径 ( which cd , cd 无法查询 , 因为cd 是内建的 命令 )

which -a 将不止一个的命令列出

type 查看命令属性 ( type cd , cd is a shell built in 内建命令 )

搜索档案相关的搜索 whereis, locate, find ( find 搜索很慢, 不常使用, whereis和locate都是数据库查询,快 )

whereis [-bmsu] 档案或目录

-b : 只找 binary 格式的档案

-m : 只找在说明文件 manual 路径下的档案

-s : 只找 source 来源档案

-u : 搜索不再上述三个项目当中的其他特殊档案

whereis ifconfig

多数时候, whereis 是用来查找命令的位置.

locate [-ir] keyword

-i : 忽略大小写

-r : 后面可接正则表达式
    locate ifconfig ( 不需要输入档案全名, 部分名称就可以,  locate使用之前要先更新数据库, root执行update, 然后直接在/var/lib/mylocate数据库中搜索, 所以速度快 )


由于以上两个指令是根据数据库进行搜索,所以要及时更新数据库库 直接输入 updatedb 就可以更新了

find

find [PATH] [option] [action]

与时间有关的内容 有 -mtime, -atime, -ctime 以 mtime 为例,说明

-mtime n : n 为数字, 意味在n 天之前的 一天之内 被更改内容的档案。

-mtime +n :  列出在 n天之前 ( 不含 n 天本身 ) 被改动的档案

-mtime -n : 列出 n 天之内 ( 含 n 天本身 ) 被改动的档案

-newer file : file 作为一个存在的档案,列出比file 还要更新的档案

                                                          <---->  4

                    <----------------------------- + 4   -4 ---------------------------> 现在

+4 代表大于等于5天前

-4 代表小于等于4天到现在

4  代表 4-5那一天的档案

例如 : find / -mtime 0 代表 24 小时内

 档案权限的对应关系

1. 让用户能进入某目录成为【可工作目录】的基本权利为?

  可使用的命令: 例如 cd 等变换工作目录的指令

  目录所需权限: 用户对这个目录至少需要具有 x 的权限

  额外需要: 如果用户想要在这个目录内利用 ls 查阅文件名, 则用户对此目录还需要具有 r 的权限.

2. 用于在某个目录内读取一个档案的基本权限为何?

  可使用的指令: cat, more, less

  目录所需权限: 用于对这个目录至少需要具有 x 权限.

  档案所需权限: 使用者对档案至少需要具有 r的权限

3. 让使用者可以修改一个档案的基本权限为?

  可使用指令: nano , vi

  目录所需要权限: 用户在该档案的目录至少是 X 权限.

  档案所需权限: 使用者对档案至少有 r, w 权限.

4. 让一个使用者可以建立一个档案的基本权限为 ?

  目录所需权限: 用户在该目录具有 w, x 的权限, 重点在 w

5. 让用户进入某目录并执行该目录的某个指令之基本权限为何 ?

  目录所需权限: 用户在该目录至少要有 x 权限

  档案所需权限: 使用者在该档案至少需要有 x 的权限.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值