On korn shell, how to share history between regular user and root?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting On korn shell, how to share history between regular user and root?
# 1  
Old 12-26-2018
On korn shell, how to share history between regular user and root?

I'm exploring OpenBSD and want to stick to its default shell, which is ksh. My goal is for my regular user ("bruno") and root user to have a shared history file. However, it seems that when running as root, ksh refuses to write to a HISTFILE that is owned by non-root user. This illustrates the issue:



Code:
$ echo $0
  ksh
$ HISTFILE=/home/bruno/history  
$ chmod 777 /home/bruno/history
$ echo test
  test
$ cat /home/bruno/history
  chmod 777 /home/bruno/history
  echo test
  cat /home/bruno/history
$ su
 Password:
# HISTFILE=/home/bruno/history
# echo $HISTFILE
  /home/bruno/history
# echo test2
  test2
# cat /home/bruno/history
  chmod 777 /home/bruno/history
  echo test
  cat /home/bruno/history
  su

As you can see, the commands that are run as root do not appear in /home/bruno/history. Why won't root session in ksh write to the specified HISTFILE? If it is a ksh security feature, how do I turn it off?

Last edited by DevuanFan; 12-26-2018 at 03:46 PM..
# 2  
Old 12-26-2018
Why not write a little cron script to combine the two files?
# 3  
Old 12-27-2018
That's a good idea, but I wanted something more real-time, so I came up with a hack. If I put this in both ~/.kshrc and /root/.kshrc, I get what I want:



Code:
prompt_commands()
{
    if [ $(id -u) = "0" ]; then
        tail -1 /root/.ksh_history >>/home/bruno/.ksh_history
    else
        tail -1 /home/bruno/.ksh_history >>/root/.ksh_history
    fi
}

PS1='$(prompt_commands)'

Unlike bash, ksh does not have the handy PROMPT_COMMAND. However, the PS1 variable does support command substitution, which my hack exploits. As long as both user's and root's history files have write permission for "others", now whenever root runs a command that command gets appended to my regular user's history, and vice-versa.

Last edited by DevuanFan; 12-27-2018 at 03:21 PM..
This User Gave Thanks to DevuanFan For This Post:
# 4  
Old 12-27-2018
I like your solution better than my suggestion.

Thanks for posting back what you came up with!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to Switch from Local user to root user from a shell script?

Hi, I need to switch from local user to root user in a shell script. I need to make it automated so that it doesn't prompt for the root password. I heard the su command will do that work but it prompt for the password. and also can someone tell me whether su command spawns a new shell or... (1 Reply)
Discussion started by: Little
1 Replies

2. Shell Programming and Scripting

script to get user id reports korn shell

Dear Friends, Can Any one provide me script to generate list of username with the gecos field. (cat /etc/passwd | cut -d: -f1,5) Please note i have to run this command from nim server and i have password less ssh access.(ssh hostname command) and i want a file to be generated on nim... (1 Reply)
Discussion started by: vinodchauhan123
1 Replies

3. UNIX for Dummies Questions & Answers

History to Another file [local user history , but root access]

Hi all, My need is : 1. To know who , when , which command used. 2. Local user should not delete this information. I mean , with an example , i can say i have a user user1 i need to give all the following permissions to user1, : a. A specific directory other than his home... (1 Reply)
Discussion started by: sriky86
1 Replies

4. Shell Programming and Scripting

How to Login as another user through Shell script from current user[Not Root]

Hi Every body, I would need a shell script program to login as different user and perform some copy commands in the script. example: Supppose ora_toms is the active user ora_toms should be able to run a script where user: ftptomsp pass: XXX should login through and run the commands ... (9 Replies)
Discussion started by: ujjwal27
9 Replies

5. Shell Programming and Scripting

Korn Shell regular pattern

Hello, I can't seem to understand korn shell regular expression. I am trying to extract the tagfrom its own filename string. var="LNX_1.2.0.0.af329a3da.tar" whereby af329a3da is the tagI am trying to extract out from. I am trying to avoid using IFS because future modifications... (5 Replies)
Discussion started by: howhan
5 Replies

6. UNIX for Advanced & Expert Users

History to Another file [local user history , but root access]

Hi all, My need is : 1. To know who , when , which command used. 2. Local user should not delete this information. I mean , with an example , i can say i have a user user1 i need to give all the following permissions to user1, : a. A specific directory other than his home... (3 Replies)
Discussion started by: linuxadmin
3 Replies

7. Shell Programming and Scripting

Shell script for to view all users & groups history in root

Dear All, I want to know all users & group history in one file, for root terminal through shell or any other option (5 Replies)
Discussion started by: kpoobathi
5 Replies

8. Shell Programming and Scripting

root user command in shell script execute as normal user

Hi All I have written one shell script for GPRS route add is given below named GPRSRouteSet.sh URL="www.google.com" VBURL="10.5.2.211" echo "Setting route for $URL for GPRS" URL_Address=`nslookup $URL|grep Address:|grep -v "#"|awk -F " " '{print $2}'|head -1` echo "Executing ... (3 Replies)
Discussion started by: mnmonu
3 Replies

9. Shell Programming and Scripting

access user history as root

Hi, I need to access a user's command history. However, the dilemma is that he is logged in and so his current history is not yet flushed to .bash_history file which gets flushed when he logs out. Is there a way I can still access his most recent history? thank you, S (4 Replies)
Discussion started by: sardare
4 Replies

10. UNIX for Dummies Questions & Answers

korn shell script to keep history of same file

Hello, How do I write a korn shell that will rename file with the current date. What I want to do is, I have a file that is re-written every day. But instead, I want to keep a 14 day history of the file. So I want to write a script that will rename the current file with a date attached to the... (2 Replies)
Discussion started by: watson2000
2 Replies
Login or Register to Ask a Question