Sponsored Content
Full Discussion: Log Out SSH User in Bash
Top Forums Shell Programming and Scripting Log Out SSH User in Bash Post 302814793 by FreddoT on Thursday 30th of May 2013 08:19:58 AM
Old 05-30-2013
Wrench Log Out SSH User in Bash

So, I've been writing a system to allow users temporary access onto a system.

Essentially, there's a web server with a PHP script, the PHP script takes a Username & Password from a webform, and passes it to a script, createusr.sh.

The script looks something like this:

Code:
pass=$(perl -e 'print crypt($ARGV[0], "password")' $2)
sudo /usr/sbin/useradd $1 -s /bin/bash -p $pass -d /home/onlineusers/$1 -m
sudo /bin/chmod 700 /home/onlineusers/$1
sleep 1800
sudo /usr/sbin/userdel -f $1
sudo /bin/rm -rf /home/onlineusers/$1

Basically it creates a user, using the passed parameters, and force creates their home directory. It then makes that directory only accessible to said user, before sleeping for half an hour.

After that time it deletes the user and their home directory. But I have one problem. If the user is still logged on at that point, then the user deletion has no effect, as the user can still work.

At the moment, I am thinking of using:

Code:
pgrep -t <user's tty>

and then killing the bash, but I'm not sure how I can get the TTY of a user logged in through SSH?

Maybe somehow "grep" with "w" might do it, but not if the username contains something like "load" which is featured elsewhere in the output from "w".

Besides this, is there any way that I can send a message to a logged in user, saying something like "5 minutes left"?

Code:
write

seems like a possibility, but I'm not sure exactly how this would be implemented.

Last edited by FreddoT; 05-30-2013 at 09:27 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

bash script for ssh login-

hi. I need a bash script which can login to an other mashin via SSH and then run some commands and then return the result to my mashine. I dont know where to begin, I think first I will need a ssh connection, dont know how to make it, then , do I need a ftp connection between the 2 mashins to... (5 Replies)
Discussion started by: big_pil
5 Replies

2. Shell Programming and Scripting

BASH ssh login

Ok, there's been a good number of posts about this, but here goes. I want a script to log in to a system via ssh without using keys. This will be used to log in to Cisco IOS devices. I have tried the following, but could not get it to work: SSH login expect shell script to supply username and... (1 Reply)
Discussion started by: mike909
1 Replies

3. UNIX for Dummies Questions & Answers

change user> to user@host> ssh prompt

Hi, I was wondering how to change the prompt for my ssh login. At the moment it is like user> while I'd like it to be as user@host> It is in the .bash_profile or .ssh ??? Thanks (2 Replies)
Discussion started by: pmasterkim
2 Replies

4. Shell Programming and Scripting

Bash commands to an 'ssh' within an ssh'

I've struggled to find a solution to this problem from searching so I thought I'd write a post to see what can be done. I'm attempting to connect and run commands on 'server2' but because of security limitations I cannot access it directly. I can however ssh into 'server1' and then into... (7 Replies)
Discussion started by: mcintosh.jamie
7 Replies

5. Shell Programming and Scripting

Help on an ssh bash script...

Hey Guys, I want to have a bash script on my computer (Mac OS X 10.6.8) that can ssh into my iPod and respring. I know how do this by typing in "ssh root@10.0.1.10" and then typing in the password "alpine". From there i simply type "respring". I want to possibly put this into a shell script so it... (0 Replies)
Discussion started by: jetstream131
0 Replies

6. Red Hat

Cannot ssh for a user

This is the entry when I tail /var/log/secure when I ssh for user "nightly"... Aug 4 03:19:48 itanium2 sshd: Illegal user nightly from ::ffff:10.91.220.35 Aug 4 03:20:10 itanium2 sshd: Failed password for illegal user nightly from ::ffff:10.91.220.35 port 32862 ssh2 What could be... (3 Replies)
Discussion started by: kirtikjr
3 Replies

7. AIX

passwordless entry using ssh from one user to a different user on the same server

Hi, We have a requirement to do passwordless entry from one user to a different user on the same AIX server using ssh keys. Can some one help me with this? Thanks in advance, Panditt (3 Replies)
Discussion started by: deshaipet
3 Replies

8. Shell Programming and Scripting

Need some help in bash scripting with ssh

Hi @ all I have the following scenario: As Admin of a cupple of servers I tried to write the following script to figure out, if the machine is up and available and if some directory´s were available. But my script is having some probs, while running. Maybe some of you have a better way to... (9 Replies)
Discussion started by: muogli
9 Replies

9. Shell Programming and Scripting

Help needed on ssh in bash scripting

HI I have the following requirement I have a script a.sh which will deploy files in multiple servers .The argument for the a.sh is abc.gz host1.conf where abc.gz is a zip file and one.conf will contain all the database connection string . Now I have to write a b.sh which will... (7 Replies)
Discussion started by: harry00514
7 Replies

10. Shell Programming and Scripting

Bash scripts - CGI and ssh

Hi Everyone, I started looking at the possibility of making some of our bash scripts available through a web server using CGI and the simple ones works just fine. Now I need to execute remote commands using ssh but can't really get it to work. I got private keys all sorted. Must be ssh... (1 Reply)
Discussion started by: arizah
1 Replies
git_selinux(8)						 Git SELinux policy documentation					    git_selinux(8)

NAME
git_selinux - Security Enhanced Linux Policy for the Git daemon. DESCRIPTION
Security-Enhanced Linux secures the Git server via flexible mandatory access control. FILE_CONTEXTS SELinux requires files to have an extended attribute to define the file type. Policy governs the access daemons have to these files. SELinux Git policy is very flexible allowing users to setup their web services in as secure a method as possible. The following file contexts types are by default defined for Git: git_system_content_t - Set files with git_system_content_t if you want the Git system daemon to read the file, and if you want the file to be modifiable and executable by all "Git shell" users. git_session_content_t - Set files with git_session_content_t if you want the Git session and system daemon to read the file, and if you want the file to be modi- fiable and executable by all users. Note that "Git shell" users may not interact with this type. BOOLEANS
SELinux policy is customizable based on least access required. Git policy is extremely flexible and has several booleans that allow you to manipulate the policy and run Git with the tightest access possible. Allow the Git system daemon to search user home directories so that it can find git session content. This is useful if you want the Git system daemon to host users personal repositories. sudo setsebool -P git_system_enable_homedirs 1 Allow the Git system daemon to read system shared repositories on NFS shares. sudo setsebool -P git_system_use_nfs 1 Allow the Git system daemon to read system shared repositories on Samba shares. sudo setsebool -P git_system_use_cifs 1 Allow the Git session daemon to read users personal repositories on NFS mounted home directories. sudo setsebool -P use_nfs_home_dirs 1 Allow the Git session daemon to read users personal repositories on Samba mounted home directories. sudo setsebool -P use_samba_home_dirs 1 To also allow Git system daemon to read users personal repositories on NFS and Samba mounted home directories you must also allow the Git system daemon to search home directories so that it can find the repositories. sudo setsebool -P git_system_enable_homedirs 1 To allow the Git System daemon mass hosting of users personal repositories you can allow the Git daemon to listen to any unreserved ports. sudo setsebool -P git_session_bind_all_unreserved_ports 1 GIT_SHELL The Git policy by default provides a restricted user environment to be used with "Git shell". This default git_shell_u SELinux user can modify and execute generic Git system content (generic system shared respositories with type git_system_content_t). To add a new Linux user and map him to this Git shell user domain automatically: sudo useradd -Z git_shell_u joe ADVANCED_SYSTEM_SHARED_REPOSITORY_AND GIT_SHELL_RESTRICTIONS Alternatively Git SELinux policy can be used to restrict "Git shell" users to git system shared repositories. The policy allows for the creation of new types of Git system content and Git shell user environment. The policy allows for delegation of types of "Git shell" envi- ronments to types of Git system content. To add a new Git system repository type, for example "project1" create a file named project1.te and add to it: policy_module(project1, 1.0.0) git_content_template(project1) Next create a file named project1.fc and add a file context specification for the new repository type to it: /srv/git/project1.git(/.*)? gen_context(system_u:object_r:git_project1_content_t,s0) Build a binary representation of this source policy module, load it into the policy store and restore the context of the repository: make -f /usr/share/selinux/devel/Makefile project.pp sudo semodule -i project1.pp sudo restorecon -R -v /srv/git/project1 To create a "Git shell" domain that can interact with this repository create a file named project1user.te in the same directory as where the source policy for the Git systemm content type is and add the following: policy_module(project1user, 1.0.0) git_role_template(project1user) git_content_delegation(project1user_t, git_project1_content_t) gen_user(project1user_u, user, project1user_r, s0, s0) Build a binary representation of this source policy module, load it into the policy store and map Linux users to the new project1user_u SELinux user: make -f /usr/share/selinux/devel/Makefile project1user.pp sudo semodule -i project1user.pp sudo useradd -Z project1user_u jane system-config-selinux is a GUI tool available to customize SELinux policy settings. AUTHOR
This manual page was written by Dominick Grift <domg472@gmail.com>. SEE ALSO
selinux(8), git(8), chcon(1), semodule(8), setsebool(8) domg472@gmail.com 27 May 2010 git_selinux(8)
All times are GMT -4. The time now is 04:07 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy