Archives for posts with tag: linux

it’s easy, and pretty cool for ssh if you have multiple users.

Anything text can be used, just save it as login_banner in your ~ folder, and add this to the end of ~/.bashrc for the user:

#custom login banner

cat login_banner

 

this could be a do list, a warning, reminder, etc. but my fave thing is ascii art like so:

Image

some sites for generating ASCII art:

http://patorjk.com/software/taag/#p=display&f=Graffiti&t=Type%20Something

http://www.glassgiant.com/ascii/

As promised, my overall Debian 7.0.0 “Wheezy” review.

I have spent the last 3 years settling on a Linux distro, and I think Debian is the one. Although I liked Mint and Ubuntu’s broad software support, I was quickly repelled by their lack of customization ability, and general “fatness”. I then migrated to the redhat based distros, but didn’t like openSUSE and left Fedora because of the faulty sleep mode and power issues. Arch could’ve been the one, but software support was sparse, and I had some serious python issues. Anywhere further to the “conservative south” of Unix-based operating systems was simply too inconvenient to be used within reason (Slackware, Gentoo, FreeBSD, etc). Debian ultimately came out on top as it was both reasonably lightweight, and had aptitude for software support.

I took a few install discs to get Debian working, but I believe that was more the fault of my CD burner than the install ISOs. I had tried Debian previously, but was repelled by the childish and inconvenient interface of KDE, and did not know how to change out desktop environments. However, I now have Debian running with gnome 3, and am satisfied with the interface.

My favorite aspect of Debian is the package manager, Aptitude. I still prefer Arch Linux’s package manager, Pacman, but Aptitude currently has a drastically wider range of software due to the success Ubuntu, which began life as a Debian fork. A few repetitions “apt-get install -f” are sometimes necessary when installing software from .deb packages, but for the most part installation hasn’t been a problem. Unfortunately, Valve’s Steam network will not work on Debian as some of its dependencies are proprietary to Ubuntu. The only distros aside from Ubuntu I have seen Steam work on are Fedora and Arch Linux, although the Fedora package has since vanished.

I have yet to reach the expert level in knowledge of OS development, but I feel confident saying Debian is much more lightweight than Mint or Ubuntu, as it does not focus nearly as much on user friendliness and looking pretty (in my humble opinion, plain gnome looks better anyway). It is also the second fastest-booting OS I’ve used with gnome 3, bested only by Arch Linux.

Overall, due to its lightweight nature, and vast software support, Debian is tentatively “the one.”

please leave any opinions, recommendations, questions, or answers in the comments.

 

Debian fun facts:

Releases are codenamed after characters from the movie Toy Story

The name Debian is a concatenation of one of the developer’s name, Ian Murdock, and his girlfriend’s name, Debra Lynn.

Trying Fedora 19 Alpha here in a few minutes…. will write review soon!

Finally stopped procrastinating and started learning python. I am not yet informed enough to produce a tutorial, but I will write about using python as a shell once I am familiar enough with it.

Random

Random Tux wallpaper I found. It’s pretty cool/

Following recent US laws which minimalize the security of social networking sites, I myself am setting up a deepnet server I can use to chat with my friends, and am making a guide on how to set one up. It’s fairly easy and can work with nearly any computer that has a steady internet connection.

1.) Install Linux or BSD

I have a guide on choosing a Linux distro here

you will not need xorg or a desktop manager for this, so unless you plan to use the device for other purposes I would suggest not installing a graphic interface for better security and speed.

2.) Install talk and OpenSSH

for Ubuntu/Debian/Mint: (these should be included, but if not:)

apt-get install openssh

apt-get install talk

for Mandriva/Fedora/OpenSUSE: (these should be included, but if not:)

yum install openssh

yum install talk

for Arch Linux:

pacman -S openssh talk

for others, google how to do it.

3.) Configure ssh

The default settings will work fine, but if you want even more enhanced security read this

Also make sure to log in to your router, and if necessary, your modem, and ensure port 22 is forwarded to the IP of the machine you are configuring this on (this is where 99% of ssh problems come from)

Your modem should forward 22 to your router, then your router should forward 22 to your machine.

4.) Learn to use talk

