问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

linux下权限问题,如何让无root管理员权限的用户执行需root权限执行的脚本文件

发布网友 发布时间:2022-04-05 23:30

我来回答

6个回答

热心网友 时间:2022-04-06 01:00

看了前面几位回答者我觉得应当采取一种简单的方法。

看你的意图允许任何人挂载/dev/sda5并且访问它

那么可以如此,任何人都可以挂载硬盘而无需密码,包括其他的/dev/sda6之类的

首先新建一个组,然后让每一个人都在这个组里(添加组及设置组的成员有图形界面较简单,省略),假设为newnew

设置方法

sudo gedit /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

里面会有(第一个代码块),如下内容加上第三行后如发炮制加上(第二个代码块)


[Mounting, checking, etc. of internal
drives]
Identity=unix-group:admin
Action=org.freedesktop.udisks.filesystem-*;org.freedesktop.udisks.drive-ata-smart*
ResultActive=yes
[Change CPU Frequency
scaling]
Identity=unix-group:admin
Action=org.gnome.cpufreqselector
ResultActive=yes
[Setting the
clock]
Identity=unix-group:admin
Action=org.gnome.clockapplet.mechanism.*
ResultActive=yes

;unix-group:newnew

由此任何人都可以挂载硬盘了。但问题还没解决

挂载后普通用户是没有读权限的。在此要设置/media/d(假设/dev/sda5挂载在这里)为任何人可读

sudo chmod 777 /media/d

如此任何人都可以相当于在这个文件夹下建立读取删除执行文件了,当然里面的子文件夹和子文件另有设置的除外。

当然,也有可能有些其它的”盘“(严格来讲linux中没有盘的概念)挂载之后就有可读可写可执行的权限,但你又不希望这个盘有这样的权限。则另外设置其为相应的权限。

具体见chmod命令

如此这个问题得一解决。虽说与问题中所说的suid,脚本文件中离得较远,但终归解决了问题。

程序之类的东西应当是本着解决问题的原则。然后才是怎样最优化解决问题。

热心网友 时间:2022-04-06 02:18

一般来说rwx=4+2+1,即4代表读,2代表写,1代表执行权限,合起来就是7,也就是说7代表包含读写和执行3个权限

那么4755中的4代表SUID,是一个特殊的权限,科普(4为SUID,2为SGID,1为SBIT)
关于SUID举个简单的例子,首先大家都知道普通用户都可以利用/usr/bin/passwd修改密码,而密码储存的文件/etc/shadow,那么可以先看看这2个文档的权限设置
ll /usr/bin/passwd
-rwsr-xr-x 1 root root 27936 Aug 11 2010 /usr/bin/passwd
ll /etc/shadow
-r-------- 1 root root 911 Jul 10 19:20 /etc/shadow

可以看到/etc/shadow这个文档属主是root用户,其他用户是没有任何权限的,那么为什么其他用户还能修改密码呢,原因是/usr/bin/passwd这个文档中有个s的权限,这就是SUID的作用,
1、SUID仅对二进制程序有效
2、执行者需要对该程序具有x的权限
3、本权限仅在执行程序的过程中有效
4、执行者具有该程序拥有者(属主)的权限
很明显/usr/bin/passwd是一个二进制程序,还给了其他用户x权限,而且带上s权限,那么其他用户执行这个程序就能拥有属主root的权限了追问关键是已经用root用户设置chmod 4755 a.sh了ll查看它如下
-rwsr-xr-x 1 liusm liusm 25 7月 11 09:51 a.sh*
然后普通用户执行却是
mount: 只有 root 才能进行此操作
看来之前所看到的suid对于脚本文件无效是正确的。
这下怎么办?

追答是的,第一点已经说过了,SUID仅对二进制程序有效,脚本非二进制程序,所以无效。如果脚本想实现普通用户具有root的执行权限,只能通过sudo

热心网友 时间:2022-04-06 03:52

