Linux 中的任何用户帐户都可以调用命令 chmod 吗?

use*_*312 1 security permissions

由于权限是敏感的,明确是否允许特定用户运行命令很重要chmod吗?

slm*_*slm 5

不,任何用户都可以运行此命令,并且应该能够这样做。此命令是用户如何操作目录或文件上的权限位的方式,这对于使 shell 脚本可执行或使用户可能所属的组可以访问目录至关重要。

例子

  1. 一个可执行脚本

    $ ls -l reset*
    -rwxrwxr-x 1 saml saml   378 Sep  2 02:46 reset_raw_sorted.bash
    
    Run Code Online (Sandbox Code Playgroud)
  2. 访问目录

    $ ls -ld adir
    drwxrwxr-x 2 saml saml 4096 Oct 19 21:28 adir
    
    Run Code Online (Sandbox Code Playgroud)

    现在禁用此目录的执行位

    $ chmod -x adir
    $ ls -ld adir
    drw-rw-r-- 2 saml saml 4096 Oct 19 21:28 adir
    
    Run Code Online (Sandbox Code Playgroud)

    现在我不能cd到这个目录

    $ cd adir/
    bash: cd: adir/: Permission denied
    
    Run Code Online (Sandbox Code Playgroud)
  3. 控制组对文件和目录的访问

    假设我在这些组中有一个用户

    $ groups
    saml vboxusers jupiter newgrp blah
    
    Run Code Online (Sandbox Code Playgroud)

    我想让其他用户在组中访问 adir

    $ ls -ld adir
    drwx---r-x 2 saml blah 4096 Oct 19 21:28 adir
    
    Run Code Online (Sandbox Code Playgroud)

    我可以chmod用来删除其他用户权限并像这样限制对用户saml和组的访问blah

    $ chmod o-rwx,g+rwx adir
    $ ls -ld adir
    drwxrwx--- 2 saml blah 4096 Oct 19 21:28 adir
    
    Run Code Online (Sandbox Code Playgroud)