Linux 使普通用户具有以超级权限执行脚本

2013年05月15日

这几天玩OpenBox,开始的时候不了解,thunar始终不能自动挂载U盘,虽然后面解决了(需要安装gvfs,thunar-volman,在thunar中打开卷管理),但是之前还是想自己写一个脚本来更加方便地挂载U盘。

这之间遇到一个问题,那就是挂载U盘需要具有root权限,我又不想每次运行这个挂载脚本都加上sudo,google了一下发现可以通过设置脚本的UID来实现。

虽然这个脚本没有完成,但是还是贴一些片段在这儿。

#!/bin/bash

#想要知道一个分区的卷标,一个很简单的办法,本来是想通过这种方法来给出一个可挂载卷的列表
ls /dev/disk/by-label/ -al

cat /etc/mtab #这个文件里面存放的是已经挂载过得文件系统

#对不同的文件系统有不同的挂载方法
sudo fdisk -l #这可以列出文件系统及其格式

sudo mount -t vfat /dev/sdb1 /mnt/ -o uid=1000,gid=100,utf8,dmask=027,fmask=137
#sudo mount -t ntfs-3g /dev/sdb1 /media/external

啊~~~下面这段当我没说~~~~~~~~~~~~~~~~~~~~~~~~

这里只是收集了要完成这个脚本需要的一些命令,还差很多正则表达式以及程序结构。虽然这个脚本中含有sudo命令(必须用sudo,否者会出现提示不是根用户改变suid只是改变权限而非用户),但是不需要输入密码,只需要修改其suid即可:

chmod +x mount.sh
chmod u+s mount.sh