Помогите пожалуйста написать скрипт на sh для раздачи прав на файлы и папки. есть папка samba/Home в которой находятся папки пользователей название которых совпадают с соответствующими логинами (вида 28-00-XXX и некоторые из них 28-00XXX). DDDDD - домен.
что-то такое переделать не могу придумать как
find /samba/Home/ -type d -print0 | xargs --null setfacl -m u:DDDDD+28-00XXX:rwx
т.е. надо каждому пользователя дать полные права на свою папку.winbind установлен и настроен. т.е. с доменными учетками проблем не возникнет. основная сложность именно чтобы обойти все папки и дать права именно тому пользователю которым папка названа..
>[оверквотинг удален]
>папки. есть папка samba/Home в которой находятся папки пользователей название которых
>совпадают с соответствующими логинами (вида 28-00-XXX и некоторые из них 28-00XXX).
>DDDDD - домен.
>что-то такое переделать не могу придумать как
>find /samba/Home/ -type d -print0 | xargs --null setfacl -m u:DDDDD+28-00XXX:rwx
>т.е. надо каждому пользователя дать полные права на свою папку.
>
>winbind установлен и настроен. т.е. с доменными учетками проблем не возникнет. основная
>сложность именно чтобы обойти все папки и дать права именно тому
>пользователю которым папка названа..попробуйте так
for i in /samba/Home/*
do
[ -d $i ] && setfacl -m u:`basename $i`+28-00XXX:rwx $i
done
>попробуйте так
>
>for i in /samba/Home/*
>do
> [ -d $i ] && setfacl -m u:`basename $i`+28-00XXX:rwx
>$i
>doneхм. у меня в папке home 150 папок с названиями 28-00001, 28-00005, 28-00020 и т.п.
в этом скрипте я не вижу подстановки чтобы на папку 28-00005 скажем получил права пользователь 28-00005, о чем собственно и речь.или имя папки присваивается $i? тогда надо так чтоли ? а всем файлам и подпапкам так же права не встанут...
>for i in /samba/Home/*
>do
> [ -d $i ] && setfacl -m u:DDDDD+`basename $i`:rwx
>$i
>done
>[оверквотинг удален]
>в этом скрипте я не вижу подстановки чтобы на папку 28-00005 скажем
>получил права пользователь 28-00005, о чем собственно и речь.
>
>или имя папки присваивается $i? тогда надо так чтоли ? а всем
>файлам и подпапкам так же права не встанут...
>>for i in /samba/Home/*
>>do
>> [ -d $i ] && setfacl -m u:DDDDD+`basename $i`:rwx
>>$i
>>doneда. в i будет путь к папке.
ну тогда чуть сложнееfor i in /samba/Home/*
do
if [ -d $i ]
then
setfacl -m u:DDDDD+`basename $i`:rwx $i
find $i -exec setfacl -m u:DDDDD+`basename $i`:rwx {} \;
fi
$i
doneт.е. для всех папок находим путь к ней, ставим права на неё, а потом в этой папке ищем всё и ставим права для всего.
c acl я не знаком, но ман говорит последним параметром должен идти файл отсюда и {}