文件和目录权限chmod 更改所有者和所属组chown umask 隐藏权限lsattr_chattr

2.14 文件和目录权限chmod

chmod命令用来变更文件或目录的权限。在UNIX系统家族里,文件或目录权限的控制分别以读取、写入、执行3种一般权限来区分,另有3种特殊权限可供运用。用户可以使用chmod指令去变更文件与目录的权限,设置方式采用文字或数字代号皆可。符号连接的权限无法变更,如果用户对符号连接修改权限,其改变会作用在被连接的原始文件。

权限范围的表示法如下:

u User,即文件或目录的拥有者;

g Group,即文件或目录的所属群组;

o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;

a All,即全部的用户,包含拥有者,所属群组以及其他用户;

r 读取权限,数字代号为“4”;

w 写入权限,数字代号为“2”;

x 执行或切换权限,数字代号为“1”;

- 不具任何权限,数字代号为“0”;

s 特殊功能说明:变更文件或目录的权限。

选项:

-f 不显示错误信息

-R 递归处理,将指令目录下的所有文件以及子目录一并处理

-v 显示指令执行过程

<权限范围>+<权限设置>:开启权限范围的文件或目录的该选项权限设置;

chmod a/u/g/o +r/w/x

<权限范围>-<权限设置>:关闭权限范围的文件或目录的该选项权限设置;

chmod a/u/g/o - r/w/x

<权限范围>=<权限设置>:指定权限范围的文件或目录的该选项权限设置;

chmod a/u/g/o=rwx/rw/rx/r/...

参数:

权限模式:指定文件的权限模式;

文件:要改变权限的文件。

知识扩展和实例

Linux用 户分为:拥有者、组群(Group)、其他(other),Linux系统中,预设的情況下,系统中所有的帐号与一般身份使用者,以及root的相关信 息, 都是记录在/etc/passwd文件中。每个人的密码则是记录在/etc/shadow文件下。 此外,所有的组群名称记录在/etc/group內!

linux文件的用户权限的分析图:

例:rwx rw- r--

r=读取属性  //值=4

w=写入属性  //值=2

x=执行属性  //值=1

chmod u+x,g+w f01  //为文件f01设置自己可以执行,组员可以写入的权限

chmod u=rwx,g=rw,o=r f01

chmod 764 f01

chmod a+x f01  //对文件f01的u,g,o都设置可执行属性

文件的权限根据用户分为:所有者,属组,其他。ls -l查看文件的详细信息时,第一列第一个字符表示文件类型,后面9个字符每三位一组表示权限。最后的.(点)表示受制于selinux,selinux开启时所有创建的文件都会有.在/etc/selinux/config中关闭selinux重启后创建的文件不会有.(点)

rwxrwxrwx 777

rwxr-xr-x 755

rw-r--r-- 644

chmod 777 =chmod u=rwx,g=rwx,o=rwx =chmod a=rwx

chmod 755 = chmod u=rwx,g=rx,o=rx

chmod 644 = chmod u=rw,g=r,o=r

chmod操作只针对文件或目录本身,chmod -R 目录下的文件以及子目录批量更改此权限

2.15 更改所有者和所属组chown

chown修改文件或目录的所有者,属组。用户可以是用户名或用户id;属组可以是组名或组id;目标文件是以空格分开的要改变权限的文件列表,支持通配符。系统管理员经常使用chown命令,在将文件拷贝到另一个用户的目录下之后,让用户拥有使用该文件的权限。普通用户不能将自己的文件改变成其他的所有者,其操作权限一般为管理员。

1.命令格式:

    chown [选项]... [所有者][:[组]] 文件...

2.选项:

-R 目录下的文件以及子目录都修改

-v 显示详细的处理信息

--reference=<目录或文件> 按指定的目录或文件作为参考,把目标目录或文件的所有者,属组设置成和参考

文件或目录相同。

--from=<当前用户:当前群组> 只有当前用户和群组跟指定的用户和群组相同时才进行改变

3.使用实例:

1.更改/tmp/file文件的所有者为gavin

[root@localhost ~]# ll /tmp/file

-rw-r--r--. 1 root root 0 6月 27 19:01 /tmp/file

[root@localhost ~]# chown gavin /tmp/file

[root@localhost ~]# ll /tmp/file

-rw-r--r--. 1 gavin root 0 6月 27 19:01 /tmp/file

2.更改/tmp/file文件的属组为gavin

chown :gavin /tmp/file

3.更改/tmp/gavin目录的所有者,属组为gavin

chown gavin:gavin /tmp/gavin

4.更改/tmp/gavin目录的所有者,属组与/tmp/zhang目录相同

chown --reference=/tmp/zhang /tmp/gavin

[root@localhost ~]# ll -d /tmp/zhang /tmp/gavin

drwxr-xr-x. 2 root root 6 6月 27 19:09 /tmp/gavin

