Monday, August 19, 2013

NSIS customize files based on languages

 NSIS How to get user selected language without using registry function

This is an example based on my custom needed to rename config file for my application based on language selection by user during setup 

First onInit function you must pop $LANGUAGE variable on global stack as you can retrive it later.

Function .onInit
....

....
!insertmacro MUI_LANGDLL_DISPLAY
 Pop $LANGUAGE

FunctionEnd


Then on interested section you wite your custom language files (D_MyApp..... E_MyApp.... F_MyApp...)

Section "MainSection" SEC01
  SetOutPath "$INSTDIR"
  SetOverwrite try
  SetDetailsPrint none
  SetShellVarContext all
  File "D:\projects\xxxxx\MyApp_v32_09082013\D_MyApp.exe.config"
  File "D:\projects\xxxxx\MyApp_v32_09082013\E_MyApp.exe.config"
  File "D:\projects\xxxxx\MyApp_v32_09082013\F_MyApp.exe.config"


 Here you compare $LANGUAGE with
LCID value  (see http://www.science.co.il/Language/Locale-codes.asp  for reference)

If selected language match then rename file else continue if statement

  StrCmp $LANGUAGE '1031' customGerman noDE
  customGerman:
  Rename "$INSTDIR\D_MyApp.exe.config" "$INSTDIR\MyApp.exe.config"
  goto languageSettingsDone
 
  noDE:
  StrCmp $LANGUAGE '1033' customEnglish noEN
  customEnglish:
  Rename "$INSTDIR\E_MyApp.exe.config" "$INSTDIR\MyApp.exe.config"
  goto languageSettingsDone

  noEN:
  StrCmp $LANGUAGE '1036' customFrench noFR
  customFrench:
  Rename "$INSTDIR\F_MyApp.exe.config" "$INSTDIR\MyApp.exe.config"
  goto languageSettingsDone
 
  noFR:
  goto languageSettingsDone
 
  languageSettingsDone:
....

....
....

;Contiune with other files


If this short giude has been usefull for you please leave comment

Thursday, May 9, 2013

webmin customize This web server is running in SSL mode. Try the URL


To customize webmin error message when try access to webmin login on http connection follow these few steps (this giude refer to centos 6.4 )

1 cd /usr/libexec/webmin/
2. vim miniserv.pl

3. find error string ... "This web server is running in SSL mode. Try the URL..."
4. Change it with you favorite error message string and variables
5. Save
6 service webmin restart

Done!

Now you can login to your http:\\yourdomain.ext:10000 console and see :)


Brokenpipe

Please leave a small feedback if this post has been usefull for you.

Wednesday, January 2, 2013

VSFTPD Bloccare limitare user alla home directory

Spesso quando configuriamo un daemon ftp su linux abbiamo la necessità di limitare l'accesso dei nostri utenti solamente alla rispettiva home directory.
Nel nostro caso consideriamo di usare vsftpd
In una configurazione minimale  ci troveremo nella situazione di avere un file vsftpd.conf del tipo



#--------------------------------------------------
# VSFTPD configuration file, powered by Brokenpipe
#--------------------------------------------------
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES

xferlog_enable=YES
xferlog_file=/var/log/xferlog
xferlog_std_format=YES

idle_session_timeout=600
data_connection_timeout=120

ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to Ftp service. Powered by Brokenpipe

chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list


listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES


Ed un file chroot_list di configurazione in /etc/vsftpd/  contenente gli utenti chrooted
ad esempio

 ftptestuser

E' importante ricordare se in vsftpd.conf settiamo:

chroot_local_user=YES
chroot_list_enable=YES

significa che di default TUTTI gli user saranno chrooted AD ECCEZIONE di quelli elencati nel file chroot_list

Invece se in vsftpd settiamo:
chroot_local_user=NO
chroot_list_enable=YES

significa che di default SOLAMENTE gli user elencati nel file chroot_list saranno chrooted



500 OOPS: vsftpd: refusing to run with writable root inside chroot ()
allow_writeable_chroot=YES