chngmod linux code example
Example 1: bash how do permissions work
Decimal Binary Permission Permission meaning
7 111 rwx read, write, and execute
6 110 rw- read and write
5 101 r-x read and execute
4 100 r-- read only
3 011 -wx write and execute
2 010 -w- write only
1 001 --x execute only
0 000 --- none
Example 2: linux chmod permissions
The three rightmost digits define permissions for the:
file user, the group, and others.
7 read, write and execute rwx 111
6 read and write rw- 110
5 read and execute r-x 101
4 read only r-- 100
3 write and execute -wx 011
2 write only -w- 010
1 execute only --x 001
0 none --- 000
Example 3: running chmod command using code
private function chmod_r($dir, $permission)
{
$dp = opendir($dir);
while($file = readdir($dp))
{
if (($file == ".") || ($file == "..")) continue;
$path = $dir . DIRECTORY_SEPARATOR . $file;
$is_dir = is_dir($path);
$this->set_perms($path, $is_dir, $permission);
if($is_dir) {
$this->chmod_r($path, $permission);
}
}
closedir($dp);
}
private function set_perms($file, $is_dir, $permission)
{
$perm = substr(sprintf("%o", fileperms($file)), -4);
$dirPermissions = $permission;
$filePermissions = $permission;
if($is_dir && $perm != $dirPermissions){
chmod($file, octdec($dirPermissions));
}
else if(!$is_dir && $perm != $filePermissions){
chmod($file, octdec($filePermissions));
}
flush();
}
$permission = '0777';
$dir = storage_path('framework');
$this->chmod_r($dir, $permission);