一、文件属性
每一行代表对应文件或目录的详细信息。从左到右具体的含义是文件属性、文件数、拥有者、所属的组、文件大小、建立月份、建立日期、建立年份或时间、以及文件名。其中“建立年份或时间”字段,如果文件是今年建立的,则显示具体时间,如果是往年建立的,则显示年份。
文件属性由10个字母组成,其中第一个字母表示文件类型,后九个字母分为三组,表示文件的访问权限。
文件属性的第一个字母是类型标识,用来说明文件的类型。在Linux操作系统中,共有七种文件类型,分别是:
d (directory) 目录文件。
l (link) 符号链接。
s (socket) 套接字文件。
b (block)块设备文件,二进制文件。
c (character)字符设备文件。
p (pipe) 命名管道文件。
- 普通文件,或者更准确地说,不属于以上几种类型的文件。
用户对文件的操作权限分为读、写和执行三种,分别用r、w、x表示。若用户没有某个权限,则在相应权限位用“-”占位,代表无此权限。
若文件具有x属性,是可执行的文件。具有x属性的文件一般是二进制程序文件或可执行的脚本文件。若目录具有x属性,则表示允许打开该目录中的文件,并且可用cd命令进入该目录。
只有root用户和文件拥有者才可以修改文件访问权限。
二、修改文件属性
1.修改文件访问权限的chmod命令
(1)绝对权限方法
文件的九位权限除了可用r、w、x来表示外,还可用一个3位的十进制数字来表示。
比如644,其百位上的数字代表文件拥有者的权限,十位上的数字代表所属用户组的权限,个位上的数字代表其他用户对该文件的权限。这种采用数字来表示权限的方法,称为绝对权限表示法也称为数字权限表示法。
由于用户的权限是用rwx来表示的,没有的权限对应位置上用“-”表示,有权限的位置可用1表示,没有权限的位置用0来表示,这样就会形成一个3位的二进制编码,然后将该二进制数转换成对应的十进制数,这样就得到一个0~7的数,从而就可以实现十进制数来表示用户对文件的权限。
具体做法是将r的对应值设为4,w的对应值设为2,x的对应值设为1。
命令格式:chmod [选项] 绝对权限值 要修改的文件或目录名称
chmod命令常用的选项是-R,其功能是可以递归设置指定目录下的全部文件(包括子目录和子目录中的文件)的权限。
〖例3.18〗修改当前目录下test文件的访问权限使所有用户对该文件均有读写权限。
#chmod 666 test
(2)相对权限方法
使用相对权限方法修改文件权限,命令格式:
chmod 修改对象 运算符 用户权限 要修改的文件或目录名称
其中修改对象位置上可以是u(文件拥有者)、g(同组用户)、o(其他用户)、a(全体用户)的任意组合。运算符位置上可以是+(添加)、-(删除)、=(只赋值)中的任意一个。
用户权限上写的是r、w、x的任意组合。
例如,对文件test的组用户添加写权限,则执行命令:chmod g + w aaa。
〖例3.19〗修改当前目录下test文件的访问权限使所有用户对该文件均有读写权限。
#chmod a+rw test
或者
#chmod ugo+rw test
〖例3.20〗增加组用户对当前目录下file文件的写权限,取消其他用户对file文件的读权限。
#chmod g+w file
#chmod o-r file
如果修改前file文件的权限是644,那么修改后file文件权限是660。
2.修改文件所有者的chown命令
文件或目录的创建者,一般是该文件或目录的拥有者,对文件具有最高的使用权。
root用户可以将一个文件或目录的拥有权转让给其他用户,使其他用户成为该文件或目录的拥有者。
通过chown命令还可以修改文件所属的组。
命令格式:chown [选项] 新所有者.新用户组 要修改的文件或目录名称
chown命令常用的选项是-R,其功能是可以递归设置指定目录下的全部文件(包括子目录和子目录中的文件)的所属关系。
〖例3.21〗将当前目录下的file文件的拥有者修改为tom,所属组改为tom组。
#chown tom.tom file 或者
#chown tom:tom file
〖例3.22〗将当前目录下的file文件的所属组改为tom组。
#chown .tom file 或者
#chown :tom file
注意“.”或“:”的作用。
3.提升用户权限
(1)使用su命令切换用户
在su命令后加用户名称,可以切换系统当前用户身份。在用户切换的时候,从root用户向普通用户可以直接进行切换,反之则需要root账号密码。这是因为root用户是系统中权限最高的用户,可以切换到任意身份不需要密码。普通用户之间切换需要密码验证。
在切换用户身份时,通常需要增加“-”选项,例如#su - tom命令表示切换到tom用户。“-”选项表示:切换用户时,使环境变量(home,Shell,user,logname,path等)和欲切换的用户相同,不使用该选项则取得的只是用户的临时权限。
(2)使用sudo命令提升权限
root用户将普通用户的名字、可以执行的特定命令、按照哪种用户或用户组的身份执行等信息,登记在/etc/sudoers文件中,即完成对该用户的授权(此时该用户称为“sudoer”)。
sudoer用户需要取得特殊权限时,可在命令前加上“sudo”,此时sudo将会询问该用户自己的密码(以确认终端机前的是该用户本人),回答后系统即会将该命令的进程以超级用户的权限运行,对于普通用户来讲不需要知道root用户的密码,这样可以提高系统的安全性。
〖例3.23〗root用户需要创建一个普通用户teacherli具有管理员权限,并执行系统的日常维护工作,则可以把teacherli用户设为sudoer。具体方法如下:
第1步:查看是否已经安装了sudo
#rpm –qa | grep sudo
sudo-1.8.6p7-16.el7.x86_64
如果没有安装sudo,可以在系统光盘中找到sudo的rpm包进行安装:
#rpm –ivh /media/Packages/sudo-1.8.6p7-16.el7.x86_64
第2步:编辑/etc/sudoers文件
在文件的最后插入:
teacherli ALL=(ALL) ALL
保存退出。此后,以teacherli登录系统,就可以以sudo 命令的方式进行系统的管理了。
例:teacherli向系统添加用户lihua
用户teacherli做为一个普通用户账号,是没有权限执行useradd命令向系统添加用户的,但是做为一个sudoer则可以通过使用$sudo useradd lihua然后在系统提示“[sudo] password for teacherli:”时输入teacherli的口令确认后即可。
如果需要指定某个用户只能执行指定的命令,则可以在/etc/sudoers文件中按照如下格式插入一行:
用户账户名 可执行的命令列表
例如,让john用户只具有执行添加用户组的命令权限。
john localhost=/usr/sbin/goupadd
项目二:文件属性的读取和修改
操作过程:
以dguser0102账号登录系统
$touch /tmp/ourfile //此时若其他用户修改文件ourfile,则系统会报“文件只读”,而不能完成修改功能。
$chmod 666 /tmp/ourfile //修改ourfile文件的访问权限。