drwxr-xr-x. 3 zhang zhang 43 6月 21 16:44 /tmp/zhang

[root@localhost ~]# chown --reference=/tmp/zhang /tmp/gavin

[root@localhost ~]# ll -d /tmp/zhang /tmp/gavin

drwxr-xr-x. 2 zhang zhang 6 6月 27 19:09 /tmp/gavin

drwxr-xr-x. 3 zhang zhang 43 6月 21 16:44 /tmp/zhang

5.更改/tmp/gavin目录的所有者,属组都为gavin,并且目录下的子文件,子目录也修改

chown -R gavin:gavin /tmp/gavin

6.当所有者和属组为gavin:gavin时才会修改

chown --from=gavin:gavin root:root /tmp/zhang /tmp/gavin

[root@localhost ~]# ll -d /tmp/zhang /tmp/gavin

drwxr-xr-x. 3 gavin gavin 29 6月 27 19:12 /tmp/gavin

drwxr-xr-x. 3 zhang zhang 43 6月 21 16:44 /tmp/zhang

[root@localhost ~]# chown --from=gavin:gavin root:root /tmp/zhang /tmp/gavin

[root@localhost ~]# ll -d /tmp/zhang /tmp/gavin

drwxr-xr-x. 3 root root 29 6月 27 19:12 /tmp/gavin

drwxr-xr-x. 3 zhang zhang 43 6月 21 16:44 /tmp/zhang

chgrp命令修改文件或目录的属组:

chgrp gavin /tmp/gavin 把/tmp/gavin的属组改成gavin

chgrp -R gavin /tmp/gavin 把/tmp/gavin目录以及下面的文件,子目录的属组都改成gavin

2.16 umask

umask一般是用在初始创建一个目录或者文件的时候赋予他们的权限。

这里要说明两点:

  1、针对目录来说x权限代表可以进入该目录,所以说对于这个权限初始赋值是没什么问题的;

  2、针对文件的x的权限代表执行,这个风险太高,所以一般权限初始赋值必须去掉x的;

查看当前umask值:

[root@localhost ~]# umask

0022

上面四个数字代表是赋值初始化准备丢弃的权限。(相对应文件来说,x权限就算没说明出来丢弃一样必须默认丢弃)

目录:rwxrwxrwx 减相对应的值

文件:rw-rw-rw- 减相对应的值,(-减r或w或x仍然是-)

  第一个0代表suid 丢弃的权限;

  第二个0代表本文件/目录拥有者什么权限都没丢弃(如果是文件,x权限除外,为什么看看上面解释);

  第三个2代表本文件/目录的用户组丢弃了w权限(如果是文件那么它的x权限也丢弃);

  第三个2代表本文件/目录的其他用户能使用的权限只有有r和x(文件除外)。

  综合上面所说如果你新创建一个文件那么它的权限是:-wr-w--w-- 即是:644

  如果你新创建一个目录的话那么它的权限是:dwrxw-xw-x 即是:755

注:不要用目录777或者文件666减对应的umask值,因为当umask=0003时,666-003=663这样是不对的,应该是rw-rw-rw- 减 -------wx 等于rw-rw-r-- =664

  如果你要修改unask的值直接:

  [root@www ~]# umask 002 >>>只在当前终端下生效

2.17 隐藏权限lsattr_chattr

有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,其中一些功能是由Linux内核版本来支持的,lsattr命令是显示chattr命令设置的文件属性。

lsattr常用选项:

lsattr -R 查看目录以及目录下文件是否存在隐藏权限

lsattr -d 查看目录本身

lsattr -a 查看全部文件或目录包括隐藏的。

chattr常用选项:

chattr +i >>>增加隐藏i权限

chattr -i >>>取消隐藏i权限

chattr +a >>>增加隐藏a权限

chattr -a >>>取消隐藏a权限

i权限:

作用在文件:文件不能删除,不能移动,不能重命名,不能touch修改时间属性,不能修改内容。不能设定

硬链接,可以创建软链接。

作用在目录:不能(删除,移动,重命名,touch修改时间)此目录,可以给此目录创建软链接。目录下的子文

件,子目录不能删除,不能移动,不能重命名,可以touch修改时间属性,可以修改已存在文件

的内容,可以给文件创建软链接和硬链接。

a权限:

作用在文件:文件不能移动,不能删除,不能重命名,不能vim直接编辑修改,不能创建硬链接;可以touch

修改时间属性,可以>>追加内容,可以创建软链接。

作用在目录:目录本身不能删除移动重命名,可以创建软链接,可以touch修改目录时间;目录下的文件以及

子目录不能移动删除重命名,可以创建目录与文件,可以修改文件内容,可以touch,可以创

建软链接和硬链接

 

转载于:https://my.oschina.net/u/3803404/blog/1786052

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值