chmod - changes the permissions on a list of files

- NAME
- SYNOPSIS
- DESCRIPTION

# NAME

chmod - changes the permissions on a list of files

# SYNOPSIS

chmod LIST

# DESCRIPTION

Changes the permissions of a list of files. The first element of the list must be the numerical mode, which should probably be an octal number, and which definitely should not be a string of octal digits: `0644` is okay, `'0644'` is not. Returns the number of files successfully changed. See also oct in the perlfunc manpage, if all you have is a string.

        $cnt = chmod 0755, 'foo', 'bar';
        chmod 0755, @executables;
        $mode = '0644'; chmod $mode, 'foo';      # !!! sets mode to
                                                 # --w----r-T
        $mode = '0644'; chmod oct($mode), 'foo'; # this is better
        $mode = 0644;   chmod $mode, 'foo';      # this is best

On systems that support fchmod, you might pass file handles among the files. On systems that don't support fchmod, passing file handles produces a fatal error at run time.

        open(my $fh, "<", "foo");
        my $perm = (stat $fh)[2] & 07777;
        chmod($perm | 0600, $fh);

You can also import the symbolic `S_I*` constants from the Fcntl module:

        use Fcntl ':mode';

        chmod S_IRWXU|S_IRGRP|S_IXGRP|S_IROTH|S_IXOTH, @executables;
        # This is identical to the chmod 0755 of the above example.

chmod - changes the permissions on a list of files