文件权限
登录系统执行“ls -al”
内容如下:
[root@chances_test1 lihua]# ls -al
总计 71596
drwx------ 9 lihua lihua 4096 06-02 15:43 .
drwxr-xr-x 14 root root 4096 05-04 15:27 ..
-rw-r--r-- 1 lihua lihua 12288 05-31 15:59 .aa.txt.swp
drwxrwxr-x 5 lihua lihua 4096 06-02 16:36 apps
-rw------- 1 lihua lihua 10852 05-31 17:08 .bash_history
-rw-r--r-- 1 lihua lihua 33 03-31 11:06 .bash_logout
-rw-r--r-- 1 lihua lihua 255 2007-04-11 .bash_profile
-rw-r--r-- 1 lihua lihua 124 03-31 11:06 .bashrc
-rw-r--r-- 1 lihua lihua 515 03-31 11:06 .emacs
drwxrwxr-x 5 lihua lihua 4096 05-03 09:34 homework
drwxr-xr-x 9 lihua lihua 4096 2010-07-09 jdk1.5.0_11
-rw-r--r-- 1 root root 65972967 04-02 10:53 jdk1.5.0_11.tar.gz
权限 连接 所有者 用户组 文件容量 修改日期 文件名
第一列的drwxr-xr-x表明文件的类型和权限
[d][rwx][r-x][r-x]
a b c
第一个位置若为字母[d],则是目录; 若为[-]则是文件;若为[|]则表示为连接文件(linkfile)
r: read 可读 w: write 可写 x: execute 可执行
如上所示后边表示权限的部分分为三部分a b c 其顺序不会改变,如果没有某个权限则显示[-]
其中a代表文件所有者的权限(owner)
b代表同用户组的权限(group)
c代表其他非本用户组的权限(others)
也可以用数字代表权限:
r:4
w:2
x:1
改变文件的属性和权限
chgrp 改变文件所属用户组
chown 改变文件所有者
chmod 改变文件的权限
执行chgrp时,要被改变的组名必须要在/etc/group文件内存在,否则会显示错误。
执行chown时,用户必须是已经存在于系统中的账户,也就是在/etc/passwd这个文件中有记录的用户名称才能改变。
举例:
以root身份登录linux系统,在主文件夹内有个install.log的文件,假设已经知道在/etc/group里面有个名为users的用户组,但testing这个用户组不在/etc/group里面,此时改变用户组为users与testing看有什么区别。
输入命令 chgrp users install.log
Ls –l
可看到 -rw-r--r--1 root users (后边省略)
用户组已变为users
但执行 chgrp testing intall.log 则出现错误信息,提示找不到用户组
范例:
将install.log的所有者改为bin这个账户
输入命令chown bin install.log
将install.log的所有者与用户组改回为root
输入命令 chown root:root install.log
备注:
所有者与用户组之间用 “:”隔开。如果chown只是单纯的修改用户组,则所有者的位置用“.”来代替。如只将install.log的用户组改为root则命令为 chown .root install.log
更改权限的命令chmod语法为:
Chmod xyz 文件或目录 (xyz为权限数值的相加)
举例:如果将.bashrc 这个文件所以的权限都设置弃用,则执行:
Chmod 777 .bashrc
如果想增加.bashrc这个文件的每个人均可写入的权限,则可执行:
Chmod a+w .bashrc (其中a代表all)
绝对路径与相对路径
绝对路径:由根目录(/)开始写起的文件名或目录名称。
相对路径:相对于目前路径的文件名的写法。开头不是不是/就属于相对路径的写法。
.代表当前的目录,也可以使用./来表示
..代表上一层的目录,也可以../来表示
例题:如何先进入/var/spool/mail/目录,再进入到/var/spool/cron/目录中。
答:cd/var/spool/mail
cd../cron
目录的相关操作
.代表此层目录
..代表上一层目录
-代表前一个工作目录
~代表“目前用户身份”所在的主文件夹。如~account 代表account这个用户的主文件夹
常见处理目录的命令:
cd:切换目录
pwd:显示当前目录
mkdir:新建一个新的目录
rmdir:删除一个空的目录
cp:复制
touch:修改文件时间或创建新文件
rm:移除文件或目录
mv:移到文件与目录,或更名
eg: mv filename1 filename2 //将filename1 改名为filename2
mv qib.tgz ../qib.tgz //移到上一级目录
文件默认权限umask
Umask:目前用户在新建文件或目录时候的权限默认值。
默认情况如下:
a. 若用户创建“文件”则默认没有可执行(x)权限,即只有r、w这两个选项,最大为666,默认为-rw-rw-rw-
b. 若用户新建目录,默认为所有权限均开放,即为777。默认权限:drwxrwxrwx
输入umask则出现 0022 (root默认为022 一般用户默认为002)
第一个0是代表特殊权限,暂且不用管。
或者输入 umask –S 则出现u=rwx,g=rx,o=rx
(注意 S为大写)
上述的0022后三位的意思是讲,u没有被拿掉权限,g被拿掉了2这个权限,o也被拿掉了2这个权限
故查看符合类型权限输入 umask –S 会得到 u=rwx,g=rx,o=rx
所以当新建文件时,默认为 –rw-rw-rw- 又被拿掉了022即w这个权限
故为 –rw-r-r-
同理新建目录时 默认权限drwxrwxrwx 被拿掉022即为drwxr-xr-x
若想让新建的文件或目录更改权限则可以 在新建前 输入命令umask xyz (xyz代表数字)
文件名的查找
Whereis(寻找特定文件)
eg: whereis 文件或文件名
请用不同的身份(root、一般)找出ifconfig这个文件名,看看有什么不同,原因何在。
Locate
直接在后面输入“文件的部分名称”即可得到结果。
Locate keyword
Whereis/locate 查找时都是以数据库文件的内容为准,而不是硬盘,故速度比较快,但新建的文件查找不到,因为数据库默认每天更新一次。可以手动更新数据库,直接输入updatedb即可。
find
find查找以硬盘为准,速度相当慢一些。举例说明相关用法:
范例一:
查找/home 下面属于yangxh的文件文件
find /home –user yangxh
此命令将属于某个用户的所有文件都可找出来。
范例二:
查找系统中不属于任何人的文件
find / -nouser
比如系统中某个账号已删除,则系统中就会出现nouser的文件。
范例三:
找出文件名为passwd的这个文件
find / -name passwd
与时间有关的文件为了不混淆暂时忽略,有兴趣者参考linux鸟哥的基础篇Page190