Ubuntu中安装软件时要输入root密码是如何做到的,能编程实现吗?

软件和网站开发以及相关技术探讨
回复
facat
帖子: 13
注册时间: 2010-02-26 22:17

Ubuntu中安装软件时要输入root密码是如何做到的,能编程实现吗?

#1

帖子 facat » 2014-05-29 17:19

众所周知在Ubuntu Center中安装软件都是要输入root密码的。我现在写了一个程序,需要调用一些系统命令,例如设置系统默认路由,这需要使用管理员权限。我的想法是像Ubuntu Center一样,只提示用户输入一次root密码,接下来进行任何需要root权限的操作都可以用这个密码来认证,也就是和Ubuntu Center一样。我试过gksu,但这个命令每次执行一条语句都要输入一次密码,太麻烦了。
头像
susbarbatus
帖子: 2966
注册时间: 2010-04-10 16:14
系统: Arch Linux

Re: Ubuntu中安装软件时要输入root密码是如何做到的,能编程实现吗?

#2

帖子 susbarbatus » 2014-05-29 17:30

不清楚 ubuntu 具体用的是什么,建议研究下 Seahorse/Kwallet 之类怎么调用
沉迷将棋中……
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: Ubuntu中安装软件时要输入root密码是如何做到的,能编程实现吗?

#3

帖子 poloshiao » 2014-05-29 17:46

1. 假設 newuser 已經有帳號 但是不能使用 sudo
使用 已經能夠 使用 sudo 指令的 使用者登入
把 newuser 加入 group sudo
sudo usermod -a -G sudo newuser
登出

2. 使用 newuser 登入
這樣 newuser 就可以使用 sudo
也就是 問密碼 就可以安裝軟體 ...

3. 給一次密碼 效力 15 分鐘
意思是 15 分鐘之內 不會再要密碼
超過 15 分鐘 再問一次密碼
facat
帖子: 13
注册时间: 2010-02-26 22:17

Re: Ubuntu中安装软件时要输入root密码是如何做到的,能编程实现吗?

#4

帖子 facat » 2014-05-29 21:29

3. 給一次密碼 效力 15 分鐘
意思是 15 分鐘之內 不會再要密碼
超過 15 分鐘 再問一次密碼
可是不能在程序中用pipe调用sudu,只能用gksu。gksu就是每执行一条命令都问一次密码。如何做到给一次密码效力15分钟?
poloshiao
论坛版主
帖子: 18279
注册时间: 2009-08-04 16:33

Re: Ubuntu中安装软件时要输入root密码是如何做到的,能编程实现吗?

#5

帖子 poloshiao » 2014-05-29 21:39

只能用gksu
root 登入使用的
gksu + 圖形指令
su + 文字指令
ubuntu 預設 不允許 root 登入

非 root 使用者登入 使用
gksudo + 圖形指令
sudo + 文字指令
時間一樣是 15 分鐘

補充說明
第一次使用 gksudo
需要先外安裝 gksu 套件
头像
麦斯特
帖子: 1034
注册时间: 2005-03-28 0:00
系统: Gentoo x64
来自: ☸我佛山人

Re: Ubuntu中安装软件时要输入root密码是如何做到的,能编程实现吗?

#6

帖子 麦斯特 » 2014-05-30 12:56

sudo本来就有一个S参数负责从stdin读取password的,这个怎么用就不用我解释了吧。 :em01
Je ne suis pas d'accord avec ce que vous dites, mais je me battrai jusqu'à la mort pour que vous ayez le droit de le dire.
回复