L8 文件和目录权限chmod,更改所有者和所属组chown,umask,隐藏权限lsattr/chattr

来源:互联网 发布:cnc编程要学多久 编辑:程序博客网 时间:2024/05/20 06:54

8.1 文件和目录权限

当运行ls -l时会显示详细信息


第1列,包含的东西有该文件类型和所属主、所属组以及其他用户对该文件的权限。第一列共11位有的文件是10位,没有最后面的一位。 

其中第一位用来描述该文件的类型。上图中看到的类型有 ‘d’, ‘-‘ ,其实除了这两种外还有 ‘l’, ‘b’, ‘c’, ‘s’ 等。

‘d’ 表示该文件为目录;

‘-‘ 表示该文件为普通文件;

‘l’ 表示该文件为链接文件(linux file),上边提到的软链接即为该类型;

b’ 表示该文件为块设备,比如 /dev/sda 就是这样的文件。

‘c’ 表示该文件为串行端口设备,例如键盘、鼠标。

‘s’ 表示该文件为套接字文件(socket),用于进程间通信。

后边的9位,每三个为一组。均为rwx 三个参数的组合。其中r 代表可读,w代表可写,x代表可执行。前三位为所属主(user)的权限,中间三位为所属组(group)的权限,最后三位为其他非本群组(others)的权限。

‘drwx--------.’ ,它代表的意思是,该文件为目录,文件拥有者可读可写可执行,文件所属组对其不可读不可写不可执行,其他用户对其不可读不可写不可执行。对于一个目录来讲,打开这个目录即为执行这个目录,所以任何一个目录必须要有x权限才能打开并查看该目录。例如一个目录的属性为 ‘drwxr–r–.’ 其所属主为root,那么除了root外的其他用户是不能打开这个目录的。

关于第一列的最后一位的 .,ls把selinux或者acl的属性加进来了,当文件或者目录只使用了selinux context的属性,这里是一个点。如果设置了acl,后面将是一个加号 ‘+’

第2列,表示为链接占用的节点(inode), 为目录时,通常与该目录底下还有多少目录有关系。

第3列,表示该文件的所属主。

第4列,表示该文件的所属组。

第5列,表示该文件的大小。

第6列、第7列和第8列为该文件的最近的修改日期,分别为月份日期以及时间,也就是所谓的mtime.

第9列,文件名。

8.2 更改文件的权限

8.2.1 改变用户对文件的读写执行权限 chmod(change mode)

在linux中为了方便更改这些权限,linux使用数字去代替rwx, 具体规则为 ‘r’ 等于4, ‘w’ 等于2, ‘x’ 等于1, ‘-‘ 等于0.

‘-rwxrwx—’ 用数字表示就是 ‘770’, 具体是这样来的: ‘rwx’ = 4+2+1=7; ‘rwx’ = 4+2+1=7; ‘- - -‘ = 0+0+0=0.

chmod 语法: chmod [-R] xyz 文件名 (这里的xyz,表示数字)

‘-R’ 选项作用同chown,级联更改。

值得提一下的是,在linux系统中,默认一个目录的权限为 755,而一个文件的默认权限为644.

如果你创建了一个目录,而该目录不想让其他人看到内容,则只需设置成 ‘rwxr—–’ (740) 即可。

’chmod’ 还支持使用rwx的方式来设置权限。

基本上就九个属性分别是(1)user (2)group (3)others, 我们可以使用u, g, o 来代表它们三个的属性,此外, a 则代表 all 亦即全部。

还可以针对u, g, o, a增加或者减少某个权限(读,写,执行),


8.2.2 更改文件的所属主chown(change own)

 chown [ -R ] 账户名 文件名 chown [ -R ] 账户名:组名 文件名这里的-R选项只作用于目录,作用是级联更改,即不仅更改当前目录,连目录里的目录或者文件全部更改。
‘chown -R user1:testgroup’ 把test目录以及目录下的文件都修改成所属主为user1, 所属组为testgroup.


8.2.3 更改所属组 chgrp

‘groupadd’ 命令,其含义为增加一个用户组。

‘chgrp’命令也可以更改目录的所属组,但是只能更改目录本身,而目录下面的目录或者文件没有更改,要想级联更改子目录以及子文件,

chgrp -R testgroup 文件名

8.3 命令: umask

默认情况下,目录权限值为755, 普通文件权限值为644, 那么这个值是由谁规定呢?追究其原因就涉及到了 ‘umask’.

umask语法: umask  xxx (这里的xxx代表三个数字)

查看umask值只要输入 ‘umask’ 然后回车。

umask预设是0022,其代表什么含义?先看一下下面的规则:


1)若用户建立为普通文件,则预设 ‘没有可执行权限’, 只有’rw’两个权限。最大为666 (‘-rw-rw-rw-‘).


2)若用户建立为目录,则预设所有权限均开放,即777 (‘drwxrwxrwx’).


umask数值代表的含义为,上边两条规则中的默认值(文件为666,目录为777)需要减掉的权限。

所以目录的权限为 'rwxrwxrwx' - '----w--w-' = 'rwxr-xr-x',普通文件的权限为 'rw-rw-rw-' - '----w--w-' = 'rw-r--r--'. 

umask的值是可以自定义的,比如设定umask 为 002,再创建目录或者文件时,

默认权限分别为 'rwxrwxrwx' - '-------w-' = 'rwxrwxr-x' 和 'rw-rw-rw-' - '-------w-' = 'rw-rw-r--'.


8.4 隐藏权限lsattr/chattr

命令 : chattr (change attribute)

语法: chattr  [+-=][ASaci [文件或者目录名]‘+-=’ : 分别为增加、减少、设定‘A’ : 增加该属性后,文件或目录的atime将不可被修改;‘S’ : 增加该属性后,会将数据同步写入磁盘中;‘a’ : 增加该属性后,只能追加不能删除,非root用户不能设定该属性;‘c’ : 自动压缩该文件,读取时会自动解压;‘i’ : 增加后,使文件不能被删除、重命名、设定链接接、写入、新增数据;
增加 ‘i’ 权限后,即使是root账户也不能创建或删除文件。



增加 ‘a’ 权限后,只可以在里面创建文件,而不能删除文件。文件同样可以适用这些权限。



命令 : lsattr(list attribute)
该命令用来读取文件或者目录的特殊权限,语法为 lsattr  [-aR] [文件/目录名]‘-a’ : 类似与ls 的-a 选项,即连同隐藏文件一同列出;‘-R’ : 连同子目录的数据一同列出



阅读全文
0 0
原创粉丝点击