Archive for the ‘Unix’ Category



WinSCP is freeware SCP (Secure Copy) client using SSH (Secure Shell). Its main purpose is safe copying files between local and remote computer. Beyond this basic function, it manages some other actions with files. It can do all basic operations with files, such as copying and moving. It also allows you to rename files and folders, create new folders, change properties of files and folders. One of two selectable program interfaces allows user to manage files even on local computer. Most operations can be done recursively for files in folders. WinSCP is also available as a plugin to two file managers, FAR and Servant Salamander.


  • Integration with Windows (drag&drop, URL, shortcut icons)
  • All common operations with files
  • Support for SFTP and SCP protocols over SSH-1 and SSH-2
  • Batch file scripting and command-line interface
  • Directory synchronization in several semi or fully automatic ways
  • Integrated text editor
  • Support for SSH password, keyboard-interactive, public key and Kerberos (GSS) authentication
  • Integrates with Pageant (PuTTY authentication agent) for full support of public key authentication
  • Windows Explorer-like and Norton Commander-like interfaces.
  • Optionally stores session information.
  • Optionally supports standalone operation using a configuration file in place of registry entries, suitable for operation from removable media
  • Translated into several languages
  • Graphical user interface

OS: Windows All

Licence: Open Source GPL



Download (Portable version):


How to crypt/decrypt a file with vi?


Open the file using vi, type “:X“, enter the key (this key will be the password to see the crypted file) and then save and exit by “:wq“.

The file will be crypted.

You can use:

vi -x yourfile

to do the same thing.



To decrypt just the way you encrypted the file.

Open the file using vi, type “:X“, enter the key and after that the file will be visible and writable. If you close and save your file by “:wq” the file will be still crypted.


To descript forever the crypted file

Open the file using vi, type “:X“, push two times the “enter” button and then save and exit by “:wq“.

The file will be decrypted

Categories: Linux, Unix

SUID [Set User ID] – SGID – [Set Group ID]

SUID – [Set User ID]

SUID bit is set for files (mainly for scripts).
The SUID permission makes a script to run as the user who is the owner of the script, rather than the user who started it.

If “xarabas” is the owner of the script and “mandrake” tries to run the same script, the script runs with the ownership of “xarabas“.
If the root user wants to give permissions for some scripts to run by different users, he can set the SUID bit for that particular script.
So if any user on the system starts that script, it will run under the root ownership.

root user much be very carefull with this.


SGID – [ Set Group ID ]

If a file is SGID, it will run with the privileges of the files group owner, instead of the privileges of the person running the program.
This permission set also can make a similar impact. Here the script runs under the groups ownership.

You can also set SGID for directories.
Consider you have given 2777 permission for a directory.
Any files created by any users under this directory will come as follows.

-rw-rw-r– 1 mandrake LP1 0 Jun 11 17:30 1.txt

In the above example you can see that the owner of the file 1.txt is “mandrake” and the group owner is “LP1“.
So both “mandrake” and “LP1” will have access to the file 1.txt.

Now lets make this more intresting and complicated.
Create a directory “test“. Chmod it to 2777. Add sticky bit to it.

mkdir test
chmod 2777 test
chmod +t test

ls -al test
drwxrwsrwt 2 xarabas LP1 4096 Jun 13 2008 test

From the above permission set you can understand that SGID and sticky bit is set for the folder “test”.
Now any user can create files under the test directory.

drwxrwsrwt 2 xarabas LP1 4096 Jun 13 2008 .
-rw-rw-r– 1 mandrake LP1 0 Jun 11 17:30 1.txt
-rw-rw-r– 1 batman LP1 0 Jun 11 17:30 2.txt
-rw-rw-r– 1 joker LP1 0 Jun 11 17:30 3.txt

So all the “xarabas” user has access to all the files under the test directory.
He can edit, rename or remove the file.
mandrake” user has access to 1.txt only, “batman” has access to 2.txt only…

If sticky bit was not set for the test directory, any user can delete any files from the test directory, since the test directory has 777 permissions.
But now it not possible.

