普通用户执行需要root权限的命令的方法

我们经常会需要让普通用户干需要root权限的活,如普通用户用date命令修改系统日期等。date命令需要root权限才能执行,解决这个问题又2个方法:

方法一:

由root用户执行chmod 4755 /bin/date

备注:也就是给date命令增加s权限位即设置setuid(4000),这样普通用户就可以执行date命令了,缺点也是很明显的,相当于去掉了date命令的root权限限制。

方法二:

给shell脚本加壳:

#include "stdio.h"
#include "pwd.h"
main(int argc,char *argv[])
{
 struct passwd *srcc_pwd;
 char *proc_name = "sh ./myfile.sh");

gid_t srcc_gid;
 uid_t srcc_uid;
 int gg,uu;

srcc_pwd=getpwnam("root");
 srcc_gid=srcc_pwd->pw_gid;
 srcc_uid=srcc_pwd->pw_uid;
 gg=setgid(srcc_gid);
 uu=setuid(srcc_uid);
 gg=system(proc_name);

return;
}

root用户编译该文件生成可执行文件a.out,并chmod 4111 ./a.out

这样普通用户就可以通过执行./a.out完成任务(需要完成的任务写在./myfile.sh脚本里)

				
时间: 2024-08-08 18:49:21

普通用户执行需要root权限的命令的方法的相关文章

linux下添加用户并赋予root权限(转)

转自:http://blog.csdn.net/stormbjm/article/details/9086163 1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser tommy //添加一个名为tommy的用户#passwd tommy   //修改密码 Changing password for user tommy.New UNIX password:     //在这里输入新密码Retype new UNIX password:  //再次输入新密码pas

Ubuntu 13.10上用户如何获得root权限,用户如何获得永久root权限,如果配置root登录

一.用户如何获得root权限: 1. 进入terminal 2. 输入sudo  passwd root   并设置密码,提示要你输入两次密码,自己设定密码,一定要记住,然后切换到root使用 3. 输入 su root, 要求你输入密码,然后输入刚才设定的密码回车就进去了 4. 如果不想切换root但是想拥有大部分root权限,可以在使用命令时候加上sudo, sudo mount挂载 sudo 命令 ...... another 如果你想在linux上切换用户,那么输入 su  + 用户名就

linux下非root用户如何修改root权限的文件

在linux下会出现把一些配置文件参数配错.root密码忘记等导致系统无法启动或进入root的窘迫境地,本文以redhat  enterprise linux server 6.4为例介绍root身份修改root权限配置文件的参数后,root无法登录,然后通过linux的rescue模式改回配置文件,巧妙以非root身份修改了root权限的文件的解决方案. 首先,插入linux安装盘重启系统,等到引导进入安装会话,上下移动方向键,选rescue installed system: 第二,进入修复

centos7 新建用户并获取root权限

centos7 新建用户并获取root权限 原创 2016年10月26日 21:30:29 5929 0 11 1: 添加用户 # useradd name //name为添加用户名字 1 # passwd password //password为密码 1 输入密码后确认 passwd: all authentication tokens updated successfully 2:获取root权限 方法1): # vi /etc/sudoers 1 找到如下行  更改为  之后 # user

linux中如何添加用户并赋予root权限详解

1.添加用户,首先用adduser命令添加一个普通用户,命令如下: #adduser eric //添加一个名为eric的用户 #passwd eric//修改密码 Changing password for user eric. New UNIX password: //在这里输入新密码 Retype new UNIX password: //再次输入新密码 passwd: all authentication tokens updated successfully. 2.赋予root权限 方

Redhat 赋于 root 权限的三种方法

方法一: 修改/etc/sudoers 文件,找到下面一行,把前面的注释(#)去掉? ## Allows people in group wheel to run all commands %wheel ALL=(ALL) ALL? 然后修改用户,使其属于root组(wheel),命令如下:? #usermod -g root tommy 修改完毕,现在可以用tommy帐号登录,然后用命令su – ,即可获得root权限进行操作. ? ? 方法二: 修改/etc/sudoers 文件,找到下面一

用日志记录Linux用户执行的每一条命令(history)

工作中,需要把用户执行的每一个命令都记录下来,并发送到日志服务器的需求,为此我做了一个简单的解决方案.这个方案会在每个用户退出登录 时把用户所执行的每一个命令都发送给日志守护进程rsyslogd,你也可通过配置“/etc/rsyslog.conf”进一步将日志发送给日志服务器 第一种方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 # vi /etc/profile #设置history格式 export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S

linux下添加用户并赋予root权限

1.添加用户,首先用adduser命令添加一个普通/系统用户,命令如下:# adduser [-r] –d /tommy tommy//添加一个名为tommy的用户 # passwd tommy   //修改密码Changing password for user tommy.New UNIX password:     //在这里输入新密码Retype new UNIX password:  //再次输入新密码passwd: all authentication tokens updated

Ubuntu下如何将普通用户提升到root权限

在ubuntu的系统操作中,我们经常会使用到系统权限的,因为权限不足,导致在一些操作当中非常麻烦.要获取权限,最长使用的方法就是使用sudo指令,但是来回使用还是比较麻烦,有没有直接提升我们的用户权限呢?答案是——有的. 打开超级终端,输入指令sudo gedit /etc/passwd ,回车: 找到我们用户名所在的那一行,将里面的当前用户的ID值进行修改.譬如我的当前用户是crystal. 则找到了   crystal:x:1000:1000:crystal:/home/linuxidc:/