Информация о симлинках Unix

KIRALEX

Новичок
Информация о симлинках Unix

Как в PHP5 узнать права на доступ к симлинку? Нужно узнать права на доступ именно самого симлинка а не файла на который он указывает

fileperms() не работает, пытается узнать права на файл на коотрый указывает симлинк(Файл вообще может не существовать).

if( is_link("/sys") ) # true =)
$l = lstat("/sys");
$l[2] # mode выдает какоето число(41453), но оно непохоже на то что надо вводить в chmod(755)
 

KIRALEX

Новичок
Автор оригинала: no_santa
симлинк - это файл

-~{}~ 11.04.10 20:39:

filectime?
Да да именно файл содержащий путь к файлу или директории.
И у этого файла есть владелец, группа и режим доступа.
Вот мне нужно узнать режим доступа.

Видимо придется както так
exec("ls -al ".$file." | awk '{print $1}'", $out);
 

fixxxer

К.О.
Партнер клуба
Re: Информация о симлинках Unix

$l[2] # mode выдает какоето число(41453), но оно непохоже на то что надо вводить в chmod(755)
The status information word st_mode has the following bits:

#define S_IFMT 0170000 /* type of file mask */
#define S_IFIFO 0010000 /* named pipe (fifo) */
#define S_IFCHR 0020000 /* character special */
#define S_IFDIR 0040000 /* directory */
#define S_IFBLK 0060000 /* block special */
#define S_IFREG 0100000 /* regular */
#define S_IFLNK 0120000 /* symbolic link */
#define S_IFSOCK 0140000 /* socket */
#define S_IFWHT 0160000 /* whiteout */
#define S_ISUID 0004000 /* set user id on execution */
#define S_ISGID 0002000 /* set group id on execution */
#define S_ISVTX 0001000 /* save swapped text even after use */
#define S_IRWXU 0000700 /* RWX mask for owner */
#define S_IRUSR 0000400 /* read permission, owner */
#define S_IWUSR 0000200 /* write permission, owner */
#define S_IXUSR 0000100 /* execute/search permission, owner */
#define S_IRWXG 0000070 /* RWX mask for group */
#define S_IRGRP 0000040 /* read permission, group */
#define S_IWGRP 0000020 /* write permission, group */
#define S_IXGRP 0000010 /* execute/search permission, group */
#define S_IRWXO 0000007 /* RWX mask for other */
#define S_IROTH 0000004 /* read permission, other */
#define S_IWOTH 0000002 /* write permission, other */
#define S_IXOTH 0000001 /* execute/search permission, other */

-~{}~ 11.04.10 23:23:

$ php -r 'print decoct(41453 & 0777) . "\n";'
755
 

KIRALEX

Новичок
Да уже не актуально, я весь скрипт переписал под ls, правда медленней работает
 
Сверху