If “joker” tries to remove 1.txt
rm -f 1.txt
rm: cannot remove ‘1.txt’: Operation not permitted

Categories: Linux, Unix

Sticky bit

Sticky bit

The most common use of the sticky bit today is on directories.
When the sticky bit is set, only the item’s owner, the directory’s owner, or the superuser can rename or delete files. Without the sticky bit set, any user with write and execute permissions for the directory can rename or delete contained files, regardless of owner.
Typically this is set on the /tmp directory to prevent ordinary users from deleting or moving other users’ files

Consider you have a directory “/test“.
The chmod it to “777“, this command gives permissions for all the users to read, write and execute.
If you run chmod +t /test and now the /test directory content is the following:

Example: ls -al /test
drwxrwxrwt 2 xarabas LP1 4096 Jun 13 2008 .
-rw-rw-r– 1 xarabas LP1 0 Jun 11 17:30 1.txt
-rw-rw-r– 1 mandrake LP2 0 Jun 11 22:52 2.txt

From the above example “xarabas” is the owner of the test directory (see the first row). “xarabas” can delete or rename the files 1.txt and 2.txt. “mandrake” can delete or rename the file 2.txt only.

Concluding, if the sticky bit is set for a /test directory, only the owner of that directory or the owner of a file can delete or rename a file within that directory.

Categories: Linux, Unix

UNIX – Lesson 027 – man command and quick reference

With the “man” command, you can retrieve the information in the manual and display it as text output on your screen.
To use the man command, at the Unix prompt, enter:

man topic
Replace topic with the name of the manual item about which you want more information. For example, to find out more about the FTP command, at the Unix prompt, enter:

$ man ftp



In the first column we can see the command (obviously the command is in lower case) and in the second column a little description about the “what can do it”.

For further information you can go back in the lessons.

AT schedules a program to run at a specific time
CANCEL removes the requests from the print queue
CAT concatenates and displays the content of one or more files
CD changes working directory

changes the group associated with files and directories

changes filesystem modes of files and directories

changes the owner of a files and directories

compresses/expands a file, that is replaced by new one with the extension .Z

copies files or directories

allows to schedule job’s execution periodically

writes the date and time

reports the file system disk space

compares the contents of file1 and file2 and writes to standard output a list of changes necessary to convert file1 into file2

summarizes disk usage

writes its arguments, separated by BLANK and terminated by a NEWLINE, to the standard output

determines the file type

descends recursively the directory hierarchy for each path seeking files that match a boolean expression

transfers file from one computer to another
GREP searches inside a text file for a pattern and prints all lines that contain the pattern

compresses/expands a file that is replaced by new one with the extension .gz

displays the beginning of a file

sets or prints name of current host system

displays jobs currently running (background)

sends a terminate signal to a process

creates a link to a file

submits print requests to a destination

displays information about the current status of the LP print service

lists the content of a directory

makes directory

displays files, one screen at a time

moves or renames files or directories

gets a list of process running

returns working directoryname
RLOGIN performs a remote login

removes files or directories
RMDIR removes directory which must refer to an empty directory
RSH runs a command on a remote computer
SORT prints the lines of its input (or concatenation of all files listed in its argument list) in sorted order
SSH is a program for logging into a remote machine and for executing commands on a remote machine
TAIL displays the end of a file
TAR archives files
TELNET is the remote login
TOUCH creates an empty file or change modification and access time, if the file exists
UMASK sets the file mode creation mask
UNAME prints name of current system
UNIQ reports or filters out repeated lines in a file
W displays information about currently logged-in users
WC displays a count of lines, words and characters in a file
WHEREIS locates the binary, source and manual page files for a command
WHICH locates the first occurrence found in your PATH for a command
Categories: Unix

UNIX – Lesson 026 – Job and Job Scheduling – at and crontab commands

The “at” command is used to schedule a program to run at a specific time

Syntax :
at [-lrt]

Key argument :

  • -l   Reports all jobs scheduled
  • -r   Removes the jobs with the specified at_job_id   operands
  • -t MMddhhmm   Submits the job to be run at the time specified   by the time option-argument.

