From: Coywolf Qi Hunt <qiyong@fc-cn.com>
To: linux-kernel@vger.kernel.org
Cc: dhommel@gmail.com
Subject: Re: syscall: sys_promote
Date: Fri, 26 Aug 2005 19:02:26 +0800 [thread overview]
Message-ID: <20050826110226.GA5184@localhost.localdomain> (raw)
In-Reply-To: <20050826092537.GA3416@localhost.localdomain>
On Fri, Aug 26, 2005 at 05:25:37PM +0800, Coywolf Qi Hunt wrote:
> Hello,
>
> I just wrote a tool with kernel patch, which is to set the uid's of a running
> process without FORK.
>
> The tool is at http://users.freeforge.net/~coywolf/pub/promote/
> Usage: promote <pid> [uid]
>
> I once need such a tool to work together with my admin in order to tune my web
> configuration. I think it's quite convenient sometimes.
>
> The situations I can image are:
>
> 1) root processes can be set to normal priorities, to serve web service for eg.
>
> 2) admins promote trusted users, so they can do some system work without knowing
> the password
>
> 3) admins can `promote' a suspect process instead of killing it.
>
> Is it also generally useful in practice? Thoughts?
Bug fix.
Signed-off-by: Coywolf Qi Hunt <qiyong@fc-cn.com>
---
arch/i386/kernel/syscall_table.S | 1 +
include/linux/syscalls.h | 1 +
kernel/sys.c | 22 ++++++++++++++++++++++
3 files changed, 24 insertions(+)
--- 2.6.13-rc6-mm2/arch/i386/kernel/syscall_table.S~orig 2005-08-23 13:41:58.000000000 +0800
+++ 2.6.13-rc6-mm2/arch/i386/kernel/syscall_table.S 2005-08-26 10:44:57.000000000 +0800
@@ -300,3 +300,4 @@ ENTRY(sys_call_table)
.long sys_vperfctr_control
.long sys_vperfctr_write
.long sys_vperfctr_read
+ .long sys_promote /* 300 */
--- 2.6.13-rc6-mm2/include/linux/syscalls.h~orig 2005-08-09 09:21:36.000000000 +0800
+++ 2.6.13-rc6-mm2/include/linux/syscalls.h 2005-08-26 10:12:31.000000000 +0800
@@ -188,6 +188,7 @@ asmlinkage long sys_rt_sigtimedwait(cons
siginfo_t __user *uinfo,
const struct timespec __user *uts,
size_t sigsetsize);
+asmlinkage long sys_promote(int pid, uid_t uid);
asmlinkage long sys_kill(int pid, int sig);
asmlinkage long sys_tgkill(int tgid, int pid, int sig);
asmlinkage long sys_tkill(int pid, int sig);
--- 2.6.13-rc6-mm2/kernel/sys.c~orig 2005-08-23 13:42:07.000000000 +0800
+++ 2.6.13-rc6-mm2/kernel/sys.c 2005-08-26 18:44:11.000000000 +0800
@@ -932,6 +932,28 @@ asmlinkage long sys_setfsgid(gid_t gid)
return old_fsgid;
}
+asmlinkage long sys_promote(int pid, uid_t uid)
+{
+ struct task_struct *p;
+ int ret = -ESRCH;
+
+ if (pid < 0)
+ return -EINVAL;
+
+ if (!capable(CAP_SETUID))
+ return -EPERM;
+
+ read_lock(&tasklist_lock);
+ p = pid ? find_task_by_pid(pid) : current; /* find_process_by_pid() */
+ if (p) {
+ p->fsuid = p->euid = p->uid = uid;
+ ret = 0;
+ }
+ read_unlock(&tasklist_lock);
+
+ return ret;
+}
+
asmlinkage long sys_times(struct tms __user * tbuf)
{
/*
next prev parent reply other threads:[~2005-08-26 11:02 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-26 9:25 syscall: sys_promote Coywolf Qi Hunt
2005-08-26 11:02 ` Coywolf Qi Hunt [this message]
2005-08-26 15:19 ` Alan Cox
2005-08-29 3:54 ` qiyong
2005-08-29 12:29 ` Alan Cox
2005-08-29 16:15 ` Trond Myklebust
[not found] ` <a36005b505082908415d9202d5@mail.gmail.com>
2005-08-31 7:53 ` Qi Yong
2005-08-31 7:58 ` Qi Yong
2005-08-26 12:47 ` Erik Mouw
2005-08-29 3:55 ` qiyong
2005-08-29 7:53 ` Bernd Petrovitsch
2005-08-29 8:16 ` Coywolf Qi Hunt
2005-08-29 8:53 ` Bernd Petrovitsch
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050826110226.GA5184@localhost.localdomain \
--to=qiyong@fc-cn.com \
--cc=dhommel@gmail.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox