На папку выставляю chmod -R 777 /samba/cat
один или два раза в сутки рекурсия слетает, тоесть файлы которые находятся в корневом каталоге можно переименовать, переместить, удалить, а файлы с подкаталогов с подкаталогов можно только прочитать. После выполнения команды chmod -R 777 /samba/cat все снова часов на 10 проблем никаких - каталог юзается весьма активно. Права доступа к файлам в подкаталогах пропадают у все - и у создателя и у пользователя. Помогите, пожалуйста, решить проблему.
https://sysadm.equoria.com/index.php/Samba_-_Using_Group_Per...А вообще - 777 очень плохие права. Даже у /tmp можно ставить только 1777.
> https://sysadm.equoria.com/index.php/Samba_-_Using_Group_Per...
> А вообще - 777 очень плохие права. Даже у /tmp можно ставить
> только 1777.а чем плохи права 777 ??? и почему 1777 лучше ?? мне нужно что шары без проблем использовались без слетания прав и рекурсии .... а какие циферки будут - мне без разницы ...
> а чем плохи права 777 ??? и почему 1777 лучше ?? мне
> нужно что шары без проблем использовались без слетания прав и рекурсии
> .... а какие циферки будут - мне без разницы ...плохо то, что вы нихера непонимаете того, о чем говорите
чем плохи 777 права - написано в любой книжке о *nix/*nux, также права детально описаны в манах любой оси, надо просто взять и прочитатьа рекурсия слетела у вас где-то в другом месте ... потому-что -R это не рукурсия, а иерархия.
hint: если права меняются, значит их ктото меняет ...
> а рекурсия слетела у вас где-то в другом месте ...
> потому-что -R это не рекурсия, а иерархия.Хуерархия, именно рекурсия!
int do_change(char *name) {mode_t m;
DIR *dirp;
struct dirent *entp;
char *namp;
if (lstat(name, &st)) {
perror(name);
return(1);
}
if (S_ISLNK(st.st_mode) && rflag)
return(0);
if (!symbolic)
m = new_mode;
else
m = parsemode(symbolic, st.st_mode);
if (chmod(name, m)) {
perror(name);
errors = 1;
} else
errors = 0;
if (S_ISDIR(st.st_mode) && rflag) { /* rflag - это "-R" */
if (!(dirp = opendir(name))) {
perror(name);
return(1);
}
if (name != path)
strcpy(path, name);
namp = path + strlen(path);
*namp++ = '/';
while (entp = readdir(dirp))
if (entp->d_name[0] != '.' || (entp->d_name[1] && (entp->d_name[1] != '.' || entp->d_name[2]))) {
strcpy(namp, entp->d_name);
errors |= do_change(path); /* Рекурсивно рекурсируем рекурсию */
}
closedir(dirp);
*--namp = '\0';
}
return(errors);
}
>> а рекурсия слетела у вас где-то в другом месте ...
>> потому-что -R это не рекурсия, а иерархия.
> Хуерархия, именно рекурсия!-R Change the modes of the file hierarchies rooted in the files
instead of just the files themselves.устройство файловой системы и алгоритм утилит ее обслуживающих это кагбыыыы разные вещи ))
>>> а рекурсия слетела у вас где-то в другом месте ...
>>> потому-что -R это не рекурсия, а иерархия.
>> Хуерархия, именно рекурсия!
> -R Change the modes of the file
> hierarchies rooted in the files
> instead of just the
> files themselves.Какие-то дебилы писали, -R именно меняет каждый файл!
Ибо это следует из устройства самой UNIX, где файлы НЕ динамически связанные объекты,
и права могут наследоваться только при создании (или доступе см. NFS/CIFS/AFS,..., но это уже другая сказка).Вот правильный, феншуйный, POSIXовый ман!
http://pubs.opengroup.org/onlinepubs/7990989775/xcu/chmod.html-R
Recursively change file mode bits. For each file operand that names a directory,
chmod will change the file mode bits of the directory and all files in the file hierarchy below it.
>>>> а рекурсия слетела у вас где-то в другом месте ...
>>>> потому-что -R это не рекурсия, а иерархия.
>>> Хуерархия, именно рекурсия!
>> -R Change the modes of the file
>> hierarchies rooted in the files
>> instead of just the
>> files themselves.
> Какие-то дебилы писали, -R именно меняет каждый файл!именно, из того что меняется каждый файл не следует то, что меняется он по рекурсивному алгориму.
> Ибо это следует из устройства самой UNIX, где файлы НЕ динамически связанные
> объекты,
> и права могут наследоваться только при создании (или доступе см. NFS/CIFS/AFS,..., но
> это уже другая сказка).файловая система это физическая структура (иерархия в нашем случае)
а рекурсия это метод (алгоритм, способ, методика) ее обслуживанияобход иерархии осуществляется рекурсивным алгоритмом
и пользователя собственно не должен волновать алгоритм, а лишь понимание лишь того, с чем он работает, а работает он с иерархией.
> Вот правильный, феншуйный, POSIXовый ман!
> http://pubs.opengroup.org/onlinepubs/7990989775/xcu/chmod.html
> -R
> Recursively change file mode bits. For each file operand that names a
> directory,
> chmod will change the file mode bits of the directory and all
> files in the file hierarchy below it.
Что собственно и написано ...-R
Recursively change file mode bits. For each file operand that names a directory, chmod will change the file mode bits of the directory and all files in the file hierarchy below it.
> обход иерархии осуществляется рекурсивным алгоритмомПридумай иной метод! :)
В общем флаг -R придумали лохи, надо было делать -H
> и пользователя собственно не должен волновать алгоритм,
> а лишь понимание лишь того, с чем он работает, а работает он с иерархией.Ну... теперь пошли отмазки о том, что сантехник не должен знать из чего делают толчки...
Кстати, чмод не ходит по ссылкам на каталоги, а для других утилит это часть иерархии.КОРОЧА ТАК!
У чмода есть флаг -R и означает он, сокращенно, Recursively, смирись это судьба! =)
>> обход иерархии осуществляется рекурсивным алгоритмом
> Придумай иной метод! :)вот именно - тут важно понимать разницу между "предмет" и "метод" ))
> В общем флаг -R придумали лохи, надо было делать -H
>> и пользователя собственно не должен волновать алгоритм,
>> а лишь понимание лишь того, с чем он работает, а работает он с иерархией.
> Ну... теперь пошли отмазки о том, что сантехник не должен знать из
> чего делают толчки...сантехник как раз знает из чего толчок )) а вот технология отливки керамической массы
его не волнует по определению ))
> Кстати, чмод не ходит по ссылкам на каталоги, а для других утилит
> это часть иерархии.-H If the -R option is specified, symbolic links on the command line
are followed. (Symbolic links encountered in the tree traversal
are not followed by default.)
> КОРОЧА ТАК!
> У чмода есть флаг -R и означает он, сокращенно, Recursively, смирись это
> судьба! =)
> -H
> If the -R option is specified, symbolic links on the command line
> are followed. (Symbolic links encountered in the tree traversal
> are not followed by default.)Не вижу! (с) :-P
http://pubs.opengroup.org/onlinepubs/7990989775/xcu/chmod.html
> На папку выставляю chmod -R 777 /samba/cat
> один или два раза в сутки рекурсия слетает, тоесть файлы которые находятся
> в корневом каталоге можно переименовать, переместить, удалить, а файлы с подкаталогов
> с подкаталогов можно только прочитать. После выполнения команды chmod -R 777
> /samba/cat все снова часов на 10 проблем никаких - каталог юзается
> весьма активно. Права доступа к файлам в подкаталогах пропадают у все
> - и у создателя и у пользователя. Помогите, пожалуйста, решить проблему.Отдаю должное отцам программммм (pavlinux и Pahanivo), но очевидно, что решение ПОСТАВЛЕННОГО вопроса сводится к автоматической замене файлов сервисом, который их обрабатывает. Смотрим кроны, логротайты, сам сервис, и да -777 - это плохо.
>> На папку выставляю chmod -R 777 /samba/cat
>> один или два раза в сутки рекурсия слетает, тоесть файлы которые находятся
>> в корневом каталоге можно переименовать, переместить, удалить, а файлы с подкаталогов
>> с подкаталогов можно только прочитать. После выполнения команды chmod -R 777
>> /samba/cat все снова часов на 10 проблем никаких - каталог юзается
>> весьма активно. Права доступа к файлам в подкаталогах пропадают у все
>> - и у создателя и у пользователя. Помогите, пожалуйста, решить проблему.
> Отдаю должное отцам программммм (pavlinux и Pahanivo), но очевидно, что решение ПОСТАВЛЕННОГО
> вопроса сводится к автоматической замене файлов сервисом, который их обрабатывает. Смотрим
> кроны, логротайты, сам сервис, и да -777 - это плохо.Это решается зондом в конфиге самбы (на шару)
restrict anonymous = 0
guest ok = yes
guest account = root
force user = root
force group = root
create mask = 0777
force create mode = 0777
force directory mode = 0777
directory security mask = 0000
directory security mode = 7777
> restrict anonymous = 0
> guest ok = yes
> guest account = root
> force user = root
> force group = root
> create mask = 0777
> force create mode = 0777
> force directory mode = 0777
> directory security mask = 0000
> directory security mode = 7777шутниг емана ))
Все оказалось намного проще =))) Пропущена звездочка =)
$ chmod -R 755 * /home/...