您的位置:首页 > 运维架构 > Linux

RHCE课程-RH033Linux基础笔记七之文件的搜索及高级文件权限和用户、组操作 推荐

2008-11-27 16:33 921 查看
RHCE课程-初级部分7、文件的搜索及高级文件权限和用户、组操作
今天的第一个命令:which
which
显示一个可执行文件的完整路径,按照alias -> $PATH的顺序查找
比如我们看 ls 的可执行文件放在哪的



上面一行的ls的别名,默认是加入了--color=tty的参数,下面一行 /bin/ls 就是 ls 的可执行文件。我们可以去看看。



青色的一般都是可执行文件。而且这个青色就是 ls 的第一个别名的原因,如果没有这个别名,默认是不会显示颜色,你们44找下cd rm 之类命令的可执行文件在哪.



which这个命令在系统管理中有重要,大家一定要记住.
下一个命令,whereis ,[b]这个功能就更强大了[/b]
whereis 搜索一个可执行工具及其相关配置、帮助



前面ls: 是表示查找的这个命令
/bin/ls 是可执行文件位置
后面两个就是帮助文件了
下面还是命令:find 功能超级大的搜索工具。
语法:
find [路径] [参数] [表达式]

下面是find常用的参数:
-user:根据文件拥有者寻找文件
-group:根据文件所属组寻找文件
-name:根据文件名寻找文件
-perm:根据文件权限寻找文件
-size:根据文件大小寻找文件
-type:根据文件类型寻找文件,参数对应c、b、l、f、d
-o :表达式或
-not :表达式非

现在我们测试第一个user参数,查找/home 下所有者为root的文件:find /home -user root



然后查找/etc下面与root有关的文件:find /etc -user root



第二个参数-group:根据文件所属组寻找文件,找 /boot 目录下 root组的文件



name:根据文件名寻找文件,查找网卡配置文件
find / -name ifcfg-eth0这个命令就可以找到网卡的配置文件,你们44,ifcfg-eth0就是网卡的配置文件,上周我们是讲过的



-perm:根据文件权限寻找文件,自己创建一个权限是725的文件在家目录



然后用命令在根下找,找到这个文件:find / -perm 725



-size:根据文件大小寻找文件,查找/下面大小40M以上的文件,你们44



这里就有技巧了:
大小前面用+ 表示大于这个值
- 表示小于这个值
不带符号就表示等于了
单位也有讲究:k是小写的,M和G是大写的
[b]这个一定要注意哈。不然你命令就运行不了
[/b]
我们看下单位M小写出错的效果哈。



-type:根据文件类型寻找文件,参数对应c、b、l、f、d



-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存在
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser #查无有效属主的文件,即文件的属主在/etc/passwd中不存在
-newer f1 !f2 #查更改时间比f1新但比f2旧的文件
-type b/d/c/p/l/f #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c] #查长度为n块[或n字节]的文件
-depth #使查找在进入子目录前先行查找完本目录
-fstype #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount #查文件时不跨越文件系统mount点
-follow #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune #忽略某个目录

这些命令你们了解下吧,知道有这个功能就行了,如果确实要用,再来研究
刚才有朋友问到,通配符号的问题,那下面大家查找 conf结尾的文件44
正规的写法是这样的find / -name "*.conf" ,需要用引号把内容包起来,这样系统不容易误解,不用也行。



查找以两个小写字母和两个数字开头的txt文件,物们先建立两个文件:aa11.txt和bb22.txt



find / -name "[a-z][a-z][0-9][0-9].txt"



具体的你们需要灵活运行,我也就只是告诉你们方法
-o :表达式或
-not :表达式非
[b]与是直接在后面加,
不用其他参数[/b]
我要找conf 结尾,还要是20k以上的文件,大家44
find / -name "*.conf" -size +20k



还有个简单的查找命令locate,一般我用这个
语法:
locate [关键字段]

大家找找网卡配置文件,用这个命令:locate ifcfg-eth0



所有文件名及其所在路径包含关键字段的文件与目录都会显示,locate先将当前目录结构做成一个数据库,然后再在此数据库中搜索匹配记录.
第一次使用这个命令需要运行:updatedb 更新数据库
locate 是在数据库中查找,所以速度快,但是数据库是有个计划任务来管理更新
下面创建一个 123321 文件在家目录里,然后用locate 查找这个文件



我们看到建立123321文件后,locate 123321没找到哈,updatedb后就找到了哈。
/etc/passwd (默认权限644)


michael:x:500:500:michael:/home/michael:/bin/bash
用户名:密码:UID:GID:用户描述:用户主目录:用户登录Shell
复习下,/etc/shadow 这个文件大家要注意了(默认权限400)



michael:$1$/Ix5lJZO$2wXjm0hqGQvN7vtwB.K021:14204:0:99999:7:::
以冒号分割,上面是一行哈
第一位

是帐户名字就是michael


是通过md5加密的密码


就是自1970/1/1起,密码被修改的天数


就是两次修改口令的间隔最小天数,0就代表没有限制


就是 99999天了,这个是用户过期日期,从 1970/1/1开始算


就是用户过期7天后失效


最后这个是保留字段
大家了解就行了
在很久以前,密码是放在PASSWD文件里的,为了使LINUX更安全,后来就把密码单独存放在SHADOW中,而且文件权限是400
我们可以用 pwunconv,把密码放在/etc/passwd ,大家44 ,如果用root修改,需要加!强行写入。输入这个命令你再看你/etc/passwd文件。



usermod指令,我们可以用参数来指定修改内容
#usermod <参数> [目标] <用户名>
-c:改变用户的全名
-d:改变用户的主目录
-e:设置用户密码的过期时间
-g:改变用户的gid
-G:将用户添加入一个新组
-l:改变用户的登录用名
-s:改变用户的默认shell
-u:改变用户的uid
-p:改变用户的密码
-L:锁住密码,使帐号
-U:为用户密码解锁。

这个大家做了解吧
还有几个组管理的命令,我也给大家列出来
groupadd:添加一个组
groupdel:删除一个已存在组
groupmod –n 新组名 原组名,为一个组更改名字
gpasswd –a 用户名 用户组,将一个用户添加入一个组。

重点来咯
who:查询当前在线的用户



w:查询当前在线用户的详细信息



groups:查询用户所属的组



id:显示当前用户信息



finger:查询用户信息



uname:显示系统信息
-a系统所有信息
-r系统内核版本




hostname:显示主机名



关于修改主机名字需要修改3三个地方:
1、hostname 的命令
2、修改/etc/hosts






3、修改/etc/sysconfig/network






这三个文件的主机名字必须一样,不然你的服务器会出现问题,如果hosts里没有设置本地解析,就可以不管,3个都要改哈,修改主机名后需要重新启动系统后生效。
last:列出最近的用户登录



lastlog:列出每一个用户的最近登录情况




free:显示内存使用状况



好了,下周的课程文件的强制位冒险位,访问控制列表,文件属性的介绍哈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