在你要执行的命令前加上sudo,例如
sudo vi /etc/vimrc 可以对vim的配置进行修改
切换到shell文件的目录 可以使用
建立test.sh 文件 sudo vi test.sh
sudo chmod u+x test.sh
sudo ./test.sh

如果要学习的话,建议系统的看一下《鸟哥私房菜》(基础版),有助于学习和理解

热心网友 时间:2022-04-06 05:44

这就是linux的可爱之处,要是没有如此严格的权限设置,就跟windows没什么区别了(何况win7以后,微软在这方面也有长足进步).
要自动运行,加到init.d里面去

热心网友 时间:2022-04-06 07:52

chmod 777 不行吗?追问不行,试了,没用

追答so chmod 777 abc.sh
不行?

热心网友 时间:2022-04-06 10:16

sudo。。。。。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
大连市有几个嘉汇学校 平躺睡觉胸口有压迫感怎么回事 ...手机推荐!除了小米,外形大气好看,请各位大侠推荐,不胜感激!明天就要... 各位大侠们小人想买2000以下的手机(超出一点没关系)主要是玩游戏,别跟... 各位大侠推荐一部洛机亚手机,要支持GPS,是全触屏手机,价格在2000... ...手机,电池耐用的,速度可以的,请各位大侠推荐一款呗!最好是安卓系统... 想要买一部两千到三千的智能手机,希望各位大侠推荐一下 天干地支六十甲子六十甲子 60甲子有多少个组合 买什么实物金 急!!!如何获得管理员权限对文件进行操作 (C#) linux其他用户不能gedit 禁用网卡提示您没有足够的权限配置此连接的属性,请与管理员联系. win7管理员有密码,其他用户如何提升到管理员权限,不要删除管理员密码的。 怎样用administrator管理员给guest用户权限 怎样在受权限的用户下提权为系统管理员 管理员用户被自己关了怎么用一个普通用户获取管理员权限 如何将一个普通用户提权为系统管理员?? python怎么实现windows终端的颜色 如何用python实现颜色空间转换 怎样用python同时设置画笔和填充颜色 python颜色代码是什么? PHP怎么把一个数组里string为零的去除 怎么把数组中的空值去掉 PHP unset怎么去除数组里的值 php 删除多维数组指定元素 PHP代码实现1)删除整个数组2)删除数组中指定的元素3)删除重复的元素? PHP代码实现:1)删除整个数组2)删除数组中指定的元素3)删除重复的元素? 西部数码建站助手gd 扩展扩展怎样开启 pphp开发中Windows下配置GD库,我按你前面的回答做,发现php安装路径/ext文件夹下的php_gd2.dll打不开? WIN7怎么转移一个普通用户的的所有设置 配置 文件到超级管理员用户 大家装好win7后是用默认的administrator还是重新建立账户? linux 下怎么将普通用户切换到管理员用户 单位电脑如何查看管理员密码或者把普通用户权限升级为管理员 不是管理员怎样在电脑上装软件 在公司,我的电脑没有管理员权限,想更新一些软件,也搞不了。 Xp系统受限用户如何提权 这样获得管理员权限? Python正则表达式的几种匹配方法 python如何用正则表达式匹配两个字符串之间的字符串中的某个字符并进行替换? 在PYTHON中如何匹配一个存在多个相同的正则表达式模式的字符串中的所有正则表达式模式? python正则表达式匹配? python 使用正则表达式 匹配“非长字符串” python正则表达式,这样的字符串怎么匹配? python 怎样用正则表达式匹配不包含某些字符的字符串 python中的正则表达式匹配的问题? python如何用正则匹配字符串后到行尾的所有字符 Python正则表达式的几种匹配用法 如何用Python正则表达式去匹配汉字加字母加数字的字符串 关联规则中Apriori演算法的一个小问题 Clementine关联规则Apriori算法事务模式怎么使用