I unfortunately am not at my server right now and cannot provide screenshots or an in-depth guide on using talk, but it should be simple. For instructions and info on talk, type:

man talk

or

info talk

5.) Configure talk

Again, defaults should be fine, but you can mess with the settings for more security

6.) Connect peers to server with ssh

Make an account for each peer you wish to speak to privately on the machine (useradd on most systems), and have them log in with ssh (ssh -l username@IP)(note this is the IP of your modem, which can be found by typing “IP” into Google)

ssh is a tricky program to figure out for newer users, and I haven’t seen many good guides on it. If you need help, ask on various Linux channels on Freenode (I’ve found #Fedora and #Ubuntu the most helpful)

You can check who is connected with the command “who”

7.) Talk to your peers

the command will be “talk person tty”

on my machine, “who” returns:

[peaceblaster@ArchMobile ~]$ who
peaceblaster :0 2013-04-22 10:55 (:0)
peaceblaster pts/0 2013-04-23 05:10 (:0)
peaceblaster tty2 2013-04-23 05:39

so to message user “peaceblaster”, I would type:

talk peaceblaster tty2

Why this is secure:

Essentially what this does is use very old UNIX components from the 1980s, which were made long before Facebook or Twitter were even possible. Ssh allows secure, encrypted logins from anywhere in the world, which are then used to chat on the server you have set up. By hosting your own server, the only one who has access to any logs is you, so Facebook, Google or any social networking company can’t be forced to give out your information to anyone who pays them enough. Since you use a raw IP instead of a domain, the network is in the “deepnet” or “darknet”, outside of the visible section of the web people call “the internet”.

The other convenient aspect of this setup is that OpenSSH comes with the program “sftp”, which allows equally secure file transfer between machines. The command for sftp is similar to ssh:

sftp username@IP

This will open a shell with which you can send and receive files (there is more on the shell in the man page for sftp)

There you go, secure messaging and filesharing for you and your friends. If you are very paranoid you can look up guides on securing OpenSSH.

P.S.

I noticed most of my readers are not from English-speaking countries, so I have done my best to make this readable. I hope I have done well.

Snuggled up with a a blanket and a good book.
…and by that I mean vintage Star Wars bedding and a good Linux guide.

How tech support works in Linux:

1.) have you tried turning it off and on again?

2.) have you read the manual?

3.) are you new to Linux?

4.) have you read the manual?

5.) check the logs

6.) have you read the manual?

7.) are you running the latest kernel?

8.) have you read the manual?

9.) follow this vague tutorial on a sketchy site and let me know when you’ve broken it more

10.) have you read the manual?

11.) flip a coin. If heads, reinstall your OS. If tails, it’s a hardware problem.

12.) RTFM. Goodbye.

Image

Arch Linux install with Gnome 3.6: 3 hours

Minecraft on Arch Linux: 10 minutes

Steam on Arch Linux: 2 weeks, no success

Doom on Arch Linux: 2 weeks, no success

Quake on Arch Linux: 2 weeks, no success

 

*last three now work

Steam needs multilib enabled in pacman.conf, and the others run in DOSbox, though I’m hoping to eventually rewrite them to run natively

One of the primary purposes of this blog is tutorials and guides in readable formats free of condescension or esoteric terms, so here’s a guide on commands you probably know.

This does NOT replace a working knowledge of Linux built through reading or experience, but should prove helpful in filling in gaps.

1. Disk partitioning:

The majority of Linux installers use a shiny GUI installer now that does all this for you, but it’s still important to know how to work with partitions, especially if you plan to dual-boot.

partition tools:

cfdisk- (my personal favorite)

a semi-GUI partition tool that is fairly self explanatory- you may have to use mkswap and/or mkfs afterward

parted- (second most common)

a far less friendly partition tool released by GNU. Some more picky operating systems will reject fdisk/cfdisk partition tables in favor of this, so it’s worth getting to know.

mkpart: makes a partition from x to y

— Command: mkpart [part-type fs-type name] start end

print: displays the current partition table

quit: exits

There are many other useful tools, but I do not have room to go into them

more on GNU parted: https://www.gnu.org/software/parted/manual/parted.html

also, I suggest using a graphing calculator or a piece of paper to record and calculate partition size and position as you go

2: Connecting to internet (the hard way)

