Apr 272016
 

Found this helpful information on StackExchange.

Say I have 2 groups and a user: group1, group2.
user1 with the following structure: user1 is a member of group1
[group1 is a member of group 2] (Cannot nest groups in Linux, UNIX)

Example: following files with relevant permissions

file1 root:group1 660
file2 root:group2 660

When I log into user1, I’m able to edit file1, but not edit file2. Short of adding user1 to group2, is there any way of doing this or is there no way?

There is no such thing as a group being a member of a group. A group, by definition, has a set of user members. I’ve never heard of a feature that would let you specify “subgroups” where members of subgroups are automatically granted membership into the supergroup on login. If /etc/group lists group1 as a member of group2, it designates the user called group1 (if such a user exists, which is possible: user names and group names live in different name spaces).

If you want user1 to have access to file2, you have several solutions:

Make file2 world-accessible (you probably don't want this)
Make user1 the owner of file2: chown user1 file2
Add user1 to group2: adduser user1 group2
Add an ACL to file2 that grants access to either user1 or group`:

setfacl -m user:user1:rw file2
setfacl -m group:group1:rw file2
See Make all new files in a directory accessible to a group on enabling ACLs.
If at all possible, use access control lists (ACL).

Under Linux, make sure that the filesystem you’re using supports ACLs (most unix filesystems do). You may need to change the mount options to enable ACLs: with ext2/ext3/ext4, you need to specify the acl mount option explicitly, so the entry in /etc/fstab should look like /dev/sda1 / ext4 errors=remount-ro,acl 0 1. Run mount -o remount,acl / to activate ACLs without rebooting. Also install the ACL command line tools getfacl and setfacl, typically provided in a package called acl.

Now that the one-time setup is over, change the directory’s ACL to give the group write permissions and to make these permissions inherited by newly created files. Under Linux:

setfacl -d -m group:G:rwx /path/to/directory
setfacl -m group:G:rwx /path/to/directory

If ACLs are not an option, make the directory owned by the group G, and set its permissions to 2775 or 2770: chmod g+rwxs /path/to/directory. The s here means the setgid bit; for a directory, it means that files created in this directory will belong to the group that owns the directory.

You’ll also need to set A and B’s umask to make all their files group-writable by default. The default umask on most systems is 022, meaning that files can have all permissions except write by group and other. Change that to 002, meaning to forbid only write-by-other permission. You would typically put that setting in your ~/.profile:

umask 002 # or 007 to have files not readable by others

Source

Jun 212014
 

Quick setup — SSH

We recommend every repository include a README, LICENSE, and .gitignore.

Create a new repository on the command line
mkdir newreponame (md newreponame) on Windows commandline.
cd newreponame

      touch README.md

    • git init
    • git add README.md
    • git commit -m “first commit”
    • git remote add origin git@github.com:githubusername/RH.git
    • git push -u origin master

Push an existing repository from the command line

  • git remote add origin git@github.com:githubusername/RH.git
  • git push -u origin master

Quick setup — HTML

      touch README.md

    • git init
    • git add README.md
    • git commit -m “first commit”
    • git remote add origin https://github.com/githubusername/RH.git
    • git push -u origin master

Push an existing repository from the command line

  • git remote add origin https://github.com/githubusername/RH.git
  • git push -u origin master
Jun 202014
 

Error when running “git push origin master”.

Robs-MacBook-Pro:gitrepo1 localuser$ git push origin master
remote: Permission to githubuser1/gitrepo1.git denied to githubuser2.
fatal: unable to access 'https://github.com/githubuser1/gitrepo1.git/': The requested URL returned error: 403

I simply added the user githubuser2 as a collaborator on gitrepo1 and it worked.

Robs-MacBook-Pro:gitrepo1 localuser$ git push origin master
Counting objects: 5, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 383 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To http://github.com/githubuser1/gitrepo1.git
   6b70d17..0ec0b91  master -> master
Robs-MacBook-Pro:gitrepo1 localuser$
Jun 042014
 

A list of show functions that can be used in MySQL.

SHOW AUTHORS
SHOW BINARY LOGS
SHOW BINLOG EVENTS
SHOW CHARACTER SET
SHOW COLLATION
SHOW COLUMNS
SHOW CONTRIBUTORS
SHOW CREATE DATABASE
SHOW CREATE EVENT
SHOW CREATE FUNCTION
SHOW CREATE PROCEDURE
SHOW CREATE TABLE
SHOW CREATE TRIGGER
SHOW CREATE VIEW
SHOW DATABASES
SHOW ENGINE
SHOW ENGINES
SHOW ERRORS
SHOW EVENTS
SHOW FUNCTION CODE
SHOW FUNCTION STATUS
SHOW GRANTS
SHOW INDEX
SHOW INNODB STATUS
SHOW MASTER STATUS
SHOW OPEN TABLES
SHOW PLUGINS
SHOW PRIVILEGES
SHOW PROCEDURE CODE
SHOW PROCEDURE STATUS
SHOW PROCESSLIST
SHOW PROFILE
SHOW PROFILES
SHOW SCHEDULER STATUS
SHOW SLAVE HOSTS
SHOW SLAVE STATUS
SHOW STATUS
SHOW TABLE STATUS
SHOW TABLES
SHOW TRIGGERS
SHOW VARIABLES
SHOW WARNINGS
May 242014
 

1. Install sshfs and fuse

 Fedora: yum -y install fuse-sshfs
 Ubuntu: apt-get install sshfs

2. Add user that you want to use with sshfs to the fuse group. I did’t need this step with Fedora 20 (There was no group named fuse).

 usermod -a -G fuse joebob

3. Make a directory locally so that you can use it as a mount point for your remote ssh directory.

 mkdir localdirectory4ssh

4. Mount the remote directory to the local mount point that you created in step 3.

 sshfs remoteusername@remoteserver:/remotedirectory localdirectory4ssh
 *You will be prompted for your remote password.

5. Change into your localdirectory4ssh.

 cd localdirectory4ssh
 You should see all of the files and directories on your remote server.
May 232014
 

Fedora 17 – Install Scanner

Fedora’s live KDE disk does not ship with any scanning software.  There are two very useful programs that I use for scanning, depending on what I am scanning.

Xsane
The most flexible scanning software available.  Xsane gives you fine grain control over scanning.  One very handy feature is the ability to batch scan multiple areas of your scanner, which is great for scanning photos using time-consuming high resolution settings.

Simple-scan
Just as the name indicates.  A very simple scanner.  Place document, hit scan, and go.  The one very nice feature of simple-scan is the ability to batch scan several sheets into a single PDF file, provided you have the hardware to do so.  Many multifunction printers have an automatic document feeder feature

Sane

Before any scanning software can be used, the backend that controls the scanner must be installed.  Sane, an acronym for Scanner Access Now Easy, is just that.  Install it, and go.  Any sane compatible scanner will work.  I’ve had success with HP MFC printers, and I have a Canon scanner.  Both work with no issues, including the wireless HP MFC printer!

As root,


yum -y install sane-backends-drivers-scanners
sane-find-scanner


You may find it necessary to unplug and re-plug in the USB cable to your scanner before trying one of the below scanning programs.

Xsane

As root, with your USB scanner attached and powered up


yum -y install xsane


Simple Scan

As root,


yum -y install simple-scan


Source
 

May 082014
 

Enum is a good choice for boolean type of fields except that it is treated as a string and not an integer. In this case I just want to set a column in the table to indicate whether the row is active (1) or not (0). I do not want someone to accidentally enter a 2, 3, etc. in the field.

alter table healthtemperature1 add column active_ind enum('0','1') not null;

Article on Enum