Example :
$ at -t 02261520
at> echo “Happy my dear Xarabas!“ > /tmp/Xarabas.txt
at> <EOT>
commands will be executed using /bin/csh
job 1204035720.a at Tue Feb 26 15:22:00 2008

#To exit from at command use “CONTROL+D”

$ at –l
1204035720.a    Tue Feb 26 15:22:00 2008
#To see the scheduled tasks

$ more /tmp/Xarabas.txt
Happy my dear Xarabas!

$ at -r 1204035600.a
# To cancel the scheduled task (the task number is 1204035600.a).

$ at –l



The “crontab” command allows to schedule job’s execution periodically

Syntax :
crontab –l   list the content of the cronfile
crontab –e   enter in edit mode (you have to set the variable EDITOR, for example you can use “vi” editor) to change the cronfile

Cronfile consists of lines of six fields each. The first five items specify:

1. Min (0-59)
2. Hours (0-23)
3. Days of the month (1-31)
4. Months of the year (1-12)
5. Days of the week (0-6 with 0=Sunday)

An “*” indicates all legal values. Fields are separated by spaces or tabs. The last field is the program to be executed.

Example :

$ crontab –l

#  Script to backup Databases                                           #

00 01 * * 1-5  /data/s2sswd/backup/ > /dev/null 2>&1
30 02 * * 1-5  /data/s2sswd/backup/ > /dev/null 2>&1

# Script To Backup the registries on SUN_HP_01 Server  #

00 7 * * 1 /check/backup/  > /dev/null 2>&1

# Script to check Samba daemon  #

00,05,10,15,20,25,30,35,40,45,50,55 * * * * /samba_daemon/samba.awk /samba_daemon/.test > /tmp/samba_ctrl.log
15 18 31 12 * /samba_daemon/test.awk  /samba_daemon/.test > /tmp/samba_ctrl.log

The first script ( will be executed every workday (1-5) at 07:00 AM.
The second script ( will be executed every workday (1-5) at 02:30 AM.
The third script ( will be executed only the monday (1) at 07:00 AM.
The fourth script (samba.awk) will be executed every 5 minutes (every day because we have “*” in the next fields)
The fifth script (test.awk) will be executed only the 31-12 at 18:15.

Categories: Unix

UNIX – Lesson 025 – Job and Job Scheduling – Foreground, Background and jobs command

Foreground vs. Background
A foreground job can receive keyboard input and signals such as Control-C from the controlling terminal, background jobs cannot. If the login session is disconnected, foreground jobs are terminated by a hang-up signal, while backgrounds jobs are not. Both foreground and background jobs can write to the controlling terminal.

Putting a Job in the background
Jobs can be put in the background either by initiating them in the background or by stopping a foreground job and then specifying that it be continued in the background.
The way a job is initiated in the background is by putting an ampersand (&) at the end of the command line. For example, to start the excellent web browser Mozilla, if you plan on using the terminal for other activities while the web browser is running, you can type:

$ mozilla &
A second technique is to stop the foreground job with control-Z, and then to specify that the job be continued in the background with the “bg” command (The Carrot, ^, represents holding down the control key while you press the letter after it).
So, if you start Mozilla


When you run in the background a program that uses a graphical user interface for interaction, you will still be able to interact with its graphical elements in your windowing system. If you suspend it with ^Z, you will not be able to interact with it until you start it running, either in the foreground (fg) or the background (bg).



The “jobs” command displays the jobs that you are running in the background and in the foreground. If the prompt is returned with no information no jobs are present.
Note: not all shells are capable of running this command.

Key argument:

-l       Reports the process group ID and working  directory of the jobs

Example :
$ xclock &
[1] 12018

$ find / -name “*.c” -print &
[2] 16619

$ jobs
[1] + Running  xclock
[2] + Running   find / -name “*.c” -print &

$ jobs -l

[1]  +  7533 Running   xclock
[2]  + 7534 Running   find / -name “*.c” -print &

$ kill %2
In order to kill the second job.

$ jobs
[1] + Running  xclock
[2] + Terminated   find / -name “*.c” -print &

Categories: Unix
%d bloggers like this: