zoukankan      html  css  js  c++  java
  • linux chmod命令和chown命令

    一、chmod及文件权限

    1、了解文件权限

    root账户新建一个目录permission,在该目录新建一个文件file,通过ll就可以查看其权限。

    root@development:~# cd permission/
    root@development:~/permission# touch file
    root@development:~/permission# ls
    file
    root@development:~/permission# ll
    total 8
    drwxr-xr-x  2 root root 4096 Mar 19 00:33 ./
    drwx------ 25 root root 4096 Mar 19 00:33 ../
    -rw-r--r--  1 root root    0 Mar 19 00:33 file
    root@development:~/permission# 

    可见一共有十位数,其中第一个-代表的是类型,比如./的类型是d就是目录。

    从第二个开始,依次三个rw-代表的是所有者(user)拥有的权限。

    再依次三个r--代表的是群组(group)拥有的权限。

    最后三个r--代表的是其他人(other)拥有的权限

    rwx-解释如下:

    r:表示文件可以被读(read)

    w:表示文件可以被写(write)

    x:表示文件可以被执行,目录的话可以被搜索。

    -:表示相应的权限还没有被授予

    2、数字表示rwx

    r ----------4

    w ----------2

    x ----------1

    - ----------0

    原理:将rwx看成是二进制的数,有用1表示,没有用0表示,那么rwx r-x r--就可以表示成:111 101 100,将其转换成为一个十进制数就是:754。

    3、权限操作

    + 表示添加权限

    - 表示删除权限

    = 重置权限

    4、常见权限

    -rw------- (600) 只有所有者才有读和写的权限。

    -rw-r--r-- (644) 只有所有者才有读和写的权限,群组和其他人只有读的权限。

    -rw-rw-rw- (666)每个人都有读写的权限

    -rwx------ (700) 只有所有者才有读,写和执行的权限。

    -rwx--x--x (711) 只有所有者才有读,写和执行的权限,群组和其他人只有执行的权限。

    -rwxr-xr-x  (755) 只有所有者才有读,写,执行的权限,群组和其他人只有读和执行的权限。

    -rwxrwxrwx (777) 每个人都有读,写和执行的权限

    5、目录相关的文件权限

    如果有文件夹/a/b/c

    查看权限

    执行ls -l /a/b查看的并不是b的权限,而是c的权限。

    • ls -l /a查看的是b文件的权限
    • ls -l /a/b 查看的是c文件的权限
    • ls -l /a/b/c 查看的是c文件的权限

    补充内容:知道这点很重要,举一个实际应用中的例子。

    我曾在ssh登录时日志报错:/var/empty/sshd must be owned by root and not group or world-writable。

    此时我就要看/var/empty/sshd的权限了。

    用#ll /var/empty/sshd去查结果是total 0,代表里面没有文件。

    而真正应该用的命令是#ll /var/empty,去查看它的上级目录。

    然后就可以看到结果是:

    total 0

    drwxrwxrwx. 2 root root 6 May 13 03:41 sshd

    修改权限和查看权限不同

    • chmod 700 /a 修改的是a文件的权限
    • chmod 700 /a/b 修改的是b文件的权限
    • chmod 700 /a/b/c修改的是c文件的权限。

    补充内容:知道这点修改权限和查看权限不同也很重要,还是上面的例子。

    我要修改/var/empty/sshd这个目录的权限,我需要用

    #chmod 711 /var/empty/sshd去修改。

    查看修改好的权限用#ll /var/empty查看。

    6、修改文件权限

    先举例:

    # chmod o+w file:表示给其他人授予写file这个文件的权限

    # chmod go-rw file:表示删除群组和其他人对file这个文件的读和写的权限

    # chmod go-w+x mydir:拒绝组成员和其他人创建或删除mydir(go-w)中文件的权限,允许组成员和其他人搜索mydir,或在路径名(go+x)中使用它,等价于

    chmod  g-w  mydir
    chmod  o-w  mydir
    chmod  g+x  mydir
    chmod  o+x  mydir

    解释:
    u:代表文件所有者(user)

    g:代表所有者所在的群组(group)

    o:代表其他人,但不是u和g(other)

    a:a和一起指定ugo效果一样

    7、修改目录权限

    如果要一次修改某个目录下所有文件的权限,包括子目录中的文件权限。需要使用-R参数。

    # chmod 700 /srv/file #仅把file目录的权限设置为700
    # chmod -R 744 /srv/file #将整个/srv/file目录和其子目录中所有文件权限设置为744

    二、chowm和文件所有权

    文件和目录权限可通过chomd来修改,文件和目录的所有权及所属用户组也可通过chown来修改。

    root账户新建一个目录permission,在该目录新建一个文件file,通过ll就可以查看其权限。 

    [root@yl-web-test ~]# mkdir permission
    [root@yl-web-test ~]# cd permission/
    [root@yl-web-test permission]# ls
    [root@yl-web-test permission]# touch file
    [root@yl-web-test permission]# ll
    total 0
    -rw-r--r--. 1 root root 0 Aug  6 09:17 file

    标红的root root表示file文件的所属用户组为root,所有者为root。

    chown语法:

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

    接下来简单介绍如何修改文件的所属用户组和所有者。

    1、修改file文件的所有者为lxy

    [root@yl-web-test permission]# chown lxy file
    [root@yl-web-test permission]# ll
    total 0
    -rw-r--r--. 1 lxy root 0 Aug  6 09:17 file

    2、修改file文件的用户组为lxy

    [root@yl-web-test permission]# chown root file
    [root@yl-web-test permission]# ll
    total 0
    -rw-r--r--. 1 root root 0 Aug  6 09:17 file
    [root@yl-web-test permission]# chown :lxy file
    [root@yl-web-test permission]# ll
    total 0
    -rw-r--r--. 1 root lxy 0 Aug  6 09:17 file

    3、同时修改文件的所有者和用户组

    [root@yl-web-test permission]# chown :root file
    [root@yl-web-test permission]# ll
    total 0
    -rw-r--r--. 1 root root 0 Aug  6 09:17 file
    [root@yl-web-test permission]# chown lxy:lxy file
    [root@yl-web-test permission]# ll
    total 0
    -rw-r--r--. 1 lxy lxy 0 Aug  6 09:17 file

    4、同时修改文件夹和其子文件的所属用户组和所有者,需要用-R参数。

    假设file是一个目录,里面有一个a.txt的文件。它们的所有者和用户组如下,都是root:

    [root@yl-web-test permission]# cd file/
    [root@yl-web-test file]# touch a.txt
    [root@yl-web-test file]# ll
    total 0
    -rw-r--r--. 1 root root 0 Aug  6 09:40 a.txt
    [root@yl-web-test file]# cd ..
    [root@yl-web-test permission]# ll
    total 0
    drwxr-xr-x. 2 root root 18 Aug  6 09:40 file

    现将file目录和里面的a.txt文件的所有者和用户组都改为lxy,如下

    [root@yl-web-test permission]# chown -R lxy:lxy file
    [root@yl-web-test permission]# ll
    total 0
    drwxr-xr-x. 2 lxy lxy 18 Aug  6 09:40 file
    [root@yl-web-test permission]# cd file/
    [root@yl-web-test file]# ll
    total 0
    -rw-r--r--. 1 lxy lxy 0 Aug  6 09:40 a.txt

    本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/4350212.html有问题欢迎与我讨论,共同进步。

  • 相关阅读:
    【模板】Sparse-Table
    UVa 11235 Frequent values
    【模板】树状数组
    UVa 1428 Ping pong
    数学技巧
    UVa 11300 Spreading the Wealth
    UVa 11729 Commando War
    UVa 11292 Dragon of Loowater
    POJ 3627 Bookshelf
    POJ 1056 IMMEDIATE DECODABILITY
  • 原文地址:https://www.cnblogs.com/starof/p/4350212.html
Copyright © 2011-2022 走看看