第五节 suid/ sgid /sbit /which /locate / find /stat / ln / uname -a

复习上节课内容(重点记录)
1、chown -R 递归修改目录下包含子目录和子目录下的文件的属组
2、chmod -R 递归修改目录下包含子目录和子目录下的文件的权限

============================================================
其实在UNIX的实现中,文件权限用12个二进制位表示,如果该位置上的值是1,表示有相应的权限,如果是0则没有相应权限
第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上面的三组rwx位
11 10 9 8 7 6 5 4 3 2 1 0
S G T r w x r w x r w x
chmod u+s filename 设置SUID位
chmod u-s filename 去掉SUID设置
chmod g+s filename 设置SGID位
chmod g-s filename 去掉SGID设置

-rwsrwxswt ======>出现了t,t的作用在内存中尽量保存a.txt,节省系统再加载的时间.
从s和S中我们可以看出在设置su前,脚本相应的执行权限有没有被设置(有则s,没有则S)。
对于sgid的设置时也类似。粘性位则用t和T表示,但其中包含的意义是一样的。

rwsrw-r– 表示有setuid标志
rwxrwsrw- 表示有setgid标志
rwxrw-rwt 表示有sticky标志

chmod 4777 //是设sid
chmod 2777 //是设置gid
chmod 1777 //是设sticky-- t 该位可以理解为防删除位. 一个文件是否可以被>某用户删除,主要取决于
该文件所属的组是否对该用户具有写权限. 如果没有写权限, 则这个目录下的所有文件都不
能被删除, 同时也不能添加新的文件. 如果希望用户能够添加文件但同时不能删除文件, 则
可以对文件使用sticky bit位

0: 不设置特殊权限
1: 只设置sticky
2 : 只设置SGID
3: 只设置SGID和sticky
4 : 只设置SUID
5 : 只设置SUID和sticky
6 : 只设置SUID和SGID
7 : 设置3种权限

1、设置特殊权限 SUID、SGID详解 参考:http://www.cnblogs.com/fhefh/archive/2011/09/20/2182155.html
SUID : Set User ID (find / -perm -04000 -type f -ls查找设置SUID的程序)
作用:临时赋予用户二进制文档的拥有者的权限(主要用于让普通用户可以使用某些特殊命令)
语法1:chmod u+s file(增加s权限)
语法2:chmod u-s file(减去s权限)
使用限制与环境:
1、仅对于二进制文件有效;
2、执行者必须对文件拥有x权限(否则即使设置了SUID,由于你对文件根本无法执行SUID此时也无效,此时权限位显示S);
3、权限只是在执行过程中拥有。
PS:例如passwd命令,路径/usr/bin/passwd,权限为"-rwsr-xr-x"。(passwd命令会修改"/etc/shadow")
PS:SUID只可用于二进制文件,不可用于shell script文件。

SGID : Set Group ID:
对于文件
作用:临时赋予用户二进制文档的拥有组的权限(多用于让普通用户可以使用某些特殊命令,和suid类似)
语法1:chmod g+s file(增加s权限)
语法2:chmod g-s file(减去s权限)
使用限制与环境:
1、仅对于二进制文件有效;
2、执行者必须对文件拥有x权限(否则根本无法执行文件,更别谈SGID赋予权限,此时权限位显示S);
3、权限只是在执行过程中拥有。
PS:例如locate命令,路径/usr/bin/locate,权限为"rwx--s--x"。
(locate命令会读取"/var/lib/mlocate/mlocate.db")
对于目录
作用:临时将用户的effective group修改成该目录的的群组
语法1:chmod g+s dir(增加s权限)
语法2:chmod g-s dir(减去s权限)
使用限制与环境:
1、使用者必须对该目录拥有x权限(否则无法进入,更别谈SUID赋予权限,此时权限位显示S);
2、若用户对此目录拥有w权限,由于effective group被修改成该目录的group,所以用户在此目录下创建任何文件,属组该目录的用户组。

SBIT
作用:限制目录下不同用户之间对于其他用户文档或目录的编辑权限。
语法1:chmod o+t dir(增加t权限)
语法2:chmod o-t dir(减去t权限)
使用限制与环境
1、只能针对目录;
2、必须有x和w权限(否则无法进入和编辑,更不用谈sbit权限,此时权限位显示T);
3、用户自身创建的文档和目录,只有自己和root可以编辑(重命名、修改内容、复制、删除等)

2、查询文件类型与文件位置命令
file
作用:查看文件类型(linux下的文件类型不以后缀名区分)
语法举例:
[root@web01 ~]# file passwd
passwd: ASCII text 《——ASCII文本文档
[root@web01 ~]# file 123
123: directory 《——目录文档
[root@web01 ~]# file /var/lib/mlocate/mlocate.db
/var/lib/mlocate/mlocate.db: data 《——data文档
[root@web01 ~]# file /bin/ls
/bin/ls: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped 《——可执行文档(包含suid设置、兼容的cpu硬件平台,lib库,linux内核等)

which
作用:搜索命令用
语法:which 命令名称
参数:-a 不仅仅是第一个被找到的命令,所有被搜索到的命令都会列出。
PS:只是在系统定义的PATH路径下搜索。
[root@web01 ~]# type cd
cd is a shell builtin 《——cd是一个内置命令,不在PATH内,所以下面的which搜索不到cd。
[root@web01 ~]# which cd
/usr/bin/which: no cd in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)

whereis
作用:在特定的多个文件夹里搜索文件(/bin:/sbin:/usr/bin:/usr/sbin:man文档的相关文件夹等)
语法:whereis 参数 关键字
参数:
-b 只找 binary 格式的文件;
-m 只找在说明手册文件manual 路径下的文件;
-s 只找 source 来源的文件;
-u 查找不在上述三个参数中的其他特殊文件。

locate
作用:从特定资料库里查询文件
语法:locate keywords
PS:安装方法,yum install -y mlocate,安装完成后需要用updatedb命令更新一下数据库
PS:系统每天凌晨4点自动updatedb
PS:资料库文件路径/var/lib/mlocate/mlocat.db

find
说明:最强大的查询工具。
语法: find [PATH] [option] [action]
参数:-mtime 以改变文件内容时间为搜索条件查询文件
我们事先约定,从现在时间开始往前推24小时为第1天,n=1。以此类推第一天再往前推24小时是第2天,n=2...
-mtime n :n为数字,意为查询第n+1天当天24小时内改动过内容的文件;
-mtime +n :意为查询 n+1天之前(不含n+1天本身)被改动过內容的文件;
-mtime -n :列出在 n 天之內(含 n 天本身)被改动过内容的文件;
-newer file :file 为一个已存文件,列出比 file被改动内容更早之前的文件。

 
-mtime 4 是查询第5天改动过内容的文件;
-mtime +4 是查询5天前改动过内容的文件;
-mtime -4 是查询4天内改动过内容的文件。
参数:-mmin 同-mtime,只是n不代表天数,代表分钟。
参数:-type 以文件类型为搜索条件查询文件
-type TN :TN=f (普通文件),d(目录文件), l(链接文件),s(套接字),p(管道),c(字符文件)和b(块设备)等。
参数:-i 忽略查询条件的大小写
参数:-inum 以文件的inode号为查询条件查询文件。
可用于删除文件名乱码的文件。find 路径 -inum inode号 | xargs rm

find扩展执行命令
参数xargs(execute arguments 用于执行的参数)
作用:
find ***|xargs -i mv {} {}.bak (参数-i 代表把前面的信息一条一条分批的处理)
PS:find ***|xargs -i rm

stat
作用:查看三个时间
语法:stat file/dir
PS:更改ctime不一定更改mtime
PS:更改mtime一定会改动ctime

3、软连接与硬链接
ln 硬链接
作用:主要用于安全备份
语法:ln source destination
原理:
普通文件的inode里存取了文件权限、归属、时间等信息及文件资料存取的block号,block里存取的是实际文件的数据。
然而对于目录文件,它的inode也存取了该文件夹的权限、归属、时间等信息及指向的inode号,而其block里存取的是一个储存了inode与其对应的文件名称的列表清单。类似于下表

 

做完硬链接之后,实际文件的inode相当于有了两个入口,而这些入口都是写在目录文件的block里边的,这两个入口拥有同样的inode号,只是文件名称不一样,正因为如此,所以硬链接是不额外产生inode号的,只是相当于给源文件做了一层安全保护,防止被误删。
PS:硬链接不产生新的inode
PS:不能跨分区做硬链接
PS:不能对目录做硬链接

ln -s 软连接
作用:可以用于不同分区之间“容量共享”和“inode共享”
语法:ln -s source destination
原理:
软链接和硬链接不同,软链接是由系统新分配了一个inode和block,block里存的是源文件的名称等信息。


链接文件inode

block:存了源文件的信息

------>

源文件inode

block:实际文件资料

基于此原理,所以软连接会产生新的inode,也可以对目录做软连接(硬链接不可以是因为有可能会产生目录回环)
PS:尽量写绝对路径
PS:软连接的大小和连接的文件名称长短有关


额外知识点
vim安装方法
方法1:yum install -y vim-enhanced
方法2:yum install -y vim*

查看系统信息
[root@web01 123]# uname -a
Linux web01 2.6.32-431.el6.i686 #1 SMP Fri Nov 22 00:26:36 UTC 2013 i686 i686 i386 GNU/Linux

 

posted on 2015-03-02 15:02  linuxSu  阅读(258)  评论(0编辑  收藏  举报

导航