internet configuration tools: ifconfig, iwconfig, wicd, wifi-menu, network-manager,ip-link

*note: this portion of the guide will NOT work on FreeBSD, or some Linux distros

Most distros will have a GUI and a proprietary network manager for that GUI, but it’s nice to know how to do this manually. Also note these programs can be used a number of ways and I am merely writing about how I use them. Also note I am not an expert in these areas.

iwconfig: primarily focuses on the hardware side of connecting. Just the command itself will show all network interfaces/adapters and their status.

iwconfig <interface> essid “network name”: will connect to “network name” without password

type “man iwconfig” for more info

ifconfig: deals more with the software side of networking, the command alone will list network info, such as IP address, subnet mask, etc.

ifconfig can be used similarly to iwconfig to connect to a network.

type “man ifconfig” for more info

ip-link: Not too familiar with this, but I’ve used it to disable and enable the network

ip-link set <interface name> down: will disable the network interface

ip-link set <interface name> up: will enable the network interface

type “man ip-link” for more info

Wicd, Network-Manager, and wifi-menu are separate application that must be installed to your system, but are more efficient and friendly in dealing with networks. Wicd will run in the background and auto-connect to the network of your choice, Network-Manager is the background process that enabled you to use the network icon in the top right in Gnome, and wifi-menu is a minimal menu used for one-time connection to a network.

3. File permissions/management.

Unlike the above commands, the command line is still superior to GUI for file permission and ownership management, since running the x server as root is a security nightmare.

tools for file permissions and management: chmod, chown, ls, cp, mv, ln

chmod: used to change a file’s permissions and access. There are many formats in which permissions may be granted, but I personally find the number one the easiest. It is worth taking the time to memorize.

chmod 777 <file_name>: never do this

chmod 666 <file_name>: never do this

chmod 700: owner and root can do whatever they want with the file, no one else can

it’s split up into 3 numbers: chmod <owner><group><public/other> <file_name>

7 = read, write, and execute

6 = read and write

5 = read and execute

4 = read only

(you will almost never need 2 or 3)

1 = execute only

0 = no permissions

chmod +x <file_name>: make executable

(also, you can make a file inaccessible to root using a command called sunlink, but sunlink may be removed by root so the trick will not usually work)

chown: change file owner

chown <owner> <file>

chown -R <owner> <file>: recursive, changes subdirectory ownership as well

ls: list files in a given directory

ls -a: list all files, even hidden

ls -l: list files and permissions

cd: change directory

cd <path>

ln: used for symlinks

I am not experienced with symlinks (symbolic links), but the command should look like this:

ln -s <source directory> <directory>

cp: copy

cp <path to file 1> <path to file 2>

mv: move

mv <path to file 1> <path to destination>

4. Scripting

This is me being hypocritical, but knowing both Perl and Bash scripting is essential to the advanced Linux user. Documentation on both is available online, and I highly recommend the O’Reilly guide on Perl.

5. Software installation

Although different for each distro, I feel I should cover how installation works. Each distro will have two package managers, or one that functions for two purposes. One will fetch files from online, and get everything for you (yum, apt-get, zypper, pacman, slackpkg, etc.) and one that can install from local packages (rpm, apt, pacman, installpkg). Alternately, some distros use ports, which involves extracting a portsnap, then compiling source code from the ports directory (will allow you to customize more and check source code, but for larger programs will take a very long time)

6. IRC

This is one you don’t necessarily need, but I highly recommend knowing the basics of IRC as most distros have a Freenode channel for free live support.

I personally use xchat, but these commands should be similar if not the same for all IRC clients connected to Freenode-

/msg NickServ identify <password>: will log you in if you registered the nickname you use

/join #(name): will join a channel

typing ctrl+k will let you pick a color for just that line

(ctrl+k)4 hello this line is red: will print out line in red reading “hello this line is red”

7. Mounting

Mounting a filesystem means you create a directory you can then access as if part of your local filesystem.

1. (in terminal) go to /mnt

2. make a directory, can be named anything (mkdir foo)

3. mount the device (mount /dev/sr0 /mnt/foo)

4. go into the device (cd /mnt/foo)

Image

I am relatively new to Linux, but the above skills have gotten me through using just about every distro out there. Enjoy.