- Saved searches
- Use saved searches to filter your results more quickly
- License
- MathiasReker/php-chmod
- Name already in use
- Sign In Required
- Launching GitHub Desktop
- Launching GitHub Desktop
- Launching Xcode
- Launching Visual Studio Code
- Latest commit
- Git stats
- Files
- README.md
- About
- chmod
- Parameters
- Return Values
- Errors/Exceptions
- Notes
- See Also
- chmod
- Список параметров
- Возвращаемые значения
- Примечания
- Смотрите также
Saved searches
Use saved searches to filter your results more quickly
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.
php-chmod is a PHP library for easily changing file/directory permissions recursively.
License
MathiasReker/php-chmod
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Sign In Required
Please sign in to use Codespaces.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching GitHub Desktop
If nothing happens, download GitHub Desktop and try again.
Launching Xcode
If nothing happens, download Xcode and try again.
Launching Visual Studio Code
Your codespace will open once ready.
There was a problem preparing your codespace, please try again.
Latest commit
Git stats
Files
Failed to load latest commit information.
README.md
php-chmod is a PHP library for easily changing file/directory permissions recursively.
✅ Literal octal notation (0o) is supported
composer require mathiasreker/php-chmod
use MathiasReker\PhpChmod\Scanner; require __DIR__ . '/vendor/autoload.php'; $result = (new Scanner()) ->setDefaultFileMode(0644) ->setDefaultDirectoryMode(0755) ->setExcludedFileModes([0400, 0444, 0640]) ->setExcludedDirectoryModes([0750]) ->scan([__DIR__]) ->dryRun(); var_dump($result); // string[]
use MathiasReker\PhpChmod\Scanner; require __DIR__ . '/vendor/autoload.php'; (new Scanner()) ->setDefaultFileMode(0644) ->setDefaultDirectoryMode(0755) ->setExcludedFileModes([0400, 0444, 0640]) ->setExcludedDirectoryModes([0750]) ->scan([__DIR__]) ->fix(); // void
setDefaultFileMode sets the default file permission:
$result->setDefaultFileMode(0644);
setDefaultDirectoryMode sets the default directory permission:
$result->setDefaultDirectoryMode(0755);
setExcludedFileModes sets the allowed permissions for files. Files with these permissions will be skipped:
$result->setExcludedFileModes([0400, 0444, 0640]);
setExcludedDirectoryModes sets the allowed permissions for directories. Directories with these permissions will be skipped:
$result->setExcludedDirectoryModes([0750]);
setExcludedNames exclude files by a custom pattern. Glob and RegEx are supported:
$result->setExcludedNames(['*.rb', '*.py']);
setNames includes files by a custom pattern and exclude any other files. Glob and RegEx are supported:
setExcludedPaths excludes a list of file/directory paths:
$result->setExcludedPaths(['first/dir', 'other/dir']);
doExcludeFiles excludes all files:
doExcludeDirectories excludes all directories:
$result->doExcludeDirectories();
scan finds all the concerned files/directories:
setPaths sets paths of files/directories manually. This is an alternative to the scanner if you want to use a custom scanner:
dryRun returns an array of the concerned files/directories:
fix changes the concerned files/directories permissions to the default permission:
See the open issues for a complete list of proposed features (and known issues).
If you have a suggestion to improve this, please fork the repo and create a pull request. You can also open an issue with the tag «enhancement». Finally, don’t forget to give the project a star! Thanks again!
If you are using docker, you can use the following command to get started:
Next, access the container:
docker exec -it php-chmod bash
PHP Coding Standards Fixer:
PHP Coding Standards Checker:
composer run-script cs-check
composer run-script phpstan
It is distributed under the MIT License. See LICENSE for more information.
About
php-chmod is a PHP library for easily changing file/directory permissions recursively.
chmod
Attempts to change the mode of the specified file to that given in permissions .
Parameters
Note that permissions is not automatically assumed to be an octal value, so to ensure the expected operation, you need to prefix permissions with a zero (0). Strings such as «g+w» will not work properly.
chmod ( «/somedir/somefile» , 755 ); // decimal; probably incorrect
chmod ( «/somedir/somefile» , «u+rwx,go+rx» ); // string; incorrect
chmod ( «/somedir/somefile» , 0755 ); // octal; correct value of mode
?>?php
The permissions parameter consists of three octal number components specifying access restrictions for the owner, the user group in which the owner is in, and to everybody else in this order. One component can be computed by adding up the needed permissions for that target user base. Number 1 means that you grant execute rights, number 2 means that you make the file writeable, number 4 means that you make the file readable. Add up these numbers to specify needed rights. You can also read more about modes on Unix systems with ‘man 1 chmod‘ and ‘man 2 chmod‘.
// Read and write for owner, nothing for everybody else
chmod ( «/somedir/somefile» , 0600 );
?php
// Read and write for owner, read for everybody else
chmod ( «/somedir/somefile» , 0644 );
// Everything for owner, read and execute for others
chmod ( «/somedir/somefile» , 0755 );
// Everything for owner, read and execute for owner’s group
chmod ( «/somedir/somefile» , 0750 );
?>
Return Values
Returns true on success or false on failure.
Errors/Exceptions
Upon failure, an E_WARNING is emitted.
Notes
Note:
The current user is the user under which PHP runs. It is probably not the same user you use for normal shell or FTP access. The mode can be changed only by user who owns the file on most systems.
Note: This function will not work on remote files as the file to be examined must be accessible via the server’s filesystem.
See Also
- chown() — Changes file owner
- chgrp() — Changes file group
- fileperms() — Gets file permissions
- stat() — Gives information about a file
chmod
Осуществляет попытку изменения режима доступа указанного файла на режим, переданный в параметре mode .
Список параметров
Обратите внимание, что значение параметра mode не переводится автоматически в восьмеричную систему счисления, поэтому, чтобы удостовериться в том, что режим был установлен верно, предваряйте нулем (0) значение передаваемое в параметре mode . Строки, такие как «g+w», не будут работать должным образом.
chmod ( «/somedir/somefile» , 755 ); // десятичное, скорее всего, указано неверно
chmod ( «/somedir/somefile» , «u+rwx,go+rx» ); // строка, неверный способ
chmod ( «/somedir/somefile» , 0755 ); // восьмеричное, верный способ
?>?php
Значение параметра mode состоит из трех восьмеричных чисел, определяющих уровень доступа для владельца файла, для группы, в которую входит владелец, и для других пользователей, соответственно. Число, определяющее уровень пользователя, может быть вычислено путем суммирования значений, определяющих права: 1 — доступ на выполнение, 2 — доступ на запись, 4 — доступ на чтение. Сложите эти числа для указания нужного права доступа. Более подробно о системе прав в системах Unix вы можете узнать с помощью команд ‘man 1 chmod‘ и ‘man 2 chmod‘.
// Доступ на запись и чтение для владельца, нет доступа для других
chmod ( «/somedir/somefile» , 0600 );
?php
// Доступ на запись и чтение для владельца, доступ на чтение для других
chmod ( «/somedir/somefile» , 0644 );
// Полный доступ для владельца, доступ на чтение и выполнение для других
chmod ( «/somedir/somefile» , 0755 );
// Полный доступ для владельца, доступ на чтение и выполнение для группы владельца
chmod ( «/somedir/somefile» , 0750 );
?>
Возвращаемые значения
Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Примечания
Замечание:
Текущим пользователем является пользователь, от имени которого выполняется PHP. Возможно, что это будет не тот пользователь, под именем которого вы получаете доступ к командной оболочке или учетной записи FTP. На большинстве систем режим доступа к файлу может быть изменен только его владельцем.
Замечание: Эта функция неприменима для работы с удаленными файлами, поскольку файл должен быть доступен через файловую систему сервера.
Замечание:
При включенном безопасный режим PHP проверяет имеет ли файл или директория, с которой вы работаете, такой же UID (id владельца), как и выполняемый скрипт. Кроме того, вы не можете устанавливать SUID, SGID и «липкие» (sticky) биты.
Смотрите также
- chown() — Изменяет владельца файла
- chgrp() — Изменяет группу владельцев файла
- fileperms() — Возвращает информацию о правах на файл
- stat() — Возвращает информацию о файле