Eu sou novo em comandos unix, mas tenho uma necessidade. Eu tenho um ambiente misto Win / Mac onde eu uso o Win AD para contas de usuário e o Mac como armazenamento de arquivos.
Existe um comando no Mac que cria automaticamente as pastas base para os usuários e define as permissões apropriadas 'createhomedir -s' na minha situação. A saída deste comando é:
creating home directories for (cloud.mc.net.mackillop)
created (/Network/Servers/cloud.mc.net.mackillop/data/18goodki/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/18langre/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/16gibsga/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/17gibssa/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/99bowmam/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/99newtal/files)
created (/Network/Servers/cloud.mc.net.mackillop/data/99daypa/files)
O que eu preciso fazer é configurar permissões adicionais para essas pastas domésticas recém-criadas, fornecer acesso de leitura / gravação, bem como _www (host Apache), pois usamos OwnCloud.org para fornecer acesso à nuvem baseado na web. aos arquivos dos usuários.
Estes são os dois comandos que eu corro para conseguir isso:
sudo chmod -R +ai "_www allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" data
sudo chmod -R +ai "ittech allow list,add_file,search,delete,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" data
A execução desses dois comandos em toda a pasta 'data' de todos os usuários e subpastas leva muito tempo (973 contas de usuário!) e realmente desacelera o servidor. O que eu gostaria de fazer é executar esses dois comandos em usuários recém-criados a partir do primeiro comando para reduzir muito o tempo e a sobrecarga.
Eu tenho lido no grep, awk etc, mas não tenho certeza de como conseguir isso.
Então, basicamente, eu quero que createhomedir -s
seja executado, então extraia cada nome de usuário da saída desse comando e use esses nomes de usuário para executar os dois chmods no lugar da pasta 'data' (/ data /% USERNAME% em vez disso).