日期:2014-05-16  浏览次数:20924 次

请问多用户如何加入root权限,并且各自有各自的工作空间?
需求背景:
1) 多个用户用各自的用户名登陆进系统,在各自的 /home/xxx 用户目录下工作;
2) 开发工具QtCreator 和 StarTeam 在系统里只有一份,用户的工作空间(QtCreator配置项、StarTeam项目路径)是各个用户自己配置定义的;
3) 用户在调试程序时需要直接打开读写 /dev/sdb 设备。

现在主要是第三点:
1> 如果没root权限的话,open /dev/sdb 会报权限不够“Permission denied”;
2> 如果在 /etc/passwd 里把 用户UID设置为0,则每个用户登录进系统 whoami 都是 root,这样就造成每个用户的工作空间混乱了(全部都使用了root的配置);
3> 我也在 /etc/sudoers.d 添加了文件xxx,内容为 xxx ALL=(ALL) ALL , 用 sudo -u xxx /sbin/fdisk /dev/sdb 也是报权限不够, 用sudo /sbin/fdisk /dev/sdb 可以执行,但是又回到了上面 2>的问题。

请问,我要怎么配置,才能实现上述需求呢?谢谢!

------解决方案--------------------
chmod +s /sbin/fdisk

普通用户,但执行的时候以root权限执行
------解决方案--------------------
引用:
问题解决了, 谢谢楼上的提示。
================================
使用背景:
普通用户在 windows 通过远程桌面登录到 Linux开发机, 各个用户有各自的工作空间(QtCreator配置和StarTeam环境);
在QtCreator调试的程序,需要有root权限(读写/dev/sd?设备、遍历网卡、操作阵列卡等)

/etc/sudoers.d 建各个用户权限文件,例如用户 xxx ,建立文件xxx ,内容为
xxx ALL=(ALL) ALL

提升qtcreator执行权限
chmod 4755 /opt/qtcreator-2.5.0/bin/qtcreator

运行会报找不到.so 文件, 新增/etc/ld.so.conf.d/qtcreator.conf ,内容为
/opt/qtcreator-2.5.0/lib
/opt/qtcreator-2.5.0/lib/qtcreator

保存后 ldconfig

调试时,提示 qtcreator_process_stub "Cannot connect creator comm socket" Permission denied
chmod 4755 /opt/qtcreator-2.5.0/bin/qtcreator_process_stub

调试主进程时,提示找不到自己的 .so
需要在 /etc/ld.so.conf.d/ 新增 MyAPP.conf
将自己的 .so 的路径包含进去, 然后 ldconfig (这样需要专人维护.so 是最新的,每次有更新就ldconfig 一次)


------解决方案--------------------
学习下
一般都是在执行时给相应权限,执行完回到最小默认权限,这样也符合系统安全原则