linux文件权限和文件查找

  • Post author:
  • Post category:linux


1、文件权限

(1) 执行 echo pwd >> pwd.sh,然后使用 ls -al 查询一下,发生了什么事?

执行结果:您在 /var/spool/mail/lll 中有新邮件

在本文件夹下生成一个pwd.sh文件

(2)以两种方式查看系统中新建文件或目录的默认权限

1.ls -l可以查看所有文件的权限,可以先mkdir file新建一个目录,在使用ls -l去查看此文件的权限,得到的就是该系统新建目录的默认权限。

2.同1类似,可以先cat > file2 新建一个文本,回车之后不会显示[lll@myWMware 文档]$ 现在是要求你在文档中输入内容,可以使用Ctrl+d退出编辑,在使用ls -l去查看此文件的权限,得到的就是该系统新建文件的默认权限。(注意我的空格)

3.ls -l filename 可以查看指定文件名的权限

(1)例如;ls -l pwd.sh可以查看pwd.sh的权限

4.当我们在系统中新建一个文件或目录时,系统会自动赋予该文件或目录一个初始访问权限,我们称为默认权限,默认权限与文件系统的umask值有关。可以在终端下 直接输入 umask来查看当前系统的umask值。

(1)例如:我的就是0002.

(2)其中第一位是特殊字符,不做考虑,我的后三位是002,一般系统默认设置的权限为:新建文件的权限是-rw-rw-rw-,权限值是666;新建目录的权限是drwxrwxrwx,权限值是777。所以我的系统的新建文件权限是666-002=664(-rw-rw-r–),新建目录的权限是777-002=775(drwxrwxr-x)

(3)新建文件 test1 和目录 test2,查看它们的权限是否与(2)中的默认权限相符

①新建文件[lll@myWMware 文档]$ cat > test1

②不添加内容,Ctrl+d退出编辑

③查看新建文件的权限[lll@myWMware 文档]$ ls -l test1

④新建文件权限:-rw-rw-r–. 1 lll lll 0 3月 1 19:58 test1,符合我的预测

⑤新建目录[lll@myWMware 文档]$ mkdir test2

⑥查看新建目录的权限:ls -l test2

⑦结果:总用量 0(这个表明这个目录里面为空),我们可以右击这个目录,在权限里面查看。

(4)修改 pwd.sh 文件权限为 r-xr–r–。

①查看pwd.sh的权限,ls -l pwd.sh

②初始权限展示:-rw-rw-r–. 1 lll lll 4 3月 1 19:19 pwd.sh

③修改权限:[lll@myWMware 文档]$ chmod u-w,u+x,g-w pwd.sh

④结果展示:-r-xr–r–. 1 lll lll 4 3月 1 19:19 pwd.sh

(5)执行 pwd.sh。(提示:执行本路径下文件的命令是 ./文件名)。

①执行:[lll@myWMware 文档]$ ./pwd.sh

②结果:/home/lll/文档(根目录)

(6)添加用户 stu,修改密码为 12345678。

①权限不够请退出更换为root,重新进行操作。

②终端输入su,回车,输入密码,切换为root

③添加用户:[root@myWMware 文档]# useradd -m stu

④修改密码:[root@myWMware 文档]# passwd stu

⑤输入密码提示:无效的密码: 密码未通过字典检查 – 过于简单化/系统化,重新输入一个复杂密码即可。或者不用理会。

⑥passwd:所有的身份验证令牌已经成功更新。出现这个就说明修改成功。

(7)修改文件 test1 的属主为 stu,test1 所属的组为 stu。

①可以使用chown命令来修改文件的属主,例如:chown username:groupname filename。例如:[root@myWMware 文档]# chown stu:stu test1

(8)增加 test1 的属主具有可执行的权限。

①[root@myWMware 文档]# chmod u+x test1

②查看:[root@myWMware 文档]# ls -l test1

③结果:-rwxrw-r–. 1 stu stu 0 3月 1 19:58 test1

2、文件查找

(1) 查看文件/root/.bashrc 的类型

输入:file /root/.bashrc

结果:/root/.bashrc: ASCII text

(2) 查询 ifconfig 和 cd 命令的完整文件名

输入:which ifconfig

输出:/usr/sbin/ifconfig

输入:which cd

输出:/usr/bin/cd

(3) 只找出跟 passwd 有关的“说明文件”文件名

输入:whereis -m passwd

输出:passwd: /usr/share/man/man1/passwd.1.gz /usr/share/man/man5/passwd.5.gz

(4) 找出系统中所有与 passwd 相关的文件名

输入:locate passwd

输出:所有与 passwd 相关的文件名,数量太多,不粘贴了

(5) 将过去系统上面 3 天前的 24 小时内有改动(mtime)的文件列出

输入:find / -mtime 3

(6) 使用 find 查找当前目录下比 man_db.config(manpath.config)新的文件,并存储到 man.config.new 文件。

输入:find root/270830914 -newer manpath.config >man.config.new

输出:find: ‘man_db.config’: 没有那个文件或目录

(7) 列出/etc 下比/etc/man_db.config 新的文件

输入:find /etc -newer /etc/man_db.config

输出:find: ‘/etc/man_db.config’: 没有那个文件或目录

解决方法:

输入:find /etc -newer /etc/passwd(列出/etc 下比/etc/passwd 新的文件)

输出:/etc

/etc/group

/etc/resolv.conf

/etc/gshadow

/etc/cups

/etc/cups/subscriptions.conf.O

/etc/cups/subscriptions.conf

/etc/shadow

/etc/tuned/profile_mode

/etc/tuned/active_profile

(8) 查找系统中所有属于 root 的文件及不属于任何人的文件

输入:find / -user root

输出:结果太长不粘贴

输入::find / -nouser

输出:结果太长不粘贴

(9)使用 find 查找/下面所有名称为 man_db.config 的文件。

输入:find / -name man_db.config

输出:没有结果,没有这个文件

输入:find / -name file1.txt

输出:/home/lll/文档/file1.txt

(10) 使用 locate 查找所有名称为 file1.txt 的文件。

输入:没有结果

(11) 9 步和 10 步的结果一样么?为什么?

不一样,locate 更加详细与之相关联的也都列出来

(12) 找出/etc 下文件类型为 f 的文件

输入:find /etc -type f

输出:结果太长不粘贴

(13)找出系统中大于 1M 的文件

输入:find / -size +1000k

输出:结果太长不粘贴

3、crontab 定时任务:每周一的凌晨 2:00 重启服务器

cat /etc/crontab(创建一个脚本)

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

0 2 * * * root cd / && run-parts –report /etc/cron.hourly



版权声明:本文为qq_62385631原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。