lchgrp() 函数改变一个符号链接的组所有权。
与 chgrp() 函数不同,lchgrp() 操作的是符号链接本身,而不是链接指向的文件。
lchgrp ( string $filename , string|int $group ) : bool
| 参数 | 类型 | 说明 |
|---|---|---|
filename |
字符串 | 符号链接的路径 |
group |
字符串或整数 | 组名称或组ID(GID) |
成功时返回 true,失败时返回 false。
此示例需要运行在Linux/Unix系统上,并且脚本需要足够的权限。
<?php
$link = 'symlink_to_file';
$target = 'actual_file.txt';
// 创建符号链接
symlink($target, $link);
// 改变符号链接的组为 'www-data'
if (lchgrp($link, 'www-data')) {
echo "符号链接的组已成功改变";
} else {
echo "改变符号链接的组失败";
}
// 获取符号链接的组信息
$linkGroup = filegroup($link);
$targetGroup = filegroup($target);
echo "符号链接的组ID: " . $linkGroup . "\\n";
echo "目标文件的组ID: " . $targetGroup . "\\n";
// 清理
unlink($link);
?>
<?php
$link = 'my_symlink';
// 假设组ID 1001 存在
if (lchgrp($link, 1001)) {
echo "使用GID改变符号链接组成功";
} else {
echo "操作失败,请检查权限和组ID是否存在";
}
?>