criar script para criação de pasta na home do usuario atual [RESOLVIDO]

1. criar script para criação de pasta na home do usuario atual [RESOLVIDO]

Felipe Lara
felipelara

(usa Ubuntu)

Enviado em 25/02/2024 - 18:21h


preciso fazer um script para criar uma pasta na home do usuario atual e modificar o smb.conf com a home do usuario atual

em terminal eu faço dessa forma porem queria fazer um script... no lugar de felipe teria q puxar o usuario atual...

$ mkdir /home/felipe/scanner && chmod 777 /home/felipe/scanner

# cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
# cat <<EOF >> /etc/samba/smb.conf

[scanner]
path = /home/felipe/scanner
public = yes
writable = yes
comment = smb share
printable = no
guest ok = yes

agradeço desde ja


  


2. Re: criar script para criação de pasta na home do usuario atual

Tipoff *tipoff
tipoff

(usa Nenhuma)

Enviado em 25/02/2024 - 20:31h

Troque ai o /home/felipe para $HOME, em todas as ocorrências. Quanto ao script, só criar um arquivo contendo #!/usr/bin/env bash na primeira linha, e dar permissão de execução (+x ou 755) nele. Em cada linha do script, coloca os comandos que você executa no terminal e pronto.


3. Re: criar script para criação de pasta na home do usuario atual [RESOLVIDO]

Felipe Lara
felipelara

(usa Ubuntu)

Enviado em 25/02/2024 - 21:29h


tipoff escreveu:

Troque ai o /home/felipe para $HOME, em todas as ocorrências. Quanto ao script, só criar um arquivo contendo #!/usr/bin/env bash na primeira linha, e dar permissão de execução (+x ou 755) nele. Em cada linha do script, coloca os comandos que você executa no terminal e pronto.



quase deu certo... porem o comando do samba precisa ser executado como root... como fazer?




4. Re: criar script para criação de pasta na home do usuario atual

aguamole
aguamole

(usa KUbuntu)

Enviado em 26/02/2024 - 00:49h

#!/usr/bin/env bash

mkdir "/home/$HOME/scanner" && chown ${USER}:${USER} "/home/$HOME/scanner"

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
echo -e "[scanner]
path = /home/${USER}/scanner
public = yes
writable = yes
comment = smb share
printable = no
guest ok = yes" >>"/etc/samba/smb.conf"

Execute o script com sudo, e se não funcionar executa como root. Ou já executa como root que já garante.


5. Re: criar script para criação de pasta na home do usuario atual [RESOLVIDO]

Felipe Lara
felipelara

(usa Ubuntu)

Enviado em 26/02/2024 - 06:44h


aguamole escreveu:

#!/usr/bin/env bash

mkdir "/home/$HOME/scanner" && chown ${USER}:${USER} "/home/$HOME/scanner"

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
echo -e "[scanner]
path = /home/${USER}/scanner
public = yes
writable = yes
comment = smb share
printable = no
guest ok = yes" >>"/etc/samba/smb.conf"

Execute o script com sudo, e se não funcionar executa como root. Ou já executa como root que já garante.


me retornou o erro
mkdir: não foi possível criar o diretório “/home//root/scanner”: Arquivo ou diretório inexistente




6. Re: criar script para criação de pasta na home do usuario atual

aguamole
aguamole

(usa KUbuntu)

Enviado em 26/02/2024 - 09:47h

felipelara escreveu:
me retornou o erro
mkdir: não foi possível criar o diretório “/home//root/scanner”: Arquivo ou diretório inexistente

A sim, o diretório pessoal do root fica em "/root/" o que pode significar 2 coisas ao ser executado como root, o diretório "/root/" não é o diretório que você deseja ser editado, e o outro é que tem que fazer uma verificação se o usuário que executo é o root para se verdadeiro ele modifique no diretório do root "/root"

Moral da historia, você não deseja que esse código seja executado como sudo.
Ai fica a pergunta, como assim o samba precisa ser executado como root? Você não estava falando o script?


7. Re: criar script para criação de pasta na home do usuario atual [RESOLVIDO]

Amarildo Sertorio dos Santos
amarildosertorio

(usa Fedora)

Enviado em 26/02/2024 - 10:00h

Você pode utilizar as opções preexec ou root preexec para isso. Eles especificam um script que é executado na conexão com um compartilhamento. No caso de preexec, o compartilhamento é executado como usuário conectado e como root com root preexec.

[scanner]
preexec = /etc/samba/gendir.sh %u

vim /etc/samba/gendir.sh
#!/bin/bash 
DIRECTORY=/home/$1/scanner
if [ ! -d "$DIRECTORY" ]; then
mkdir $DIRECTORY
fi









Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts